What is in Shinken, not in Nagios … and vice versa

What is in Shinken, not in Nagios … and vice versa

You should now know that Shinken is a Nagios-compatible monitoring tool. It has full compatibility excluding incompatible, dangerous or those that are no longer required.

Migration is simple,  install shinken in 10 minutes, stop the Nagios daemon, start Shinken with the Nagios configuration, and you are done. :)

 

 

Comparison

 

Here is how Shinken (basically) compares to Nagios. For each feature, you’ll see whether it is present, missing or “not fully working” :

Ok, fully working
Not fully working or difficult to get working
Not available

Now the comparison table :

Feature Nagios Shinken In Shinken roadmap Notes
Host/Service monitoring withHARD/SOFT status management
Active monitoring with plugins
Passive monitoring
Compatible with data graphingaddons (pnp, etc)
Network host hierarchy
Hosts and services dependencies
Proactive problem resolution
User-defined notifications
Notifications escalation
Log rotation and archive
Syslog logging
Flap detection
Obessive compulsive commands It’s not useful in the Shinken architecture but it makes the switch to Shinken easier.
State freshness check
Livestatus API, merlin, ndo, graphite, pnp, sqlite and other modules.  Shinken includes a host of native Python modules to make it easy to extend and support. Other supported integration modules : GLPI, MongoDB, memcached, redis. Nagios is limited to broker modules, whereas Shinken can load modules at any stage and for every need.
Notifications escalation is  not a pain in the ass to configure You can call an escalation from any host or service. That’s way easier to use!
Distributed monitoring Nagios can do DNX, but it’s not as easy to manage than Shinken architecture, and not as efficient.You think “easy as in cloud”?That’s Shinken.
High availability With Nagios, high availability implies a huge performance hit.
Distributed AND high availability With Nagios, high availability implies a huge performance hit, and it’s quite hard to get working
and to maintain.
Integrated business rules With Nagios it’s an addon, so it’s not easily manageable in a distributed configuration.
Problem/impacts With Nagios it is only available in the notification part, but with Shinken it’s also available in the real time monitoring views!
Easy DMZ monitoring Shinken has poller_tag that allow the user to put a poller in a DMZ and do all DMZhosts/services with it. It make less Firewall holes.
UTF-8 support Thank you Python. Now %µ~@^-nöel is an allowed host name.
More than 100K checks in 5 minutes Need performance ?
Runs on Windows Thank you Python again. Flexible moniotring : direct WMI or Powershell queries!
Configure flap history Nagios handles flapping for the 20 latest states only. It’s hard-coded. In Shinken that’s a configuration option, and it’s quite useful!
Criticality management For Nagios it’s as important when an incident impacts a qualification application or a production one. Shinken computes dynamically the business impact of the root problem based on criticality!
Modern Language and program design Python is a forward looking and easy to program language. Shinken was developed using a TDD approach and makes use of modules with all the daemons to make it easy to extend and stability oriented.
MongoDB distributed DB   Shinken 1.0 introduces mongoDB support for Livestatus and as the configuration database for the skonf preview.
Configuration pre-cache support Pre-cache was useful for host circular relation check. I corrected it in Nagios and in Shinken as well. Pre-cache is no longer a required feature.
Limit external command slots Shinken does not limit the number of external command in queue.
Advanced retain options No one uses this.
Inter check sleep time This is a historical Nagios option. Shinken has a real scheduler.
Configure reaper time Reaping? That is one reason which makes Nagios so slow. Shinken does everything in memory.
Auto rescheduling option In Nagios it’s still experimental and not documented. This feature is in the roadmap. It can be useful to “smooth” the scheduling load.
Embedded Perl Shinken is in Python. Perl checks can be loaded using persistent perl, which is a near equivalent to embedded perl, it requires changing the first line of each check. So you do this for the most used perl scripts.
Embedded Python Shinken is in Python, so it will not be a real problem.
Regular expression matching We believe this is a dangerous feature for the configuration and that most administrators avoid using it.
Binary Event broker compatibility Shinken does not load binary modules like the ndomod.o file. It has its own modules written in python : ndo, merlin, pnp, graphite, mongodb, sqlite, Livestatus API and others