Overblog Suivre ce blog
Editer la page Administration Créer mon blog
/ / /
Source : http://blog.nicolargo.com/2009/01/le-serveur-de-supervision-libre-part-1.html

 Installation du système d’exploitation GNU/Linux



Les caractéristiques de ce serveur seront les suivantes:

    * Système d’exploitation: GNU/Linux Ubuntu Server Edition 8.10
    * Nagios 3.2.0
    * Centreon 2.0
    * Cacti 0.8.7b


Intro


Si on ne souhaite pas faire l'isntallation, on peut utiliser : la distribution FAN (Fully Automated Nagios), comportant  Linux avec les outils Nagios,  Centreon… déjà préinstallés.

Installation du système d’exploitation GNU/Linux


On par sur un distribe Ubuntu Server.  La doc sera faite avec la version 9.10, mais on peut aussi ce placer dans un philosophie LTS avec la 8.04

On choisis une installation standard (pas d'interface graphique)

Installation de pré-requis système


On commence par mettre à jour le système:

    # sudo apt-get update

    # sudo apt-get upgrade

On va avoir besoin de compiler des sources de logiciels, il faut donc dans un premier temps installer le package “build-essential” qui comporte les librairies de développement de bases:

    # sudo apt-get install build-essential

Nagios, Centreon et Cacti utilise une interface Web pour interagir avec les utilisateurs. Il faut donc installer un serveur Web sur notre serveur de supervision. On ne va pas être très original… On va utiliser Apache 2.

    # sudo apt-get install apache2 wget

Certaine librairie sont également nécessaires au bon fonctionnement de Nagios et de ces plugins :

    # sudo apt-get install bind9-host dnsutils libbind9-0 libdns22 libisc11 libisccc0 libisccfg1 liblwres9 libradius1 qstat radiusclient1 snmp snmpd

puis de Centreon:

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

Pour tester votre serveur Web, il faut commencer par le lancer…

    # sudo apache2ctl start

Puis on teste en ligne de commande:

    # wget http://<adresseIPserveur>/

    –2009-01-15 17:36:17– http://<adresseIPserveur>/

    Resolving al-serv8… 127.0.1.1

    Connecting to al-serv8|127.0.1.1|:80… connected.

    HTTP request sent, awaiting response… 200 OK

    Length: 45

    Saving to: `index.html’

    100%[========================================================================>] 45 –.-K/s in 0s

    2009-01-15 17:36:17 (7,98 MB/s) – `index.html’ saved [45/45]

On installe les librairies qui serviront à Nagios pour afficher de beau diagrammes réseau:

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

Centreon utilise une base de donnée MySQL, il faut donc installer MySQL server sur notre serveur:

    # sudo apt-get install mysql-server

    # sudo apt-get install php5-mysql

    # sudo apt-get install libmysqlclient15-dev

Pour des raisons de sécurité, le processus Nagios ne sera pas lancé en root. Nous allons donc créer un utilisateur système nagios et un groupe nagiosgrp. (ce dernier comprendra les utilisateurs nagios et www-data).

    # 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

Installation de Nagios

La version embarqué dans les sources (au 2009-12-07) étant en retard, on va en compiler une

#> aptitude show nagios3
Paquet : nagios3
État: non installé
Version : 3.0.6-5ubuntu3
Priorité : optionnel
Section : net
Responsable : Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
Taille décompressée : 4 674k
Dépend: libc6 (>= 2.8), libgd2-noxpm (>= 2.0.36~rc1~dfsg) | libgd2-xpm (>=
         2.0.36~rc1~dfsg), libjpeg62, libperl5.10 (>= 5.10.0), libpng12-0 (>=
         1.2.13-4), zlib1g (>= 1:1.1.4), nagios3-common (= 3.0.6-5ubuntu3), perl
Suggère: nagios-nrpe-plugin
Description : A host/service/network monitoring and management system
 Nagios is a monitoring and management system for hosts, services and networks.

Il faut dans un premier temps se rendre à la page officielle des téléchargements, puis noter les derniers numéro de version de Nagios et des plugins Nagios (respectivement 3.2.0 et 1.4.13)

# 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

 

Decompression des sources

# tar xzf nagios-3.2.0.tar.gz

# cd nagios-3.2.0

Compilation

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

General Options:

————————-

Nagios executable: nagios

Nagios user/group: nagios,nagios

Command user/group: nagios,nagiosgrp

Embedded Perl: no

Event Broker: yes

Install ${prefix}: /usr/local/nagios

Lock file: ${prefix}/var/nagios.lock

Check result directory: ${prefix}/var/spool/checkresults

Init directory: /etc/init.d

Apache conf.d directory: /etc/apache2/conf.d

Mail program: /bin/mail

Host OS: linux-gnu

# make all

REMARQUE: Il risque d’y avoir des alertes (”warning”), ce n’est pas grave, par contre, il ne faut par d’erreurs… (”error”).

# make install

# make install-config

# make install-commandmode

 

Script de demarrage

On installe ensuite le script de démarrage (pour que Nagios se lance automatiquement avec notre serveur de supervision):


    # make install-init

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


l’interface Web


    # make install-webconf

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

    REMARQUE: Il faut saisir le mot de passe pour le compte nagiosadmin de l’interface Web

    # /etc/init.d/apache2 reload

 

Compilation des plugins Nagios


De base, Nagios est livré sans aucun plugin. Il faut donc installer les plugins standards permettant de surveiller son réseau.

    # sudo apt-get install fping libnet-snmp-perl libldap-dev libmysqlclient-dev libgnutls-dev libradiusclient-ng-dev

    # cd /usr/src

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

    # cd nagios-plugins-1.4.13

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

    # make

    # make install


Premier test de Nagios


Nagios est distribué avec une configuration initiale opérationnelle (elle permet notamment de surveiller… son serveur de supervision ;) .

Nous allons donc tester les fichiers de configuration grâce à la commande suivante:

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

Si tout ce passe bien vous devriez avoir le message suivant qui s”affiche:

    Total Warnings: 0

    Total Errors: 0

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

Enfin on lance le serveur Nagios:

    # /etc/init.d/nagios start

Si le message suivant s’affiche, ce n’est pas important…

    Starting nagios:No directory, logging in with HOME=/

Il ne reste plus qu’à lancer un navigateur Web sur un PC de votre réseau et à saisir l’URL suivante:

    http://<adresseIPserveur>/nagios/

    REMARQUE: ne pas oublier le / à la fin…

Après une bannière d’authentification (login: nagiosadmin/ password: <votremotdepasse>), vous devriez voir s’afficher

En cliquant sur le lien “Hostgroup Overview”, vous devriez voir la supervision de votre serveur:

Nagios-1.jpg

Puis le détail des services supervisés en cliquant sur “localhost”:

 

Installation de Centreon

Attention : Centreon va générer des fichiers de configuration de Nagios à sa manière. Vous allez donc perdre tout le contrôle sur ces fichiers… Bref si vous êtes un administrateur système soigneux, qui prend soit de commenter/archiver voir gérer en configuration ce type de fichiers

Installation de la base de donnée NDO

Afin de communiquer entre eux, Nagios et Centreon utilise une base de donnée commune (NDO). Nous allons commencer par créer cette base de donnée sur notre serveur MySQL (installé dans la première partie de cette série de billets).

    # 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

Installation du plugin NDO pour Nagios 3

De base, Nagios n’écrit pas les informations sur sa configuration dans la base de donnée NDO. Pour cela, il faut installer un plugin: NDOUtils. Ce dernier est composé de deux briques: NDOMOD et NDO2DB. Le premier va prendre les événements à partir du daemon Nagios et les envoyer via une socket (TCP ou UNIX) vers le second qui va les convertir dans un format compatible avec la base de donnée choisie (MySQL ou PgSQL).

NDOUtils.pdf (page 9 de 15).jpg

Pour que le système fonctionne, il faut donc que NDOMOD soit chargé par Nagios au démmarrage et que le daemon NDO2DB soit lancé en tache de fond. Nous allons voir ça dans ce paragraphe, mais commençons par installer les NDOUtils.

Le plugin étant en développement (version 1.4b7 au moment de l’écriture de ce billet), il faut faire l’installation à la main…



    # sudo -s

    # cd /usr/src

    # wget http://dfn.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz

    # tar zxvf ndoutils-1.4b7.tar.gz

    # cd ndoutils-1.4b7

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

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

    event_broker_options=-1

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

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

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

    instance_name=Central

    output_type=unixsocket

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

    tcp_port=5668

    output_buffer_items=5000

    buffer_file=/usr/local/nagios/var/ndomod.tmp

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

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

    ndo2db_user=nagios

    ndo2db_group=nagiosgrp

    socket_type=unix

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

    tcp_port=5668

    db_servertype=mysql

    db_host=localhost

    db_name=ndo

    db_port=3306

    db_prefix=nagios_

    db_user=ndouser

    db_pass=ndopassword

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

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

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

 

Attention, si vous faite un copier/coller pour ajouter les lignes de configuration dans le nagios.cfg, il faut faire attention à la ligne:

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

qui est sur une seule ligne et pas en deux lignes…

Puis on initialise la base de données MySQL:

 

    # cd db

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

    … Table ‘nagios.nagis_dbversion’ doesn’t exist at ./installdb line 51…

 

PS: dans mon cas j’ai rencontré une erreur lors de l’installation de la base de donnée (./installdb) mais sans conséquence sur le bon fonctionnement du système.

Pour automatiser le lancement de NDO au démarrage du serveur, il faut ajouter le script suivant dans le fichier /etc/init.d/ndo2db). Il faut le rendre exécutable:

 

    # sudo chown root:root /etc/init.d/ndo2db

    # sudo chmod 755 /etc/init.d/ndo2db

 

On automatise le lancement du processus ndo2db au démarrage du serveur:

    # sudo update-rc.d ndo2db defaults

On lance ensuite NDO:

    # /etc/init.d/ndo2db start

Il ne reste plus qu’a lancer relancer Nagios:

 

    # /etc/init.d/nagios restart

    Running configuration check…done.

    Stopping nagios: No directory, logging in with HOME=/

    done.

    Starting nagios:No directory, logging in with HOME=/

    No directory, logging in with HOME=/

    done.

 

Installation de Centreon

Passons maintenant aux choses sérieuses avec l’installation de Centreon version 2.0 sur notre serveur de supervision.

Nous allons commencer par récupérer la dernière version de Centreon sur le site officiel. Pensez à remplacer le lien de téléchargement de Centreon (http://download.centreon.com/index.php?id=100) ainsi que la version (centreon-2.0 au moment de la rédaction de ce billet) par la dernière version disponible.

# sudo -s

# cd /usr/src

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

# tar zxvf centreon-2.0.tar.gz

# cd centreon-2.0

Il faut ensuite lancer l’assistant d’installation et répondre aux questions en suivant l’exemple suivant (j’ai juste copié les lignes ou il faut une intervention de votre part.):

# ./install.sh -i

Do you accept GPL license ?

[y/n], default to [n]:

> y

Do you want to install : Centreon Web Front

[y/n], default to [n]:

> y

Do you want to install : Centreon Nagios Plugins

[y/n], default to [n]:

> y

Do you want to install : Centreon Snmp Traps process

[y/n], default to [n]:

> y

Do you want me to create this directory ? [/usr/local/centreon]

[y/n], default to [n]:> y

Path /usr/local/centreon OK

Do you want me to create this directory ? [/usr/local/centreon/log]

[y/n], default to [n]:> y

Do you want me to create this directory ? [/etc/centreon]

[y/n], default to [n]:> y

/usr/local/nagios/bin/nagios OK

Where is your NDO ndomod binary ?

default to [/usr/sbin/ndomod.o]> /usr/local/nagios/bin/ndomod.o

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

Do you want me to configure your sudo ? (WARNING)

[y/n], default to [n]:> y

Configuring Sudo OK

Do you want to add Centreon Apache sub configuration file ?

[y/n], default to [n]:> y

Create ‘/etc/apache2/conf.d/centreon.conf’ OK

Configuring Apache OK

Do you want to reload your Apache ?

[y/n], default to [n]:> y

Reloading Apache service OK

Do you want me to create this directory ? [/var/run/centreon]

[y/n], default to [n]:> y

Path /var/run/centreon OK

Do you want me to create this directory ? [/var/lib/centreon]

[y/n], default to [n]:> y

Path /var/lib/centreon OK

Do you want me to install CentStorage init script ?

[y/n], default to [n]:> y

CentStorage init script installed OK

Do you want me to install CentStorage run level ?

[y/n], default to [n]:> y

Do you want me to install CentCore init script ?

[y/n], default to [n]:> y

CentCore init script installed OK

Do you want me to install CentCore run level ?

[y/n], default to [n]:> y

Do you want me to create this directory ? [/var/lib/centreon/centplugins]

[y/n], default to [n]:> y

Path /var/lib/centreon/centplugins OK

Un dernière étape (merci à WAtt pour l’information), consiste à modifier la base de donnée NDO pour qu’elle fonctionne de manière optimisée avec Centreon:

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

On peut maintenant ce rendre à l’URL suivante pour finaliser l’installation par l’interface Web:

http://<adresseIPserveur>/centreon/

REMARQUE: ne pas oublier le / à la fin…

Puis suivre les étapes suivantes:

Centreon Setup Wizard-1.jpg
Centreon Setup Wizard-2.jpg
Centreon Setup Wizard-3.jpg
Centreon Setup Wizard-4.jpg
Centreon Setup Wizard-5.jpg
Centreon Setup Wizard-6.jpg
Centreon Setup Wizard-7.jpg
Centreon Setup Wizard-8.jpg
Centreon Setup Wizard-9.jpg
Centreon Setup Wizard-10.jpg
Centreon Setup Wizard-11.jpg
Centreon Setup Wizard-12.jpg

L’installation est maintenant terminée. Vous devriez être redirigé vers la page de connexion de Centreon (http://<adresseIPserveur>/centreon/).

Centreon - IT & Network Monitoring.jpg

Le message d’erreur suivant devrait apparaître: “Connection Error to NDO DataBase !

C’est normal, il faut maintenant configurer Centreon pour qu’il puisse se connecter avec la base de données NDO.

Pour cela, il faut aller dans le menu Configuration/Centreon, puis cliquer sur le lien ndo2db.cfg dans le menu de gauche et cliquer sur le lien Principal.

Centreon - IT & Network Monitoring-1.jpg

Saisir la configuration suivante dans l’onglet General (Socket type: Unix et fichier socket /usr/local/nagios/var/ndo.sock):

  • Socket type: unux
  • Socket name: /usr/local/nagios/var/ndo.sock

Centreon - IT & Network Monitoring-11.jpg

Modifier le login/password pour l’accès à la base de donnée NDO (ndouser/ndopassword):

Centreon - IT & Network Monitoring-3.jpg

il faut ensuite aller dans le menu Configuration/Centreon, puis cliquer sur le lien ndomod.cfg dans le menu de gauche et cliquer sur le lien Principal.

Centreon - IT & Network Monitoring-12.jpg
Saisir la configuration suivante:
  • Socket type: unixsocket
  • Output: /usr/local/nagios/var/ndo.sock
  • Buffer File: /usr/local/nagios/var/ndomod.tmp
Centreon - IT & Network Monitoring-15.jpg
En revenant à la page principale, le message d’erreur a dû disparaître:
Centreon - IT & Network Monitoring-4.jpg

En allant dans le menu Monitoring / Hosts Groups Summary vous devriez trouvez la supervision de votre serveur Nagios (défini par défaut lors de l’installation de Nagios):

Centreon - IT & Network Monitoring-5.jpg

Ainsi que les 8 services définis:

Centreon - IT & Network Monitoring-6.jpg

 

Exportation d’une configuration Centreon vers Nagios

La première chose à faire est de vérifier que les droits du répertoire /usr/local/nagios/etc (et de tout ce qui a dessous) sont compatible avec un écriture qui va être faite par Centreon (donc avec l’utilisateur www-data):

# chmod -R 774 /usr/local/nagios/etc

Nagios reste le coeur de notre système de supervision. Ainsi quand un host/service est créé dans l’interface de Centreon (menu configuration / Hosts / Add), il faut ensuite exporter cette nouvelle configuration pour qu’elle soit prise en compte par Nagios et donc affiché dans l’interface de supervision de Centreon.

Il faut pour cela se rendre dans le menu Configuration / Nagios et saisir le formulaire suivant:

Centreon - IT & Network Monitoring-9.jpg

Le résultat de la commande doit être le suivant:

Centreon - IT & Network Monitoring-10.jpg

Cette action est a répéter a chaque fois que vous souhaitez ajouter une configuration depuis Centreon vers Nagios.

Après quelques minutes, les informations sur l’état de vos machines/services devraient remonter dans Centreon à travers le module NDO. Pour vérifier que tout ce passe bien à ce niveau, il faut se rendre dans le menu Monitoring / Event logs et vérifier qu’il n’y a pas d’erreur au niveau ndomod:

 

Centreon - IT & Network Monitoring-14.jpg

Importation d’une configuration Nagios vers Centreon

Si vous avez déjà une configuration existantes avec des hosts, services, groupes ou autres défini dans votre serveur Nagios, il faut passer par une phase d’importation avant de les voir apparaître dans Centreon. En effet, si vous utilisez Nagios depuis un moment, il peut être utile d’importer la configuration existante dans Centreon. Pour cela il faut suivre une procédure simple mais assez longue. Pour ne pas faire de copier/coller du Wiki de Centreon, reportez vous à cette page pour consulter cette procédure.

 

Installation Cacti

Installation de Cacti

La dernière version de Cacti (0.8.7b) est disponible dans les repos apt d’Unbuntu, donc pas la peine de s’embêter pour l’installation (choisir Apache2 comme serveur Web utilisé puis laissé l’installer créer la base de donnée pour vous):

# sudo apt-get install cacti-cactid

Les paramètres de la base de donnée dédiée à Cacti sont stockés dans le fichier /etc/cacti/debian.php.

$database_username=’cacti’;

$database_password=’monmotdepasse’;

$basepath=”;

$database_default=’cacti’;

$database_hostname=”;

$database_port=”;

$dbtype=’mysql’;

Il faut ensuite se rendre sur l’interface Web:

http://<adresseIPserveur>/cacti/

REMARQUE: ne pas oublier le / à la fin…

Puis suivre les étapes suivantes:

cacti.jpg

cacti-1.jpg

cacti.png.jpg

Une bannière d’authentification devrait apparaître. Le login/password par défaut est admin/admin.

Login to Cacti.jpg

Vous voilà sur l’interface d’administration de cacti.

Cacti.png

Il faut maintenant configurer le logiciel pour savoir comment le polling va être fait (quand et comment cacti va chercher les informations pour faire ses graphes). On va dans le menu Configuration Setting/Poller puis on sélectionne Spine comme type de polling:

Cacti-3.jpg

Et voilà, au bout de 15 minutes, vous devriez voir les premiers courbes dans l’onglet Graphs. Je vous laisse lire le manuel pour entrer de nouveaux graphes dans votre configuration.

Intégration de cacti dans Nagios

Le but est d’ajouter automatiquement un lien vers Cacti depuis l’interface Web de Nagios. Il suffit donc juste de cliquer sur un bouton (image-13.jpg ) pour être redirigé automatiquement vers la page correspondante au host en question dans Cacti.

Nous allons pour cela utiliser un scipt PHP nommé CactiPlug (téléchargeable ici).

catiplug-logo.png

Installation de cactiPlug.php

L’installation donnée ci-dessous a été validé avec Nagios 3.06 et Cacti 0.8.7b.

Il faut suivre les étapes suivantes:

   # tar zxvf cactiplug-0.2.tgz

   # mv cactiplug /usr/local/nagios/share

   # chown -R nagios:nagios /usr/local/nagios/share/cactiplug

Ensuite il faut configurer Nagios pour qu’il prenne en compte le plugin. Le plus simple est d’ajouter la ligne suivante dans le template generic_host du fichier template.cfg (voir ici vous êtes perdu dans les fichiers de conf de Nagios).

   define host{

   name generic-host

   notifications_enabled 1

   event_handler_enabled 1

   flap_detection_enabled 1

   failure_prediction_enabled 1

   process_perf_data 1

   retain_status_information 1

   retain_nonstatus_information 1

   notification_period 24×7

   register 0

   action_url /nagios/cactiplug/cactiplug.php?ip=$HOSTADDRESS

   }

Si vous utilisez Centreon, cette action peut être faite via le menu Configuration / Hosts / Host Extended infos:

  • Action URL: /nagios/cactiplug/cactiplug.php?ip=$HOSTADDRESS

Centreon - IT & Network Monitoring-16.jpg

 

Configuration du plugin

La dernière étape consiste à éditer le fichier /usr/local/nagios/share/cactiplug/cactiplug.php afin d’y saisir les informations relatives à votre base de données Cacti (host, nom de la base, login et password).

Ensuite, il ne reste plus qu’a relancer Nagios:

   # sudo /etc/init.d/nagios restart


Partager cette page

Repost 0
Published by