20
Installation pas à pas de Nagios et de Centreon. Avant d’installer Nagios, vous devez tout d’abord vous assurer que votre système est à jour, installer apache et installer une base de données mysql. Deux remarques importantes: - Dans notre cas, Nagios sera installé sur une Debian (d'où l'utilisation d'Aptitude), mais sachez que Nagios fonctionne sur la quasi-totalité des distributions. - Au cours du temps, les librairies évoluent et montent en version. Si vous recevez un message d'erreur lorsque vous tentez de récupérer une des librairies ci-dessous, pensez à utiliser l'outil apt-cache search . Cette commande listera les packages disponibles. Pour plus d'info sur cette commande, il y a une bonne documentation ici: http://doc.ubuntu-fr.org/apt-cache Mise à jour du système: # sudo apt-get update # sudo apt-get upgrade Build-essential regroupe les paquets nécessaires à la compilation de nos programmes et autres logiciels: (http://packages.debian.org/sid/build-essential ) # sudo apt-get install build-essential Nagios présente ses résultats via une interface web. Nous devons donc installer un serveur web! # sudo apt-get install apache2 wget Nagios et ses plugins ne pourront pas fonctionner sans quelques librairies: on remarquera la présence de BIND et de dnsutils, qui fournissent différents outils relatifs au DNS comme nslookup ou dig

Installation de Nagios Sur Debian

Embed Size (px)

Citation preview

Page 1: Installation de Nagios Sur Debian

Installation pas à pas de Nagios et de Centreon.

Avant d’installer Nagios, vous devez tout d’abord vous assurer que votre système est à jour, installer apache et installer une base de données mysql.

Deux remarques importantes:

- Dans notre cas, Nagios sera installé sur une Debian (d'où l'utilisation d'Aptitude), mais sachez que Nagios fonctionne sur la quasi-totalité des distributions.

- Au cours du temps, les librairies évoluent et montent en version. Si vous recevez un message d'erreur lorsque vous tentez de récupérer une des librairies ci-dessous, pensez à utiliser l'outil apt-cache search . Cette commande listera les packages disponibles. Pour plus d'info sur cette commande, il y a une bonne documentation ici: http://doc.ubuntu-fr.org/apt-cache

Mise à jour du système:

# sudo apt-get update

 # sudo apt-get upgrade

Build-essential regroupe les paquets nécessaires à la compilation de nos programmes et autres logiciels:(http://packages.debian.org/sid/build-essential)

# sudo apt-get install build-essential

Nagios présente ses résultats via une interface web. Nous devons donc installer un serveur web!

# sudo apt-get install apache2 wget

Nagios et ses plugins ne pourront pas fonctionner sans quelques librairies: on remarquera la présence de BIND et de dnsutils, qui fournissent différents outils relatifs au DNS comme nslookup ou dig

# sudo apt-get install bind9-host dnsutils libbind9-60 libdns50 libisc60 libisccc60 libisccfg60 liblwres60 libradius1 qstat radiusclient1 snmp snmpd

Centreon a également besoin de librairies

# sudo apt-get install rrdtool mailx librrds-perl libapache2-mod-php5 php5 php-pear php5-gd php5-ldap php5-snmp

Démarrez le serveur web: 

# sudo apache2ctl start

Page 2: Installation de Nagios Sur Debian

Les librairies suivantes permettent l'affichage de graphiques dans l'interface web de Nagios.

# sudo apt-get install libgd2-noxpm-dev libpng12-dev libjpeg62 libjpeg62-dev

Installation de la base de données pour Centreon (une base de données MySQL): 

# sudo apt-get install mysql-server

 # sudo apt-get install php5-mysql

 # sudo apt-get install libmysqlclient15-dev

Pour des  raisons de sécurité, nagios est exécuté non pas en root mais par l’utilisateur nagios et par le groupe nagiosgrp. C'est pourquoi on créé un utilisateur à qui l'on donne un mot de passe, on l'ajoute à son groupe et on lui donne les droits nécessaires à l'utilisation de Nagios.

Ensuite, nous ajoutons l'utilisateur www-data(utilisateur d'Apache) à nagiosgrp pour qu'il ait accès aux mêmes fichiers que nagios.

# sudo /usr/sbin/useradd nagios

 # sudo passwd nagios

 # sudo /usr/sbin/groupadd nagiosgrp

 # sudo /usr/sbin/usermod -G nagiosgrp nagios

 # sudo /usr/sbin/usermod -G nagiosgrp www-data

Rendez-vous sur nagios.org pour télécharger Nagios et ses plugins:

 

 

Vous pouvez aussi les télécharger en ligne de commandes :

 

# sudo -s

 # cd /usr/src

Page 3: Installation de Nagios Sur Debian

 # wget http://surfnet.dl.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz

 # wget http://kent.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz 

Compilation de Nagios depuis les sources

On décompresse et on installe le core:

# tar xzf nagios-3.2.0.tar.gz

 # cd nagios-3.2.0

 # ./configure --with-command-group=nagiosgrp

 # make all

 # make install

 # make install-init

 # make install-config

 # make install-commandmode 

Qu'avons-nous fait? Voyons en détails les commandes que vous avez tapé:

 

make all : les sources sont compilées grâce aux outils compris dans buid-essential (que vous avez installé dans la première partie).

make install : cette commande installe le logiciel Nagios et les fichiers qui lui sont liés (ex: les pages web de l'interface utilisateur).

make install-init : un init script est créé dans /etc/init.d, ce qui permettra entre autres de lancer Nagios via la commande /etc/init.d/nagios start.

make install-config : cette commande copie des fichiers de configuration "sample" (qui présentent la syntaxe type d'un fichier de configuration).

make install-commandemode : certaine permissions appliquées sur le dossier les commandes externes de Nagios sont modifiées.

 

On installe ensuite la configuration Apache qui sera utilisée par Nagios:

# make install-webconfPour accéder à certaines commandes au travers de l'interface web comme le redémarrage de Nagios, nous devons autoriser l'utilisateur Apache à exécuter des commandes externes. Nous faisons de lui l'administrateur grâce à la commande suivante (l'option -c signifie que l'on créé un nouveau fichier de mots de passe):

Page 4: Installation de Nagios Sur Debian

# sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadminSaisissez le mot de passe de l utilisateur nagiosadmin (par lequel vous accederez à l interface web de Nagios)Redémarrons alors Apache pour appliquer ces modifications (remarquez l'utilisation de l'init script qui a été créé automatiquement avec Apache: dans ce cas, nous n'avons pas eu à taper la commande make install-init ):

# /etc/init.d/apache2 reload 

Compilation des plugins Nagios depuis les sources

 

Après avoir récupéré les sources des plugins de Nagios (de la même manière que vous avez récupéré Nagios lui-même), décompressez-les:

# cd /usr/src

 # tar xzf nagios-plugins-1.4.13.tar.gzEntrez ensuite dans le dossier que vous venez de créer, configurez les plugins pour qu'ils soient possédés par l'utilisateur nagios et le groupe nagiosgrp et installez les:

# cd nagios-plugins-1.4.13

 # ./configure --with-nagios-user=nagios --with-nagios-group=nagiosgrp

 # make

 # make install

Premier test

On lance la commande de vérification des fichiers de configuration, une bonne habitude à prendre si l'on ne veut pas se retrouver face à des messages d'erreurs avertissants que tel ou tel fichier de configuration ne respecte pas la bonne syntaxe :

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Page 5: Installation de Nagios Sur Debian

Depuis l'apparition de Nagios 3, on peut remplacer la commande précédente par celle-ci:

# /etc/init.d/nagios checkconfigNormalement ce message devrait apparaitre :

Total Warnings: 0

 Total Errors: 0

 Things look okay  No serious problems were detected during the pre-flight check 

 

On peut lancer Nagios de deux manières:

démarrage manuel

# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.confLe processus Nagios est lancé. L'option -d signifie qu'on lance Nagios en mode daemon

 

démarrage automatique

# /etc/init.d/nagios start 

Vous devriez alors pouvoir accéder à l’interface web via l’adresse:

http://localhost/nagios

Page 6: Installation de Nagios Sur Debian

Installation des NDOUTILS

Le problème quand deux très bonnes solutions cohabitent (ici, Nagios et Centreon), c'est qu'elles utilisent parfois des standard différents: impossible de faire fonctionner Nagios et son interface web de configuration sans passer par une base de données commune. Nagios y transferera les résultats des tests qu'il a effectué et Centreon y modifiera les fichiers de configurations propres à Nagios.

Dans ce chapitre nous verrons comment installer NDOUtils et comment l'utiliser. NDOUtils est un plugin de Nagios qui lui permet d'envoyer les résultats de ses tests et de les insérer dans la base de données. La distinction entre ces deux étapes est importante, mais nous y reviendrons plus tard (patience). Pour l'instant, nous installons la base de données qui fera le lien entre Nagios et Centreon.

 

 

Installation de la base de données NDO

# mysqladmin -u root -p create ndo

 # mysql -u root -p mysql

 mysql> GRANT ALL ON ndo.* TO "ndouser@localhost" IDENTIFIED BY "ndopassword";Query OK, 0 rows affected (0.00 sec)

 mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)

 mysql> exit 

Qu'avez-vous fait? Revoyons ces commandes:

mysqladmin -u root -p create ndo : vous avez executé la commande "create ndo " en prenant l'identité de l'utilisateur root.

mysql -u root -p mysql : vous avez ouvert la base de données mysql en tant qu'administrateur. L'option -p est la forme contractée de -password (pour indiquer votre mot de passe, renseignez le directement après l'option, sans espaces).

GRANT ALL ON ndo.* TO "ndouser@localhost" IDENTIFIED BY "ndopassword"; : tous les privilèges sur toutes les tables de la base ndo sont désormais accordés à l'utilisateur local ndouser. C'est cet utilisateur qui effectue les opérations sur la base de donnée NDO.

FLUSH PRIVILEGES; : les privilèges que vous avez ajoutés sont sauvegardés et appliqués.

 

Installation du plugin NDOUtils

Comme je le disais plus haut, NDOUtils permet deux choses: envoyer les données et les insérer dans la base. Ces deux tâches sont respectivement réalisées par NDOMOD et NDO2DB, les deux composants de NDOUtils.

Page 7: Installation de Nagios Sur Debian

 

 

Installons d'abord le plugin: il faut récupérer l'archive des sources sur le site nagios.org, la décompresser, compiler les sources et copier NDO2DB et NDOMOD dans le dossier /usr/ocal/nagios/bin

# cd /usr/src

 # wget http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz

 # tar zxvf ndoutils-1.4b9.tar.gz

 # cd ndoutils-1.4b9

 # ./configure --disable-pgsql --with-mysql-lib=/usr/lib/mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagiosgrp

 # make

 # cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o

 # cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db

 # cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg

 # cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfgIl faut modifier les fichiers de configuration de nos deux composants: ndomod.cfg et ndo2db.cfg (modifier les parametres pour qu'ils correspondent à ce qui est écrit ci-dessous)

# vi /usr/local/nagios/etc/ndomod.cfg

 instance_name=Centraloutput_type=unixsocketoutput=/usr/local/nagios/var/ndo.socktcp_port=5668output_buffer_items=5000buffer_file=/usr/local/nagios/var/ndomod.tmp

 # vi /usr/local/nagios/etc/ndo2db.cfg

 ndo2db_user=nagiosndo2db_group=nagiosgrpsocket_type=unixsocket_port=5668

Page 8: Installation de Nagios Sur Debian

db_servertype=mysqldb_name=ndodb_port=3306db_host=localhostdb_prefix=nagios_db_user=ndouserdb_pass=ndopassword

 #vi /usr/local/nagios/etc/nagios.cfg

 event_broker_options=-1broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

 # chmod 774 /usr/local/nagios/bin/ndo*

 # chown nagios:nagiosgrp /usr/local/nagios/bin/*

 # chown nagios:nagiosgrp /usr/local/nagios/etc/ndo* 

Il faut alors initialiser la base de données MySQL:

# cd db

 # ./installdb -u ndouser -p ndopassword -h localhost -d ndo

Page 9: Installation de Nagios Sur Debian

Ensuite, vous devez automatiser le lancement de NDO grâce au script /etc/init.d/ndo2db qu'il vous faut créer. En voici le contenu:

#!/bin/sh# ## chkconfig: 345 99 01# description: Nagios to mysql## Author : Gaëtan Lucas# Realase : 07/02/08# Version : 0.1 b# File : ndo2db# Description: Starts and stops the Ndo2db daemon#              used to provide network services status in a database.#

   status_ndo (){    if ps -p $NdoPID > /dev/null 2>&1; then            return 0    else        return 1    fi

     return 1}

 printstatus_ndo(){    if status_ndo $1 $2; then        echo "ndo (pid $NdoPID) is running..."    else        echo "ndo is not running"    fi}

 killproc_ndo (){    echo "kill $2 $NdoPID"    kill $2 $NdoPID}

 

Page 10: Installation de Nagios Sur Debian

pid_ndo (){    if test ! -f $NdoRunFile; then        echo "No lock file found in $NdoRunFile"        echo -n "         checking runing process..."        NdoPID=`ps h -C ndo2db -o pid`        if [ -z "$NdoPID" ]; then            echo "     No ndo2db process found"            exit 1        else            echo "     found process pid: $NdoPID"            echo -n "         reinit $NdoRunFile ..."            touch $NdoRunFile            chown $NdoUser:$NdoGroup $NdoRunFile            echo "$NdoPID" > $NdoRunFile            echo "     done"        fi    fi

     NdoPID=`head $NdoRunFile`}

 # Source function library# Solaris doesn't have an rc.d directory, so do a test firstif [ -f /etc/rc.d/init.d/functions ]; then    . /etc/rc.d/init.d/functionselif [ -f /etc/init.d/functions ]; then    . /etc/init.d/functionsfi

 prefix=/usr/local/nagiosexec_prefix=${prefix}NdoBin=${exec_prefix}/bin/ndo2dbNdoCfgFile=${prefix}/etc/ndo2db.cfgNdoRunFile=${prefix}/var/ndo2db.runNdoLockDir=/var/lock/subsysNdoLockFile=ndo2db.lockNdoUser=nagiosNdoGroup=nagiosgrp

           # Check that ndo exists.if [ ! -f $NdoBin ]; then   echo "Executable file $NdoBin not found.  Exiting."   exit 1

Page 11: Installation de Nagios Sur Debian

fi

 # Check that ndo.cfg exists.if [ ! -f $NdoCfgFile ]; then   echo "Configuration file $NdoCfgFile not found.  Exiting."   exit 1fi

           # See how we were called.case "$1" in

     start)        echo -n "Starting ndo:"        touch $NdoRunFile        chown $NdoUser:$NdoGroup $NdoRunFile        $NdoBin -c $NdoCfgFile        if [ -d $NdoLockDir ]; then            touch $NdoLockDir/$NdoLockFile;            fi        ps h -C ndo2db -o pid > $NdoRunFile        if [ $? -eq 0 ]; then            echo " done."            exit 0        else            echo " failed."            $0 stop            exit 1        fi        ;;

     stop)        echo -n "Stopping ndo: "

         pid_ndo        killproc_ndo

         # now we have to wait for ndo to exit and remove its        # own NdoRunFile, otherwise a following "start" could        # happen, and then the exiting ndo will remove the        # new NdoRunFile, allowing multiple ndo daemons        # to (sooner or later) run        #echo -n 'Waiting for ndo to exit .'        for i in 1 2 3 4 5 6 7 8 9 10 ; do            if status_ndo > /dev/null; then

Page 12: Installation de Nagios Sur Debian

            echo -n '.'            sleep 1            else            break            fi        done        if status_ndo > /dev/null; then            echo            echo 'Warning - ndo did not exit in a timely manner'        else            echo 'done.'        fi

         rm -f $NdoRunFile $NdoLockDir/$NdoLockFile        ;;

     status)        pid_ndo        printstatus_ndo ndo        ;;

     restart)        $0 stop        $0 start        ;;

     *)        echo "Usage: ndo {start|stop|restart|status}"        exit 1        ;;

 esac

   # End of this scriptOn automatise le lancement de ndo2db:

# sudo update-rc.d ndo2db defaults

Page 13: Installation de Nagios Sur Debian

Update-rc.d met automatiquement à jour les liens vers les init scripts de type /etc/rc.d/ vers les init scripts /etc/init.d/.

 

Une autre méthode pour automatiser le lancement serait de modifier la fichier /etc/init.d/nagios.

Ajoutez la ligne suivante avant la ligne "su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"

su - $NagiosUser -c "/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg"

Page 14: Installation de Nagios Sur Debian

Ajoutez ensuite après la ligne "killproc_nagios nagios":

su - $NagiosUser -c "skill ndo2db"

Page 15: Installation de Nagios Sur Debian

ainsi, lorsque le service Nagios démarre, NDO démarre avec lui!

 

On lance ensuite NDO et on redémarre le serveur Nagios

# /etc/init.d/ndo2db start

 # /etc/init.d/nagios restart

Page 16: Installation de Nagios Sur Debian

 

Enfin, petit bonus pour tous ceux qui souhaitent approfondir leurs connaissances de NDO, je vous recommande la documentation officielle que vous trouverez ici.

Installation de CENTREON

Nagios est une solution très puissante, là-dessus nous sommes d'accord. Cependant, on peut lui reprocher d'être très compliqué à configurer: fichiers texte par-ci par-là, on s'y perd très vite.

 

Heureusement, Centreon remédie à ce problème en fournissant une interface de configuration agréable à l'oeil et bien organisée. Adieu les vagabondages dans les dossiers! De ce fait, tout administrateur qui cherche à former son équipe sur Nagios, ou qui tout simplement n'aime pas passer du temps dans les fichiers de configuration préférera utiliser cette solution.

 

Installation de Centreon

# sudo -s

 # cd /usr/src

 # wget http://download.centreon.com/index.php?id=143

 # tar zxvf centreon-2.0.tar.gz

 # cd centreon-2.0

Page 17: Installation de Nagios Sur Debian

On lance alors le script d’installation :

# ./install.sh –i

Page 18: Installation de Nagios Sur Debian

Un dernière étape consiste à modifier la base de donnée NDO pour qu'elle fonctionne de manière optimisée avec Centreon (les commandes SQL sont très proches de celles décrites dans le chapitre précédent):

# cd /usr/src/centreon-2.0/www/install

 # mysql -u root -p ndo < ./createNDODB.sql

 # mysql -u root -p

 mysql> GRANT SELECT , INSERT , UPDATE , DELETE ON `ndo` . * TO 'ndouser'@'localhost' IDENTIFIED BY 'ndopassword';Query OK, 0 rows affected (0.00 sec)

 mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)

 mysql> exit

 # cd /usr/src/centreon-2.0/

Page 19: Installation de Nagios Sur Debian

On finalise alors l’installation en passant par l’interface Web de Centreon :

http://IP de votre serveur/centreon/

 

On renseigne alors Centreon sur la base de données NDO

 

 

 

(pour toutes les autres pages de configuration, cliquez sur Next).

Vous arrivez sur la page d’administration… il ne vous reste plus qu’à configurer vos hotes et services à surveiller !