Table des matières

NAGIOS / CENTREON / NAGVIS

Ce tutoriel est validé sur Debian 5.

Architecture

Le schéma ci-dessous illustre l'architecture du serveur de surveillance sous Nagios / Centreon / Nagvis :

Installation de Nagios et Centreon

Installation de Nagios

Installer les paquetages pré-requis :

apt-get install gcc make php5 apache2 build-essential libgd2-xpm-dev

Télécharger la dernière version sur : http://www.nagios.org/download/core

Création des groupes et compte pour Nagios :

/usr/sbin/groupadd nagcmd
/usr/sbin/useradd -m -s /bin/bash nagios && passwd nagios
/usr/sbin/usermod -G nagios nagios
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd www-data

Extraire l'archive :

tar xzf nagios-3.2.3.tar.gz
cd nagios-3.2.3

Compiler et l'installer dans /usr/local/nagios :

./configure --prefix=/usr/local/nagios
make all
make install
make install-init
make install-config
make install-commandmode

Activer le démarrage automatique de Nagios :

update-rc.d nagios defaults

Installation des plugins Nagios

Télécharger la dernière version sur : http://www.nagios.org/download/plugins

Extraire l'achive :

tar xzf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15

Compiler et installer les plugins dans /usr/local/nagios :

./configure --prefix=/usr/local/nagios
make
make install

Installation des NDOutils

Installer les paquetages pré-requis :

apt-get install mysql-server mysql-client libmysql++-dev

Télécharger la dernière version sur : http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz

Extraire l'archive et se positionner dans le répertoire décompressé :

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

Lancer la compilation :

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

Copier les fichiers binaires et configuration manuellement :

cp ./src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
cp ./src/ndo2db-3x /usr/local/nagios/bin/ndo2db
chmod 774 /usr/local/nagios/bin/ndo*
chown nagios:nagios /usr/local/nagios/bin/ndo*

Copier le script d'initialisation et activer le lancement au démarrage du système :

cp daemon-init /etc/init.d/ndo2db
update-rc.d ndo2db defaults
chmod 755 /etc/init.d/ndo2db

La base et la configuration de NDO sera initialisé plus tard depuis l'interface de Centreon

Installer et configurer SNMP

Installer les paquetages suivants :

apt-get install snmp snmpd
apt-get install libnet-snmp-perl libsnmp-base libsnmp15

Editer le fichier /etc/snmp/snmpd.conf et définissez les communauté SNMP en filtrant l'accès qu'a certains réseaux :

com2sec readonly  default        public
com2sec readonly 192.168.1.0/24  mynetwork

Activer le lancement de snmptrapd au lancement de snmpd. Editant le fichier /etc/default/snmpd et modifier les lignes suivantes :

TRAPDRUN=yes
TRAPDOPTS='-On -Lf /var/log/net-snmpd.log -c /etc/snmp/snmptrapd.conf'

Redémarrer le service SNMP :

/etc/init.d/snmpd restart

Tester l'accès aux MIB d'un hôte distant :

snmpwalk -v 2c -c public 192.168.174.2

Installation de Centreon

Installer les paquetages pré-requis :

apt-get install sudo rrdtool libpng3 libgd2-xpm-dev

Installer les modules PHP pré-requis :

apt-get install php5 php5-mysql php-pear php5-snmp php5-gd

Installer les modules PERL pré-requis :

apt-get install libconfig-inifiles-perl libcrypt-des-perl libdigest-hmac-perl libdigest-sha1-perl libio-socket-inet6-perl libnet-snmp-perl librrds-perl librrdp-perl libgd-gd2-perl libsocket6-perl

Vous pouvez installer les modules PERL également de la manières suivante :

perl -MCPAN -e shell
cpan> install Config::IniFiles

Télécharger les dernière version sur : http://www.centreon.com/Centreon/download.html

Si vous souhaitez ne pas utiliser les chemins par défaut de Centreon modifier les variables du fichier ./centreon-2.1.9/varinstall/vars

Extraire l'achive et lancer l'installation :

tar xzf centreon-2.1.9.tar.gz
cd centreon-2.1.9
./install.sh -i

Il suffit de valider ou répondre aux questions. En voici pour exemple un extrait

Pour installer le package en Français de Centreon :

Télécharger le package sur : http://www.centreon.com/Centreon/language-packs.html

Extrait l'archive et se positionner dedans :

tar xzf centreon-2.1-fr_FR-1.2.tgz
cd centreon-2.1-fr_FR-1.2

Créer dynamiquement le répertoire de la langue du système et copier les fichiers de traduction :

mkdir -p /usr/local/centreon/www/locale/$(locale | grep LC_MESSAGES | cut -d \" -f 2)/LC_MESSAGES
cp LC_MESSAGES/messages.mo /usr/local/centreon/www/locale/$(locale | grep LC_MESSAGES | cut -d \" -f 2)/LC_MESSAGES/.

Configuration de Centreon et Nagios

Configuration générale

Rendez-vous sur l'interface Web de centreon pour finaliser la configuration : http://your-server/centreon/ :

  1. Cliquer Start
  2. Faire NEXT jusqu'à DataBase Configuration
  3. Indiquer le mot de passe root de MySQL et définissez le mot de passe des bases de contreon
  4. Faire NEXT jusqu'à User Interface Configuration
  5. Définissez le compte administrateur de Centreon
  6. Faire NEXT jusqu'à la fin

Maintenant que Centreon est installé et configuré nous allons configurer Nagios depuis l'interface de Centreon.

Dans Configuration → Nagios → Nagios.cfg → Nagios CFG1, modifier si besoin la valeur Commande de lancement du module avec :

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

Voir : http://fr.doc.centreon.com/Setup:ndoutils2

Dans Configuration → Nagios → Ressources, vérifier les variables $USER1$ et $USER2$

Une fois les éléments configurés, il faut les publier dans Nagios et redémarrer le service nagios.

Pour finir démarrer le service ndo2db :

/etc/init.d/ndo2db start

Redémarrer si besoin tout le système, histoire de vérifier que tout démarre bien.

Configuration des Commandes

Cette section permet de configurer les lignes de commandes utilisées par Nagios pour faire les vérifications et les notifications. Si les variables $USER1$ et $USER2$ sont mal définies dans l'onglet Nagios, ces commandes ne fonctionneront pas.

Pour modifier par exemple la commande check_centreon_snmp_cpu :

  1. Aller dans Configuration → Commandes → Contrôles
  2. Cliquer sur check_centreon_snmp_cpu
  3. Indiquer les valeurs et arguments (voir plus bas)
  4. Tester votre ligne de commande en appuyant sur le bouton bleu Tester la sonde

Les valeurs ci-dessous permettent de construire une ligne de commande pour Nagios :

Ligne de commande = $USER1$/check_centreon_snmp_cpu -H $HOSTADDRESS$ -v 1 -C $ARG1$ -c $ARG2$ -w $ARG3$
Exemple d'arguments = !$USER2$!80!90
$HOSTADDRESS$ = 192.168.174.2

Le résultat de la ligne de commande Nagios sera donc :

/usr/local/nagios-3.2.3/libexec/check_centreon_snmp_cpu -H 192.168.174.2 -v 1 -C 'public' -c '80' -w '90'

$ARG1$, $ARG2$… correspondent successivement aux valeurs séparées par un “!” dans Exemple d'arguments

Configuration des Utilisateurs

Cette section permet de configurer les opérateurs de supervision en précisant :

Configuration d'un Hôte et des services

C'est l'étape finale. On ajoute ici un hôte à surveiller. La configuration nécessite une certaine approche pour ne pas finir avec une usine à gaz. Le principe est le suivant :

  1. Vous devez tout d'abord définir un Modèles de surveillance, nommé par exemple generic-host dans lequel nous configurons par exemple uniquement la commande check_host_alive pour vérifier s'il est UP ou DOWN.
  2. Vous pouvez ensuite créer un second Modèles de surveillance, nommé par exemple Windows 2008 dans lequel nous utiliserons le Modèles d'hôte parallèlesgeneric-host” pour bénéficier du check_host_alive, et nous configurerons en plus dans l'onglet Relations, quelques contrôles purement liés à un hôte Windows 2008 comme SNMP-Windows-CPU, SNMP-Windows-Memory etc…
  3. Vous devez définir des groupes d'Hôtes, exemple : Site de Paris, Site de la Réunion, Serveurs Windows etc…
  4. Pour finir, il vous suffit de créer les Hôtes à surveiller en prenant soin :
    1. D'indiquer les Modèles multiples de l'hôte, exemple : Windows 2008
    2. D'indiquer les groupes d'hôtes auxquels appartient l'hôte, exemple Site de Paris et Serveurs Windows
    3. De Selectionner Oui sur Créer aussi les services liés au modèle

NagVis

Installation

NagVis est l'application qui vient en extra à l'outil de monitoring, et permet d'afficher les statuts de Nagios sur un schéma réseau.

Installer les paquetages pré-requis :

apt-get install sqlite3 php5-sqlite graphviz

Télécharger la dernière version sur : http://www.nagvis.org/downloads

Extraire l'archive et lancer l'installeur :

tar xzf nagvis-1.5.3.tar.gz
cd nagvis-1.5.3
chmod +x install.sh
./install.sh

Répondre aux questions comme illustré ci-dessous :

+------------------------------------------------------------------------------+
| Welcome to NagVis Installer 0.2.16                                           |
+------------------------------------------------------------------------------+
| This script is built to facilitate the NagVis installation and update        |
| procedure for you. The installer has been tested on the following systems:   |
| - Debian Etch, Hardy (4.0, 5.0)                                              |
| - Ubuntu Hardy, Intrepid, Jaunty, Karmic, Lucid (8.04 to 10.04)              |
| - SuSE Linux Enterprise Server 10 and 11                                     |
|                                                                              |
| Similar distributions to the ones mentioned above should work as well.       |
| That (hopefully) includes RedHat, Fedora, CentOS, OpenSuSE                   |
|                                                                              |
| If you experience any problems using these or other distributions, please    |
| report that to the NagVis team.                                              |
+------------------------------------------------------------------------------+
| Do you want to proceed? [y]: y
+------------------------------------------------------------------------------+
| Starting installation of NagVis 1.5.3                                        |
+------------------------------------------------------------------------------+
| OS  : Debian GNU/Linux 5.0                                                   |
| Perl: 5.010000                                                               |
|                                                                              |
+--- Checking for tools -------------------------------------------------------+
| Using packet manager /usr/bin/dpkg                                     found |
|                                                                              |
+--- Checking paths -----------------------------------------------------------+
| Please enter the path to the nagios base directory [/usr/local/nagios]:
|   nagios path /usr/local/nagios                                        found |
| Please enter the path to NagVis base [/usr/local/nagvis]:
|                                                                              |
+--- Checking prerequisites ---------------------------------------------------+
| Nagios Core 3.2.3                                                      found |
| PHP 5.2                                                                found |
|   PHP Module: gd 5.2                                                   found |
|   PHP Module: mbstring compiled_in                                     found |
|   PHP Module: gettext compiled_in                                      found |
|   PHP Module: session compiled_in                                      found |
|   PHP Module: xml compiled_in                                          found |
|   Apache mod_php                                                       found |
| Checking Backends. (Available: mklivestatus,ndo2db,ido2db,merlinmy)          |
| Do you want to use backend mklivestatus? [y]: n
| Do you want to use backend ndo2db? [n]: y
| Do you want to use backend ido2db? [n]: n
| Do you want to use backend merlinmy? [n]: n
|   /usr/local/nagios/bin/ndo2db (ndo2db)                                found |
|   PHP Module: mysql 5.2                                                found |
| Graphviz 2.20                                                          found |
|   Graphviz Module dot 2.20.2                                           found |
|   Graphviz Module neato 2.20.2                                         found |
|   Graphviz Module twopi 2.20.2                                         found |
|   Graphviz Module circo 2.20.2                                         found |
|   Graphviz Module fdp 2.20.2                                           found |
|                                                                              |
+--- Trying to detect Apache settings -----------------------------------------+
| Please enter the web path to NagVis [/nagvis]:
| Please enter the name of the web-server user [www-data]:
| Please enter the name of the web-server group [www-data]:
| create Apache config file [y]: y
|                                                                              |
+--- Checking for existing NagVis ---------------------------------------------+
|                                                                              |
+------------------------------------------------------------------------------+
| Summary                                                                      |
+------------------------------------------------------------------------------+
| NagVis home will be:           /usr/local/nagvis                             |
| Owner of NagVis files will be: www-data                                      |
| Group of NagVis files will be: www-data                                      |
| Path to Apache config dir is:  /etc/apache2/conf.d                           |
| Apache config will be created: yes                                           |
|                                                                              |
| Installation mode:             install                                       |
|                                                                              |
| Do you really want to continue? [y]: y
+------------------------------------------------------------------------------+
| Starting installation                                                        |
+------------------------------------------------------------------------------+
| Creating directory /usr/local/nagvis...                                done  |
| Creating directory /usr/local/nagvis/var...                            done  |
| Creating directory /usr/local/nagvis/var/tmpl/cache...                 done  |
| Creating directory /usr/local/nagvis/var/tmpl/compile...               done  |
| Creating directory /usr/local/nagvis/share/var...                      done  |
| Copying files to /usr/local/nagvis...                                  done  |
| Creating main configuration file...                                    done  |
| setting backend to ndomy_1                                             done  |
| Creating web configuration file...                                     done  |
| Setting permissions for web configuration file...                      done  |
|                                                                              |
|                                                                              |
|                                                                              |
+--- Setting permissions... ---------------------------------------------------+
| /usr/local/nagvis/etc/nagvis.ini.php-sample                            done  |
| /usr/local/nagvis/etc                                                  done  |
| /usr/local/nagvis/etc/maps                                             done  |
| /usr/local/nagvis/etc/maps/*                                           done  |
| /usr/local/nagvis/etc/automaps                                         done  |
| /usr/local/nagvis/etc/automaps/*                                       done  |
| /usr/local/nagvis/share/userfiles/images/maps                          done  |
| /usr/local/nagvis/share/userfiles/images/maps/*                        done  |
| /usr/local/nagvis/share/userfiles/images/shapes                        done  |
| /usr/local/nagvis/share/userfiles/images/shapes/*                      done  |
| /usr/local/nagvis/var                                                  done  |
| /usr/local/nagvis/var/*                                                done  |
| /usr/local/nagvis/var/tmpl                                             done  |
| /usr/local/nagvis/var/tmpl/cache                                       done  |
| /usr/local/nagvis/var/tmpl/compile                                     done  |
| /usr/local/nagvis/share/var                                            done  |
|                                                                              |
+------------------------------------------------------------------------------+
| Installation complete                                                        |
|                                                                              |
| You can safely remove this source directory.                                 |
|                                                                              |
| For later update/upgrade you may use this command to have a faster update:   |
| ./install.sh -n /usr/local/nagios -p /usr/local/nagvis -B /usr/local/nagios/bin/nagios -b ndo2db -u www-data -g www-data -w /etc/apache2/conf.d -a y
|                                                                              |
| What to do next?                                                             |
| - Read the documentation                                                     |
| - Maybe you want to edit the main configuration file?                        |
|   Its location is: /usr/local/nagvis/etc/nagvis.ini.php                      |
| - Configure NagVis via browser                                               |
|   <http://localhost/nagvis/config.php>                                       |
| - Initial admin credentials:                                                 |
|     Username: nagiosadmin                                                    |
|     Password: nagiosadmin                                                    |
+------------------------------------------------------------------------------+

Configuration

Depuis votre navigateur sur par exemple : http://192.168.174.3/nagvis

  1. Entrez le login nagiosadmin et mot de passe nagiosadmin (pensez à changer le mot de passe)
  2. Open → WUI
  3. Options → Manage Backends → Ajouter un backend et indiquer les information de ndo2db présente dans /usr/local/nagios/etc/ndo2db.cfg et ndomod.cfg à savoir :

Intégration de Nagvis dans centreon

Télécharger le module nagvis pour centreon sur http://forge.monitoring-fr.org/attachments/download/27/centreon-nagvis-0.2.tar.gz

Décompresser l'archive dans le répertoire module de contreon :

cd /usr/local/centreon/www/modules/
tar xzf /usr/src/centreon-nagvis-0.2.tar.gz

Définir le propriétaire sur le module :

chown -R www-data:www-data nagvis

Editer le fichier /usr/local/centreon/www/modules/nagvis/nagvis.php et modifier la ligne suivante pour pointer sur l'url de nagvis :

$tpl->assign("nagvis_uri", "/nagvis");

Editer le fichier de configuration par défaut de nagvis (nagvis/etc/nagvis.ini.php) et remplacer les URL par défaut par les suivantes :

urltarget="_top"
; URL template for host object links
hosturl="/centreon/main.php?p=201&o=hd&host_name=[host_name]"
; URL template for hostgroup object links
hostgroupurl="/centreon/main.php?search=[hostgroup_name]&p=20104&limit=100&list=&o=hg"
; URL template for service object links
serviceurl="/centreon/main.php?p=202&o=svcd&host_name=[host_name]&service_description=[service_description]"
; URL template for servicegroup object links
servicegroupurl="/centreon/main.php?p=20212&o=svcOVSG"

Dans Centreon aller dans administration → modules et installer le module

Nagvis est désormais accessible à partir du menu vues de centreon

Créer une nouvelle carte

Suivre les étapes suivantes :

  1. Open → WUI
  2. Options → Manage Background pour charger une image png de fond (ex: export VISIO etc…)
  3. Options → Manage Maps pour créer une nouvelle MAP en choisissant votre image png
  4. Open → Edit à coter de votre MAP
  5. Cartes → Add Icon → Machine et sélectionner votre serveur

Lien utiles

Scripts de check pour VMware : http://exchange.nagios.org/directory/Plugins/Operating-Systems/*-Virtual-Environments/VMWare