Installation de Shinken

De UnixManiax
Aller à la navigation Aller à la recherche


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 ..