Mise en place d’un serveur NAGIOS sur Linux – Installation de Nagios, Centreon et NDO

  • A quoi sert NAGIOS ?

C’est un serveur permettant la surveillance des réseaux avec le protocole SNMP (Simple Network Management Protocole). C’est ce protocole qui permet aux administrateurs réseau de gérer les équipements du parc informatique, de superviser et de diagnostiquer des problèmes réseaux et de matériels à distance.

Nagios est un programme modulaire qui se décompose en trois parties :

  1. Le moteur de l’application qui vient ordonnancer les tâches de supervision.
  2. L’interface web, qui permet d’avoir une vue d’ensemble du système d’information et des possibles anomalies.
  3. Les plugins, une centaine de mini programmes que l’on peut compléter en fonction des besoins de chacun pour superviser chaque service ou ressource disponible sur l’ensemble des ordinateurs ou éléments réseaux du SI. 
  • Comment mettre en place NAGIOS ?

    • Le logiciel fonctionne sur Linux (Ubuntu ou Fedora);

    • Besoin du logiciel Centreon (interface simplifiée pour utiliser Nagios), et du logiciel NDO (qui fait le lien entre Centreon et Nagios, et permet également a Nagios d’écrire dans une base de données l’état des machines à superviser);

    • Il faut également installer une base de données (ex : MySQL) , et un logiciel de serveur HTTP (ex : Apache2);

    • Pour le fonctionnement de Nagios, selon les OS, il faudra installer des plugins sur les machines que l’on souhaite surveiller. Pour une machine Windows, on utilisera le plugin NSClient, et pour une machine Linux, on utilisera le plugin NRPE;

    • Il faudra également installer quelques paquets supplémentaires sur le serveur Nagios, tels que RRDTool , Perl ,SNMP et des librairies GD.

  • Installation de Nagios :

1] Installation des prés requis:

  • Package divers:
    apt-get install sudo bsd-mailx lsb-release

  • Compiler:
    apt-get install build-essential

  • Server Web (apache) et PHP5:
    apt-get install apache2 apache2-mpm-prefork
    apt-get install php5 php5-mysql
    apt-get install php-pear php5-ldap php5-snmp php5-gd

  • MySQL :
    apt-get install mysql-server-5.1 libmysqlclient15-dev

Pendant l’installation de mysql, vous avez un prompt qui vous demande de saisir le mot de passe du server mysql. Nous mettrons nagios. Ensuite un deuxième prompt apparait, revalider votre mot de passe.

  • RRDTool:
    apt-get install rrdtool librrds-perl
  • Perl:
    apt-get install libconfig-inifiles-perl libcrypt-des-perl libdigest-hmac-perl libdigest-sha1-perl libgd-gd2-perl
  • SNMP:
    apt-get install snmp snmpd libnet-snmp-perl libsnmp-perl
  • Les librairies GD:
    apt-get install libgd2-xpm libgd2-xpm-dev libpng12-dev
  • Et enfin 2 paquets qui nous servirons pour la suite :
    apt-get install dnsutils fping

2] Création du compte et ajout des droits:

Il nous faut à présent créer un utilisateur nagios, car il est préférable de ne pas utiliser le compte root pour l’installation, mais plutôt le compte nagios qui exécutera les plugins et autres scripts, ce qui nous permettra de voir s’il y a des problèmes de droits ou autre.

Création du compte user et des groupes de Nagios:

/usr/sbin/useradd -m nagios
passwd nagios

Enter new UNIX password: nagios
Retype new UNIX password: nagios

psswd: Password updated successfully

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagios,nagcmd nagios
/usr/sbin/usermod -G nagios,nagcmd www-data

Pour résumer, nous créons un compte utilisateur, un groupe nagcmd pour exécuter les commandes du poller Nagios et un groupe nagios pour les droits. Le compte utilisateur nagios est ajouté à ces trois groupes (nagmcd, nagios, nagcmd).

A présent, je vous conseiles de vous déconnecter et de vous connecter avec le compte nagios que nous avont crées, puis tester la commande sudo ifconfig pour vérifier que vous pouvez utiliser sudo correctement.

3] Installation de Nagios:

Placer vous dans un répertoire de travail, le répertoire /home/nagios par exemple:

cd /home/nagios

Puis créer un répertoire download et placer vous dans ce répertoire:

mkdir download
cd download

Une fois dans ce répertoire, taper:

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz

Puis décompresser l’archive de nagios:

tar xvzf nagios-3.2.0.tar.gz

Une fois décompressé, nous allons installer le programme:

cd nagios-3.2.0/
./configure –prefix=/usr/local/nagios –with-command-group=nagcmd –enable-nanosleep –enable-event-broker ,

Puis, effectuer les commandes suivantes:

make all
sudo make install
sudo make install-init
sudo make install-commandmode
sudo make install-config

Voilà, Nagios est installé, nous allons maintenant installer le plugin Nagios…

Replacer vous dans le répertoire download avec un « cd .. »
Puis téléchargez « nagios-plugins-1.4.14.tar.gz » :

wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz

Décompressez le puis placer vous dans le répertoire:
tar xvzf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14/


Ensuite configurez le:

./configure –with-nagios-user=nagios –with-nagios-group=nagios –with-openssl=/usr/bin/openssl
make
sudo make install

Voilà Nagios et son plugin sont installés. Configurons maintenant l’accès Web de Nagios:

Créer le htaccess: (nous prendrons nagios dans le tuto)

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagios
New password:nagios
Re-type new password:nagios

Adding password for user nagios

Ensuite il faut editer httpd.conf comme suis:

sudo vim /etc/apache2/httpd.conf

ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin

<Directory "/usr/local/nagios/sbin">

Options ExecCGI

AllowOverride None

Order allow,deny

Allow from all

AuthName "Nagios Access"

AuthType Basic

AuthUserFile /usr/local/nagios/etc/htpasswd.users

Require valid-user

</Directory>

Alias /nagios /usr/local/nagios/share

<Directory "/usr/local/nagios/share">

Options None

AllowOverride None

Order allow,deny

Allow from all

AuthName "Nagios Access"

AuthType Basic

AuthUserFile /usr/local/nagios/etc/htpasswd.users

Require valid-user

</Directory>

Puis redémarrez le serveur apache:

sudo service apache2 restart

Maintenant si vous tapez  http://’IP_DU_SERVEUR’/nagios dans votre navigateur un prompt doit apparaitre. Saisissez donc le login et le mot de passe utilisé lors de la création du htaccess (id: nagios, mot de passe : nagios)

prompt

 

4] Installation de NDOutils partie 1 : 

Replacez vous dans le répertoire download puis télécharger NDOutils :

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

Puis décompresser l’archive pour procéder à une installation manuelle:

tar xvzf ndoutils-1.4b9.tar.gz
cd ndoutils-1.4b9

Configurez NDO:

./configure –prefix=/usr/local/nagios/ –enable-mysql –disable-pgsql \
–with-ndo2db-user=nagios –with-ndo2db-group=nagios
make

Et enfin, procedez à l’installation : 

sudo cp ./src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
sudo cp ./src/ndo2db-3x /usr/local/nagios/bin/ndo2db
sudo cp ./config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
sudo cp ./config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
sudo chmod 775 /usr/local/nagios/bin/ndo*
sudo chown nagios:nagios /usr/local/nagios/bin/ndo*

Créez ensuite un deamon ndo2db:

sudo vim /etc/init.d/ndo2db

Puis coller le script ci-dessous.

#!/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

}

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

hown $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 first

if [ -f /etc/rc.d/init.d/functions ]; then

. /etc/rc.d/init.d/functions

elif [ -f /etc/init.d/functions ]; then

. /etc/init.d/functions

fi

prefix=/usr/local/nagios

exec_prefix=${prefix}

NdoBin=${exec_prefix}/bin/ndo2db

NdoCfgFile=${prefix}/etc/ndo2db.cfg

NdoRunFile=${prefix}/var/ndo2db.run

NdoLockDir=/var/lock/subsys

NdoLockFile=ndo2db.lock

NdoUser=nagios

NdoGroup=nagios

 

# Check that ndo exists.

if [ ! -f $NdoBin ]; then

echo "Executable file $NdoBin not found.  Exiting."

exit 1

fi

# Check that ndo.cfg exists.

if [ ! -f $NdoCfgFile ]; then

echo "Configuration file $NdoCfgFile not found.  Exiting."

exit 1

fi

 

# 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

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 script

 Ajoutez ensuite le daemon au démarrage:

sudo update-rc.d ndo2db defaults
sudo chmod +x /etc/init.d/ndo2db

Voilà le daemon ndo2db est maintenant prêt.

5] Installations de Centreon:

Placez vous dans le répertoire de téléchargement créé plus haut, puis téléchargez Centreon:

cd /home/nagios/download/
wget http://download.centreon.com/centreon/centreon-2.1.3.tar.gz
Décompressez Centreon:

tar xvzf centreon-2.1.3.tar.gz
cd centreon-2.1.3/

Définissez un chemin pour les binaires de nagios, ndomod, etc…

export PATH= »$PATH:/usr/local/nagios/bin/ »

Puis lancez l’installation de Centreon:

sudo ./install.sh -i

Descendez tout en bas du contrat de licence puis accepté en cliquant « Y« .

Répondez « Y » à toutes les questions posées lors du processus d’installation, et validez les chemins par défaut lors de l’installation.

 Arrivé au moment où il vous est proposé:

Where is your NDO ndomod binary ?
default to [/usr/sbin/ndomod.o]
>

Entrez le chemin du fichier que nous avons utilisés lors de l’installation NDO:

> /usr/local/nagios/bin/ndomod.o

Puis continuez en acceptant les chemins par défaut et en mettant « Y » à chaque question.

Lorsque l’installation va vous demander de mettre à jour les librairies PEAR, taper « Y » et validez.
Ceci va lancer les
mises à jour des modules pear.

Continuez en validant les chemins par défaut et en mettant « Y » à chaque question.

Voilà Centreon est installé. Il ne reste plus qu’à redémarrer le serveur apache.

 sudo service apache2 restart

Nous allons maintenant finaliser l’installation de Centreon par le WEB.

Ouvrez votre navigateur et lancer l’url suivante : http://’IP_DU_SERVEUR’/centreon 

Cliquer sur « start » :

Cochez accepter les termes puis next.

Laissez la configuration de l’environnement par défaut puis next.

Vérifier que tout est ok puis next :

             

Configuration de la base de données:
Les mots de passes suivant s’appliquent si vous avez suivi le tuto avec les mots de passe « 
nagios« .

Root password for MySQL : nagios
Centreon database name :
centreon
Centstorage database name :
centstorage
NDO database name :
centstatus
Database password :
nagios
Confirm it :
nagios
Database location :
(ne rien mettre)
Centreon web interface location : (ne rien mettre)
MySQL client version :
4.1 – PASSWORD


Puis next

Vérifiez que tout est ok puis next : 

Configuration de l’interface:

Administrator login for centreon :
Administrator password :

Confirm password :
First name :

Last name :

Administrator email :

Vous pouvez mettre ce que vous voulez dans les champs

 Puis next

LDAP Authentification:

Enable LDAP Authentification : NO

Important mettez bien ‘NOici !!! Vous pourrez éventuellement le configurer ultérieurement.

Vérifier ensuite que tout les fichiers de configuration soient ok:

Vérifier que la création de la base de données (database) est ok:

Et enfin accéder à centreon
Cliquez sur « 
Click here to complete your install« 

Voilà nous allons passer aux configurations de bases post installation.

Installation des LOCALE.

Revenez donc sous le shell :

sudo apt-get install gettext

Vérifier tout d’abord les locale de votre système:

locale

Pour ma part je suis donc en « fr_FR.UTF-8« 

 Créez les répertoires des locales:

sudo mkdir /usr/local/centreon/www/locale/fr_FR.UTF-8/
sudo mkdir /usr/local/centreon/www/locale/fr_FR.UTF-8/LC_MESSAGES/

placez vous dans le répertoire de download et téléchargez le language pack:

cd /home/nagios/download
wget http://download.centreon.com/index.php?id=119

Décompressez l’archive:

tar xvzf index.php?id=119
cd centreon-2.1-fr_FR-1.0/LC_MESSAGES/

Copie du fichier de locale:

sudo cp messages.mo /usr/local/centreon/www/locale/fr_FR.UTF-8/LC_MESSAGES/messages.mo

Pour vérifier que la locale s’est bien installée, connectez vous sur Centreon (http://’IP_DU_SERVER’/centreon), puis allez dans : 

Configuration -> Users , sélectionnez votre utilisateur (admin) et vérifiez que vous pouvez sélectionner fr_FR.UTF-8.

Ensuite redémarrez le server apache.

sudo service apache2 restart

Centreon est maintenant en français.

Donnez ensuite les droits sur les répertoires Nagios:

sudo chown -R nagios:nagios /usr/local/nagios
sudo chmod -R 775 /usr/local/nagios
sudo chown -R nagios:www-data /usr/local/nagios/etc
sudo chmod -R 775 /usr/local/nagios/etc
sudo chown -R nagios:www-data /usr/local/nagios/share
sudo chmod -R 775 /usr/local/nagios/share

 Et centreon:

sudo chown -R nagios:nagios /usr/local/centreon
sudo chmod -R 775 /usr/local/centreon
sudo chown -R nagios:www-data /usr/local/centreon/cron
sudo chmod -R 775 /usr/local/centreon/cron
sudo chown -R nagios:www-data /usr/local/centreon/doc
sudo chmod -R 775 /usr/local/centreon/doc
sudo chown -R www-data:nagios /usr/local/centreon/log
sudo chmod -R 775 /usr/local/centreon/log
sudo chown -R www-data:www-data /usr/local/centreon/www
sudo chmod -R 775 /usr/local/centreon/www
sudo chown -R www-data:www-data /usr/local/centreon/GPL_LIB
sudo chmod -R 775 /usr/local/centreon/GPL_LIB

6] Installation NDO partie 2:

Nous allons maintenant finaliser la configuration NDO.

Création de la base de données NDO : 

mysql -u root -p

Enter password : nagios

CREATE DATABASE `ndo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

exit

 mysql -u root -pnagios ndo < /home/nagios/download/centreon-2.1.3/www/install/createNDODB.sql

Puis donnez les droits à l’utilisateur sur la base:

mysql -u root -pnagios

GRANT ALL PRIVILEGES ON `ndo` . * TO ‘centreon’@’localhost’IDENTIFIED BY ‘nagios’;
flush privileges;

exit

Vérifiez ensuite la présence du fichier ndo2db.cfg puis éditer le:

ls -l /usr/local/nagios/etc/
sudo vim /usr/local/nagios/etc/ndo2db.cfg

 Puis éditez comme ci-dessous:

#####################################################################
# NDO2DB DAEMON CONFIG FILE
#
# Last Modified: 01-02-2009
#####################################################################

# LOCK FILE
# This is the lockfile that NDO2DB will use to store its PID number
# in when it is running in daemon mode.

lock_file=/usr/local/nagios/var/ndo2db.lock

# USER/GROUP PRIVILIGES
# These options determine the user/group that the daemon should run as.
# You can specify a number (uid/gid) or a name for either option.

ndo2db_user=nagios
ndo2db_group=nagios

# SOCKET TYPE
# This option determines what type of socket the daemon will create
# an accept connections from.
# Value:
# unix = Unix domain socket (default)
# tcp = TCP socket

socket_type=unix
#socket_type=tcp

# SOCKET NAME
# This option determines the name and path of the UNIX domain
# socket that the daemon will create and accept connections from.
# This option is only valid if the socket type specified above
# is « unix ».

socket_name=/usr/local/nagios/var/ndo.sock

# TCP PORT
# This option determines what port the daemon will listen for
# connections on. This option is only vlaid if the socket type
# specified above is « tcp ».

tcp_port=5668

# ENCRYPTION
# This option determines if the ndo2db daemon will accept SSL to encrypt the
# network traffic between module and ndo2db daemon.
# Both sides have to enable this feature which depends on SSL Libraries
# like openssl or kerberos
# This option is only valid if the output type
# option specified above is « tcpsocket ».
#
# A value of ‘1’ will enable this feature

use_ssl=0

# DATABASE SERVER TYPE
# This option determines what type of DB server the daemon should
# connect to.
# Values:
# mysql = MySQL
# pgsql = PostgreSQL

db_servertype=mysql

# DATABASE HOST
# This option specifies what host the DB server is running on.

db_host=localhost

# DATABASE PORT
# This option specifies the port that the DB server is running on.
# Values:
# 3306 = Default MySQL port
# 5432 = Default PostgreSQL port

db_port=3306

# DATABASE NAME
# This option specifies the name of the database that should be used.

db_name=nagios

# DATABASE TABLE PREFIX
# Determines the prefix (if any) that should be prepended to table names.
# If you modify the table prefix, you’ll need to modify the SQL script for
# creating the database!

db_prefix=nagios_

# DATABASE USERNAME/PASSWORD
# This is the username/password that will be used to authenticate to the DB.
# The user needs at least SELECT, INSERT, UPDATE, and DELETE privileges on
# the database.

db_user=centreon
db_pass=nagios
db_name=ndo


## TABLE TRIMMING OPTIONS
# Several database tables containing Nagios event data can become quite large
# over time. Most admins will want to trim these tables and keep only a
# certain amount of data in them. The options below are used to specify the
# age (in MINUTES) that data should be allowd to remain in various tables
# before it is deleted. Using a value of zero (0) for any value means that
# that particular table should NOT be automatically trimmed.

# Keep timed events for 24 hours
max_timedevents_age=1440

# Keep system commands for 1 week
max_systemcommands_age=10080

# Keep service checks for 1 week
max_servicechecks_age=10080

# Keep host checks for 1 week
max_hostchecks_age=10080

# Keep event handlers for 31 days
max_eventhandlers_age=44640

# Keep external commands for 31 days
max_externalcommands_age=44640


# DEBUG LEVEL
# This option determines how much (if any) debugging information will
# be written to the debug file.  OR values together to log multiple
# types of information.
# Values: -1 = Everything
# 0 = Nothing
# 1 = Process info
# 2 = SQL queries

debug_level=0

# DEBUG VERBOSITY
# This option determines how verbose the debug log out will be.
# Values: 0 = Brief output
# 1 = More detailed
# 2 = Very detailed

debug_verbosity=1

# DEBUG FILE
# This option determines where the daemon should write debugging information.

debug_file=/usr/local/nagios/var/ndo2db.debug

# MAX DEBUG FILE SIZE
# This option determines the maximum size (in bytes) of the debug file. If
# the file grows larger than this size, it will be renamed with a .old
# extension. If a file already exists with a .old extension it will
# automatically be deleted. This helps ensure your disk space usage doesn’t
# get out of control when debugging.

max_debug_file_size=1000000

 

Connectez vous ensuite sur Centreon (http://’IP_DU_SERVER’/centreon)
Allez sur :

Configuration -> Nagios -> Nagios.cfg puis cliquez sur « Nagios CFG 1« 

Ensuite, sous l’onglet Données, les champs « Commande de lancement du module« , « Option de lancement du module » et « Fichier de données de performance de service« , configurez comme ci-dessous :

 Commande de lancement du module :

/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

 Option de lancement du module :

-1

 Fichier de données de performance de service :

/usr/local/nagios/var/service-perfdata

 Puis cliquez sur « Sauvegarder« 

Ensuite sous :

Configuration -> Centreon -> ndo2db.cfg -> Principal

Mettre dans « Nom de la socket » :

/usr/local/nagios/var/ndo.sock

 Puis sous:

Configuration -> Centreon -> ndomod.cfg -> Central-mod

Complétez comme suis :

Type d’interface :
unixsocket

Status détailler :
/usr/local/nagios/var/ndo.sock

Fichier tampon :
/usr/local/nagios/var/ndomod.tmp

Puis sauvegarder (en haut a droite)

Testez maintenant de démarrer les services :

sudo service nagios start
sudo service ndo2db start

 Si vous rencontrez des erreurs après le démarrage de ndodb, nous vous conseillons de jeter un coup d’œil ici : http://vip93fr.free.fr/2point0/index.php?post/2009/09/30/Nagios%3A-%22ndomod%3A-Error-writing-to-data-sink!-Some-output-may-get-lost%22.

 Allez ensuite sur :

Configuration -> Nagios

Cochez toute les options présentes puis
exporter.

Vérifier qu’il n’y ai pas d’erreur lors de l’export de la configuration :

 

Puis vérifiez que le lien NDO s’établi correctement:

tail -f /usr/local/nagios/var/nagios.log | grep ndomod

Vous devriez avoir ceci:

[1261436831] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1261436831] ndomod: Successfully connected to data sink. 0 queued items to flush.
[1261436831] Event broker module ‘/usr/local/nagios/bin/ndomod.o’ initialized successfully.

Une foi que tout est ok, configurez les permissions cgi de Nagios.

Allez sur :

Configuration -> Nagios -> CGI

Editer CGI.cfg’

Remplacez les users nagiosadminpar nagios

Puis remplacez dans « Méthode d’affichage par défaut de la carte des états » en « Circular (Marked Up)« .

Puis sauvegarder.

Aller ensuite dans :

Configuration -> Nagios -> Ressources, puis éditer $USER2$avec le nom de la communauté que vous avez paramétré sur vos hôtes.

Configurer ensuite Centstorage :
Sous :

Administration -> Options -> Centstorage

Editez comme le screenshot ci-dessous

Puis aller sous :

Configuration -> Nagios

Cochez toutes les options, méthode « Redémarrer » puis exporter.

Voilà l’installation de base est à présent terminée.

Par défaut le serveur nagios est ajouté à Nagios/Centreon sous le nom « centreon-server ».

Nous allons maintenant configurer brièvement les services comme snmp par exemple.

Pour configurer snmp, éditer le fichier snmpd.conf :
vim /etc/snmp/snmpd.conf

Pour les versions 1 & 2 de SNMP :

Localisez la ligne :

com2sec paranoid default public

Commentez la ligne avec #’puis décommentez la ligne au dessous et éventuellement éditer la communauté :

#com2sec paranoid default public
com2sec readonly  default /*Nom de la communauté*/
#com2sec readwrite default private

 Pour la version 3 de SNMP :

Localisez la ligne :

rocommunity public default -V systemonly

Commentez la et ajoutez en dessous une ligne sous ce format là :

rocummunity /*Nom de la communauté*/ default

Et commentez également la ligne :

agentaddress udp:127.0.0.1:161

Sinon, le serveur n’écoutera les rêquetes SNMP qu’en local (127.0.0.1)

 Ensuite éditez le fichier snmpd

sudo vim /etc/init.d/snmpd

Trouvez la ligne :

TRAPDRUN=no

et la ligne :

TRAPDOPTS=’-Lsd -p /var/run/snmptrapd.pid’ 

Puis modifiez comme suis :
TRAPDRUN=yes
TRAPDOPTS=’-On -LF d /usr/local/nagios/var/snmptrap.log -c /etc/snmp/snmptrapd.conf -p /var/run/snmpdtrapd.pid’

 Editez ensuite le fichier /etc/default/snmpd

sudo vim /etc/default/snmpd

Configurez :

TRAPDRUN=yes
TRAPDOPTS=’-On -LF d /usr/local/nagios/var/snmptrap.log -c /etc/snmp/snmptrapd.conf -p /var/run/snmpdtrapd.pid’

Enfin redémarrez le service snmpd:

sudo service snmpd restart

Vérifiez la présence des 2 processus snmp :

ps -aux | grep snmp

snmp 11540 0.1 0.4 9540 4160 ? S 03:21 0:00 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1
root 11543 0.0 0.1 8796 1652 ? Ss 03:21 0:00 /usr/sbin/snmptrapd -On -LF d /usr/local/nagios/var/snmptrap.log -c /etc/snmp/snmptrapd.conf -p /var/run/snmpdtrapd.pid
nagios 11576 0.0 0.0 3052 812 pts/0 S+ 03:22 0:00 grep –color=auto snmp

Test manuel d’un plugin pour vérifier les droits:

Allez dans /usr/local/nagios/libexec puis tapez :
./check_centreon_snmp_memory -H 127.0.0.1 -C /*nom de la communauté*/ -v 1 -w 80 -c 90

Et vous devriez avoir un retour du genre :

total memory used : 11% ram used : 37%, swap used 0% | used=189804544o size=1643266048o

Si c’est le cas, les droits pour l’exécution des plugins avec le compte nagios sont ok

Ajoutez un hôte sous centreon :

Aller sous

Configuration -> Hôtes

Vous retrouverez ici le serveur local (Centreon-server ajouté lors de l’install)
Nous allons faire le test pour le même serveur.
Complétez les champs :
Nom de l’hôte, alias, Adresse IP, nom de communauté SNMP et version.

Ensuite ajouter un modèle :
Cliquer sur le
+ devant ‘Ajouter un modèle’ et choisissez ‘generic-host‘ puis cocher ‘créer aussi les services lié‘.

 Dans ‘notification’ ajouter les utilisateurs qui doivent recevoir les alertes et les heures où le service doit être vérifié (workour, 24/24, etc…)

 Cliquez ensuite sur ‘Relations’ puis ajoutez l’hôte à un groupe d’hôtes (exemple : Linux-Servers)

Sauvegardez puis allers sous :

Configuration -> Nagios et cochez toutes les cases, puis exporter.

Vérifiez qu’il n’y a pas d’erreur à l’export, puis vérifiez sur Nagios et Centreon que le nouvel hôte est bien la : 

                      

Il est possible que vous ayez un bug d’affichage des hôtes sous Centreon visiblement lié à la version de NDO.

Le problème est que les hôtes apparaissent correctement dans Nagios mais aucun n’apparait dans Centreon.

Voici comment fixer le problème :


cd /home/nagios/download/
sudo apt-get install subversion
svn co
http://svn.centreon.com/trunk/Patch-NDOutils/
cd Patch-NDOutils/
./configure –prefix=/usr/local/nagios/ –enable-mysql –disable-pgsql –with-mysql-lib=/usr/lib/mysql

(vous pouvez avoir un problème de permissions non accordée pour le ./configure, si c’est le cas pas de souci un petit :sudo chmod 775 configure règlera votre problème)

make
sudo service nagios stop
sudo cp /home/nagios/download/Patch-NDOutils/src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
sudo cp /home/nagios/download/Patch-NDOutils/src/ndo2db* /usr/local/nagios/bin/
sudo service nagios start
sudo service ndo2db restart

Puis vérifié que vous avez bien quelque chose du genre :

tail -f /usr/local/nagios/var/nagios.log

[1261447270] ndomod: Successfully connected to data sink. 122 items lost, 5000 queued items to flush.
[1261447277] ndomod: Successfully flushed 5000 queued items to data sink.

Vous pouvez maintenant commencer la configuration de vos hôtes et de vos plugins sérieusement.

[EDIT]
Après avoir appliqué le patch NDO, il est possible que la configuration du socket est changé en TCP.

Vérifiez sous :

Configuration -> Centreon -> ndo2db.cfg -> Principal

Dans les champs doit apparaître :
Type de socket :

Unix
Nom de la socket :

/usr/local/nagios/var/ndo.sock

Et dans :

 Configuration -> Centreon -> ndomod.cfg -> Central-mod

Les champs:
Type d’interface :

unixsocket


status détaillé :

/usr/local/nagios/var/ndo.sock

Si ce n’est pas le cas, remplacez les éléments par ces champs.

Ensuite redémarrez les services centcore et centstorage

sudo service centcore restart
sudo service centstorage restart


Puis sous centreon, retournez dans :

Configuration -> Nagios

Cochez toutes les cases, méthode redémarrerpuis cliquer sur exporter.

Notez bien que cette tâche doit être effectué après chaque manipulation sur centreon (ajout d’hôtes, modification d’un service, …)

Néanmoins, si les informations ne remontent toujours pas sur Centreon, c’est très probable que le problème vient de NDO. Pour résoudre le problème, faites :

sudo rm /usr/local/nagios/var/ndo.sock

sudo service ndo2db restart

5 comments

  1. lopez - Répondre

    Merci pour ce tuto mais moi je rencontre un probleme apres avoir entré mon login et mot de passe sur centreon voila le message que j’obtiens:
    Fatal error: Call to undefined method DB_Error::numRows() in /usr/local/centreon/www/header.php on line 95

    a quoi cela est dû et que faire? Merci

    • Antoine B - Répondre

      A premiere vue je pense que c’est la connection à la base de donnée ou la création des tables qui dysfonctionnent

      Cordialement,
      AB

  2. pascal - Répondre

    Bonjour,

    Merci pour cette doc.
    Cependant, j’ai suivi pas à pas la procédure d’install et je rencontre un soucis lors de la phase de connexion à centreon via la page web à la fin du paramétrage de celui-ci. Pour info lors de la configuration je n’ai eu que des OK.
    L’erreur est la suivante:
    – je me connecte via le compte utilisateur qui a été défini lors du paramétrage
    – je tombe sur une page web avec l’erreur HTTP 500.

    Merci de votre aide.

  3. FERRIEZ - Répondre

    Un tuto d’une grand qualité, une toute petite erreur dans snmp V3 le rocommunity deviens rocummunity.

    Sinon franchement, apres deux jours intense de prise de tête, seul tuto qui expoitable. Chapeaux

Leave Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *