Accueil arrow Informatique arrow Linux arrow Installation de Centreon V2 sur Debian Etch
Installation de Centreon V2 sur Debian Etch
Écrit par majordom   
04-11-2008

Cet article fait parti du série d'article dont le but, à terme, est l'installation de la solution de supervision Centreon 2.0-RC7 sur un serveur Debian Etch. Le serveur est un serveur virtuel de type VMWare partitionné tel quel :

/

60 go

ext3

swap

1 go

swap

/boot

500 mo

ext2

/home

4 go

ext3

 Lors de cet article j'aborderai en détail l'installation de nagios V3, du plugin NDO de nagios, de centréon V2, de Nagvis et autres plugins. Je vous donnerai aussi les clefs pour bien débuter dans l'utilisation de Centréon.

 

Vous trouverez aussi des informations concernant l'installation des différentes applications derrière un proxy d'entreprise avec authentification.

 


 
   


1. Préparation de la machine.

Je suis parti depuis une base debian Etch avec ces dépôts :

 deb http://ftp.fr.debian.org/debian/ etch main non-free contrib
deb-src http://ftp.fr.debian.org/debian/ etch main non-free contrib

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

 Après un apt-get update && apt-dist upgrade puis un reboot sur le nouveau noyau nous pouvons commencer l'installation du système de base.

C'est à dire SSH pour l'administration distante et NTP pour avoir un serveur à l'heure.

# apt-get install ssh ntp

N'oubliez pas de mettre à jour le fichier/etc/ntp.conf avec votre serveur de temps


 

2. Installation de Nagios

En effet l'installation de Centréon requiert tout d'abord l'installation de Nagios. Nous allons utiliser la version 3 téléchargeable ici ainsi que les plugins de base associés.

Mais tout d'abord il faut installer un serveur web et les librairies de bases nécessaires pour la compilation de Nagios.

 

# apt-get install apache2 build-essential

 Si vous voulez les 'satus map', il faut également installer ces librairies :

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

 

Il faut maintenant créer un utilisateur et un groupe dédié au processus Nagios (sécurité, sécurité...)

# useradd nagios

# passwd nagios

-> rentrez le mot de passe pour l'utilisateur 'nagios'

# groupadd nagios

# usermod -G nagios nagios

# groupadd nagcmd

# usermod -G nagcmd nagios

# usermod -G nagcmd www-data

 

 Ensuite on peut lancer la compilation à partir des sources de nagios

# tar -xzvf nagios-3.0.5.tar.gz

# cd nagios-3.0.5

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

# make all

# make install

# make install-init

# make install-config

# make install-commandmode

# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

on installe l'interface web maintenant :

# make install-webconf

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

-> rentrez le mot de passe

# /etc/init.d/apache2 reload

Surtout ne pas oublier d'installer les plugins de base.

# tar -xzvf nagios-plugins-1.4.13.tar.gz

# cd  nagios-plugins-1.4.13

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

# make

# make install

 

Il ne reste plus qu'à tester si nagios se lance bien correctement sans erreurs. Pour l'instant je ne configure rien, je le ferai grâce à Centreon.

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

 si le message se termine par :

Total Warnings: 0
Total Errors:   0

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

alors tout va bien et nous pouvons alors lancer le serveur nagios avec ses scripts démarrage automatique :

# /etc/init.d/nagios start

Et à chaque fois que l'on modifie les fichiers de configurations on doit faire un

# /etc/init.d/nagios restart

mais heureusement cette commande est inclue dans l'interface web de Centreon.

L'accès de nagios se fait par l'URL suivante http://adresse_ip_du_serveur_Nagios/nagios/

 

3. Installation du plugin NDO et de Centreon

NDO permet l'écriture des informations contenues dans les fichiers textes dans une base de données. Cette base de données sera ensuite utilisée par Centreon pour acceder de manière optimisée aux information provenant de Nagios.

Installation et paramétrage de la base de données

Nagios (via le plugin NDO) et Centreon utilisent une base de donnée de type MySQL.

# apt-get install mysql-server php5-mysql libmysqlclient15-dev

 Je lance le script mysql_secure_installation pour sécuriser mon serveurMySQL puis je passe à la création de la base de données pour NDO. Je l'appelerai 'nagios'

 

# mysqladmin -u root -p create nagios

# mysql -u root -p mysql

mysql> GRANT ALL ON nagios.* TO ndouser@localhost IDENTIFIED BY 'ndopassword';

mysql> FLUSH PRIVILEGES;

mysql> exit

 

Installation du plugin NDO de Nagios

Comme pour Nagios on installe le tout à la main.

# tar -xzvf ndoutils-1.4b7.tar.gz

# cd ndoutils-1.4b7

# ./configure --with-mysql-lib=/usr/lib/mysql

# make

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

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

# cp config/ndomod.cfg /usr/local/nagios/etc/

Maintenant il faut éditer le fichier /usr/local/nagios/etc/nagios.cfg pour ajouter une ligne (en gras) :


...

# EVENT BROKER MODULE(S)
# This directive is used to specify an event broker module that should
# by loaded by Nagios at startup.  Use multiple directives if you want
# to load more than one module.  Arguments that should be passed to
# the module at startup are seperated from the module path by a space.
#
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#
# Do NOT overwrite modules while they are being used by Nagios or Nagios
# will crash in a fiery display of SEGFAULT glory.  This is a bug/limitation
# either in dlopen(), the kernel, and/or the filesystem.  And maybe Nagios...
#
# The correct/safe way of updating a module is by using one of these methods:
#    1. Shutdown Nagios, replace the module file, restart Nagios
#    2. Delete the original module file, move the new module file into place, restart Nagios
#
# Example:
#
#   broker_module=<modulepath>

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

#broker_module=/somewhere/module1.o

 ...

 et on continue :

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

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

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

 

On charge la base de données : 

# cd  db

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

voici le résultat de la commande :

DBD::mysql::db do failed: Table 'nagios.nagios_dbversion' doesn't exist at ./installdb line 51.
** Creating tables for version 1.4b7
     Using mysql.sql for installation...
** Updating table nagios_dbversion
Done!

Tout le monde a la même erreur... qui n'affecte pas le bon fonctionnement de Nagios !

 

ATTENTION pour que la fonctionnalité ACL fonctionne, il faut bien penser à executer un bout de script sql pour créer la table centreon_acl dans la base de données Nagios

Pour plus de facilité, je copie colle le script ci-joint dans phpmyadmin

 

CREATE TABLE `centreon_acl` (
  `id` int(11) NOT NULL auto_increment,
  `host_name` varchar(60) default NULL,
  `service_description` varchar(128) default NULL,
  `group_id` int(11) default NULL,
  PRIMARY KEY  (`id`),
  KEY `host_name` (`host_name`,`service_description`,`group_id`),
  KEY `host_name_2` (`host_name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;

Il ne reste plus qu'à lancer NDO et à relancer Nagios :

 

#  /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg

# /etc/init.d/nagios restart

Pour plus d'automatisation, il faut rajouter 2 lignes (en gras) dans le fichier /etc/init.d/nagios

 ...

start)
                echo -n "Starting nagios:"
                $NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
                if [ $? -eq 0 ]; then
                        su - $NagiosUser -c "/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg"
                        su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"
                        rm -f $NagiosCommandFile
                        touch $NagiosRunFile
                        chown $NagiosUser:$NagiosGroup $NagiosRunFile
                        $NagiosBin -d $NagiosCfgFile
                        if [ -d $NagiosLockDir ]; then touch $NagiosLockDir/$NagiosLockFile; fi
                        echo " done."
                        exit 0
                else
                        echo "CONFIG ERROR!  Start aborted.  Check your Nagios configuration."
                        exit 1
                fi
                ;;

        stop)
                echo -n "Stopping nagios: "

                pid_nagios
                killproc_nagios nagios
                su - $NagiosUser -c "skill ndo2db-3x"

...

 

4. Installation de Centreon

Première des choses : installer tous les pré-requis suivant :

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

# /etc/init.d/apache2 restart

 

Configuration de Pear - Optionnel

Mon environnement de production fait que je suis derrière un proxy d'entreprise avec authentification. A cause de cela je suis obligé de mettre à jour et d'installer mes modules pear à part, et non directement dans l'installation de Centreon.

# pear config-set http_proxy http://utilisateur:motdepasse@proxy:port

# pear upgrade DB

#  pear install DB_DataObject

#  pear install DB_DataObject_FormBuilder-1.0.0RC7

#  pear install MDB2

# pear install HTML_QuickForm_advmultiselect

# pear install HTML_Table

# pear install Auth_SASL

# pear install HTTP

# pear install Image_GraphViz

# pear install Net_SMTP

# pear install Net_Traceroute-0.21.1

# pear install Net_Ping

# pear install Validate-0.8.1

# pear install XML_RPC

# pear install SOAP-0.12.0

# pear install Log

 

 Maintenant on peut reprendre notre installation de Centreon proprement dite.

# tar -xzvf centreon-2.0-RC5.tar.gz

# cd centreon-2.0-RC5

#  ./install.sh -i

 ça y'est, l'installation est lancée. Dans le tableau suivant vous aurez un aperçu de mes réponses données au script dans le fichier téléchargeable ici

 

Après la fin de l'installation, il ne reste plus qu'à se connecter sur http://adresse_ip_du_serveur/centreon

 

Iil faut bien vérifier qu'il y a des 'OK' partout et faire suivant jusqu'à devoir rentrer les informations de base de données.

 

 reste à mettre les infos d'admin et c'est fini

Pour le premier lancement à l'interface on a un méchant message en rouge : 

" Connection Error to NDO DataBase !  " En fait il faut paramétrer correctement le lien entre Centreon et NDO

 

Il faut donc aller dans :  Configuration  Centreon  ndo2db.cfg et ouvrir Principal

et mettre /usr/local/nagios/var/ndo.sock dans le champ "Socket Name"  ainsi que sélectionner "unix" dans le champ "Socket Type"

Se déplacer maintenant dans l'onglet et remplir comme ci-dessous :

 le mot de passe ndouser est ndopassword (rappelez-vous quand on a créé la base de données)

 

Ensuite aller dans :  Configuration  Centreon  ndomod.cfg et ouvrir Central-mod

et sélectionner unixsocket dans le champ "Interface Type"

et écrire /usr/local/nagios/var/ndo.sock dans le champ "Output"

 

Enfin la dernière étape esr d'exporter la configuration de Centreon vers Nagios :  Configuration  Nagios

 

 

 

5. Configuration de Postfix pour l'envoi de mail par Centreon

 

Dans mon entreprise nous possèdons un serveur Exchange pour gérer l'envoi des mail. Je vais donc installer Postfix et me servir du serveur exchange comme relais.

# apt-get install postfix

Je choisis  "pas de configuration"

 

La configuration est inscrite dans le fichier /etc/postfix/main.cf

Voici le fichier

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = Nom du serveur0
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = Nom du Serveur0, localhost.localdomain, localhost
relayhost = adresse.ip.du.serveur.exchange.qui.sert.de.relaisr
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = all
 

 

Pour tester le bon fonctionnement :

# mail Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir -s test

essai

.

Cc:

#

 Vous remplacez Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir par votre adresse mail et vous devriez recevoir un mail dans la minute qui suit.

 

6. Installation et configuration de NagVis

 

 tout d'abord il faut installer graphviz :

# apt-get install graphviz

 

ensuite on décompresse nagvis :

# tar -xzvf nagvis 1.4.5.tar.gz 

 on transforme le fichier install.sh en fichier executable

# chmod +x install.sh

 Et pour finir, il suffit de l'exécuter et de répondre aux questions pour installer Nagvis.

 j'ai répondu Y à la question Do you want to use backend ndo2db? (n): y

 

Pour connecter nagvis à la base de données nagiosil faut modifier le fichier /nagvis/etc/nagvis.ini.php

 

(backend_ndomy_1)

; type of backend - MUST be set
;backendtype="ndomy"
; hostname for NDO-db
;dbhost="localhost"
; portname for NDO-db
;dbport=3306
; database name for NDO-db
;dbname="nagios"
; username for NDO-db
dbuser="ndouser"
; password for NDO-db
dbpass="ndopassword"
; prefix for tables in NDO-db
;dbprefix="nagios_"
; instance name for tables in NDO-db
dbinstancename="Central"
; maximum delay of the NDO Database in seconds
;maxtimewithoutupdate=180
; path to the cgi-bin of this backend
;htmlcgi="/nagios/cgi-bin"

 

 Et voilà vous avez un beau serveur de supervision. A vous de le faire vivre...

Dernière mise à jour : ( 12-01-2010 )
 
< Précédent   Suivant >