How to install Shinken on Debian

Shinken is an open source computer system and network monitoring software application compatible with Nagios. It watches hosts and services, gathers performance data and alerts users when error conditions occur and again when the conditions clear.Shinken’s architecture aims to offer easier load balancing and high availability.

Shinken is not just a fork of Nagios. It has been rewritten completely as a modern distributed application while maintaining compatibility with the Nagios configuration, LiveStatus API and check plugins.

In this article we will show you how to configure the installation of Shinken on Debian.

If you need to monitor some critical servers and services and get alerts in case of trouble. Shinken may help you to do this. We opted for Shinken, a Nagios fork which has several advantages:

  • Its architecture is perfect due to its scalability capacity (distributed load balancing)
  • It is written in Python and it has a total compatibility with Nagios plugins.

Supervision in general and especially Nagios is a big topic and IT administraters control a thousands of IT servers and services have a large set of legitimacy. We will give you here just the steps to follow  in a problem-free installation on Debian Wheezy server.

Installation of Shinken on Debian:

We will start by installaing the required Debian packages using the following command:

$ apt-get install python-cherrypy3 python-pip \
    python-pycurl nagios-plugins

Then we will create a dedicated user for Shinken using the following command:

$ adduser shinken

And finally we will install shinken with the PIP program (you need to have Python 2.x and PIP already installed on your Debian):

$ pip install shinken

It’s as simple as that. Shinken engine was installed but no GUI. But we miss to have other tool. In this artcile, we choose to installa Webui.

Installation of Webui:

we will start by using the following commands:

$ shinken --init
$ shinken install webui
$ shinken install auth-cfg-password

Webui requires basic storage to store user preferences. It may be limited to SQLite, here we choose MongoDB (NoSQL the base) that we use for other purposes. So we will use the following command:

$ apt-get install mongodb python-pymongo
$ shinken install mod-mongodb

Now we will edit and add /etc/shinken/modules/webui.cfg dependent modules using the following command:

modules auth-cfg-password,mongodb

Then we will edit and add the /etc/shinken/brokers/broker-master.cfg webui module:

modules webui

It remains to define the contacts of the system in / etc / shinken / contact. By default, an administrator is defined in /etc/shinken/contacts/admin.cfg, the password is used for WebUI interface.

Two commands are used regularly when you change the configuration.

We will start by checking that the configuration is syntactically correct using the following command:

$ service shinken check

We will restart Shinken services using the following command:

$ service shinken restart

If everything is correct, you can connect to WebUI from a browser at the following link:

http://<SERVER>:7767

Supervised objects:

Nagios introduced the concept of host and service to refer to the machines and services running on these machines. The configuration of Shinken after installation is minimal:

  • The e-mail notifications are enabled and will be used if your server can send emails
  • The local machine is overseen generically, I think the only indicator is the Ping to verify that it is accessible

We will enrich all this by installing an SNMP agent on the server Shinken to monitor, among other things, CPU usage, RAM, disk occupation.

So we will install an SNMP agent on the local machine with the snmpd package that, by default, is accessible only by the localhost:

 $ apt-get install snmpd

We add the linux-snmp plugin in Shinken:

$ shinken install linux-snmp

We will solve two issues while installing on Debian:

The check_icmp script must have the setuid rights:

$ chmod u+s /usr/lib/nagios/plugins/check_icmp

And the Utils.pm PERL module is not referenced by the Nagios plugins; we will pointit  to one of our installation of PERL in / usr / share / perl5:

/usr/share/perl5$ ln -s /usr/lib/nagios/plugins/utils.pm

We can change the configuration of the host localhost /etc/shinken/hosts/localhost.cfg by editing the file:

define host{
    use                 linux-snmp
    contact_groups      admins
    host_name           localhost
    address             127.0.0.1
}

It checks the configuration and restart Shinken:

$ service shinken check
$ service shinken restart

If the configuration is correct, the local machine CPU with its services, memory now appears in WebUI. The frequency of polling, notifications, everything is configurable by host group, for service.