Installation de Shinken
En cours.
Présentation
Shinken est une réécriture de nagios 3 en python. Il est plus rapide, plus stable et ne nécessite pas l'ajout de modules pour tenter d'améliorer les performances. Mais son fonctionnement est identique et tous les plugins et configurations sont compatibles.
Nous allons voir l'installation de shinken 2.2 sur CentOS 7.1 x86_64, avec Thruk 2.0 pour l'interface web et pnp4nagios 0.6.25 pour les perfdata.
Note : avec la mête méthode pour shinken 2.4, ça marche, mais après reboot ça ne marche plus. Je n'ai pas trop pris le temps de chercher ce qui n'allait pas. Il est possible que ce soit un bug corrigé depuis.
Installation
Prérequis
- Désactiver SELINUX et firewalld, à moins de savoir les paramétrer
- Pour les tools vbox, probablement inutile pour la suite :
yum install kernel-devel
- python-cherrypy-3 est facultatif, conseillé pour de meilleures perfs
wget ftp://rpmfind.net/linux/fedora/linux/releases/21/Everything/x86_64/os/Packages/p/python-cherrypy-3.2.2-6.fc21.noarch.rpm rpm -Uvh python-cherrypy-3.2.2-6.fc21.noarch.rpm rm -f python-cherrypy-3.2.2-6.fc21.noarch.rpm yum install gcc make redhat-lsb
Installation de shinken
groupadd -g 7767 shinken useradd -g 7767 -u 7767 shinken wget https://github.com/naparuba/shinken/archive/2.2.tar.gz tar -zxf 2.2.tar.gz rm -f 2.2.tar.gz cd shinken-2.2 python setup.py install systemctl enable shinken cd ..
Les uid/gid 7767 sont facultatifs. Je les ai mis car c'est le port par défaut de WebUI, l'interface web par défaut de shinken. Pour les comptes applicatifs, j'aime bien faire référence aux ports utilisés par l'appli, c'est juste une habitude perso, rien d'obligatoire.
- Installation des nagios-plugins
wget -c http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz tar -zxf nagios-plugins-2.0.3.tar.gz rm nagios-plugins-2.0.3.tar.gz cd nagios-plugins-2.0.3 ./configure make make install
- Editer le fichier /etc/shinken/resource.d/paths.cfg et changer la ligne :
$NAGIOSPLUGINSDIR$=/usr/lib/nagios/plugins
par :
$NAGIOSPLUGINSDIR$=/usr/local/nagios/libexec
service shinken restart cd ..
Installation de Thruk
Installation de Thruk (va installer apache et autres dépendances)
yum install perl-Data-Dumper #(un prérequis oublié dans les packages) wget http://download.thruk.org/pkg/v2.00/rhel7/x86_64/libthruk-2.00-1.rhel7.x86_64.rpm wget http://download.thruk.org/pkg/v2.00/rhel7/x86_64/thruk-2.00-1.rhel7.x86_64.rpm wget http://download.thruk.org/pkg/v2.00/rhel7/x86_64/thruk-base-2.00-1.rhel7.x86_64.rpm wget http://download.thruk.org/pkg/v2.00/rhel7/x86_64/thruk-plugin-reporting-2.00-1.rhel7.x86_64.rpm yum install thruk-2.00-1.rhel7.x86_64.rpm thruk-base-2.00-1.rhel7.x86_64.rpm thruk-plugin-reporting-2.00-1.rhel7.x86_64.rpm libthruk-2.00-1.rhel7.x86_64.rpm rm -f thruk-2.00-1.rhel7.x86_64.rpm thruk-base-2.00-1.rhel7.x86_64.rpm thruk-plugin-reporting-2.00-1.rhel7.x86_64.rpm libthruk-2.00-1.rhel7.x86_64.rpm systemctl enable httpd
Configuration de Thruk
Ne jamais modifier /etc/thruk/thruk.conf qui contient la conf par défaut. Les modifs devront se faire dans /etc/thruk/thruk_local.conf qui va écraser ce qui est défini dans thruk.conf. Nouveauté de Thruk 2.x : on peut également mettre des fichiers de conf dans /etc/thruk/thruk_local.d/.
Thruk nécessite livestatus. On va installer et activer le module livestatus de Shinken.
- En tant que user "shinken" :
shinken --init #(à ne taper qu'une seule fois, créé des fichiers de conf dans le home) shinken install livestatus shinken install logstore-sqlite #(requis par livestatus) shinken install npcdmod #(requis pour installer PNP4Nagios par la suite)
Puis repasser root.
- Editer le fichier /etc/shinken/brokers/broker-master.cfg.
Sur la ligne "modules", ajouter la valeur "livestatus". S'il y a plusieurs valeurs, les séparer par des virgules. On peut tout de suite ajouter "ncpmod" qui est requis par PNP4Nagios.
service shinken restart
- Définir les comptes et mots de passe pour thruk (le compte admin est thrukadmin) :
htpasswd /etc/thruk/htpasswd thrukadmin # => puis taper le mot de passe htpasswd -b /etc/thruk/htpasswd hotline1 hotline1
- Aller sur l'interface web de thruk http://127.0.0.1/thruk/.
- Cliquer en bas à gauche sur "Config Tool" puis sur "Backends / Sites".
- Remplir les champs :
- Name : <ce que vous voulez> - Type : livestatus - Connexion : 127.0.0.1:50000
- Et laissez le reste. Cliquez sur "test" pour vérifier que c'est ok. S'il n'y a pas le rond vert, c'est sois que la conf est fausse, soit livestatus ne fonctionne pas.
- Cliquez sur "Save changes".
Installation de PNP4Nagios
Si ça na pas été fait plus haut, installer le module npcdmod (commande "shinken install npcdmod" en tant que user shinken)
yum install rrdtool rrdtool-perl php php-gd wget http://sourceforge.net/projects/pnp4nagios/files/PNP-0.6/pnp4nagios-0.6.25.tar.gz tar -zxf pnp4nagios-0.6.25.tar.gz rm pnp4nagios-0.6.25.tar.gz cd pnp4nagios-0.6.25 ./configure --with-nagios-user=shinken --with-nagios-group=shinken make all make fullinstall
Editer /etc/httpd/conf.d/pnp4nagios.conf. Remplacer :
AuthName "Nagios Access"
Par :
AuthName "Thruk Monitoring"
Et :
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Par :
AuthUserFile /etc/thruk/htpasswd
systemctl enable npcd systemctl start npcd mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.old service httpd restart
Si ça n'a pas été fait précedemment, éditer le fichier /etc/shinken/brokers/broker-master.cfg. Sur la ligne "modules", ajouter la valeur "npcdmod". Séparer les valeurs par des virgules.
service shinken restart cd ..
Installation de NRPE
C'est pour les clients, mais le check_nrpe est utile pour le serveur.
groupadd -g 5666 nrpe useradd -g 5666 -u 5666 nrpe yum install openssl-devel wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz tar -zxf nrpe-2.15.tar.gz rm nrpe-2.15.tar.gz cd nrpe-2.15 ./configure make all (les fichiers compilés seront créés dans ./src)
- Pour que check_nrpe puisse êtr utilisé par le serveur shinken :
cp ./src/check_nrpe /usr/local/nagios/libexec/
Il faut maintenant que nrpe tourne en tant que démon. On va lui créer un répertoire et déposer ce qu'il faut dedans.
mkdir /opt/nrpe cp -p ./src/nrpe /opt/nrpe/
On va maintenant éditer un fichier de conf /opt/nrpe/nrpe.cfg qui ressemble à celui-ci (à adapter) :
log_facility=daemon pid_file=/var/run/nrpe.pid server_port=5666 nrpe_user=nrpe nrpe_group=nrpe allowed_hosts=127.0.0.1,192.168.1.23 dont_blame_nrpe=0 allow_bash_command_substitution=0 debug=0 command_timeout=60 connection_timeout=300 command[check_disk]=/usr/local/nagios/libexec/check_disk -w 10% -c 5%
On peut maintenant lancer nrpe en tant que démon. Le mieux est de créer un vrai service et de le rendre actif au boot.
Mais je ne prends pas le temps de le faire ici.
/opt/nrpe/nrpe -c /opt/nrpe/nrpe.cfg -d cd ..