|
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 CentreonNDO 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 NagiosComme 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 CentreonPremiè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 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... |