====== 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 : {{:informatique:linux:architecture-nagios-centreon.png?600}} ===== 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 [[centreon_install_wizard|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/ : - Cliquer **Start** - Faire **NEXT** jusqu'à **DataBase Configuration** - Indiquer le mot de passe root de MySQL et définissez le mot de passe des bases de contreon - Faire **NEXT** jusqu'à **User Interface Configuration** - Définissez le compte administrateur de Centreon - 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$** * **$USER1$** correspond au chemin vers les plugins de Nagios, exemple : **/usr/local/nagios/libexec** * **$USER2$** correspong au nom de la communauté SNMP, exemple : **public** Une fois les éléments configurés, il faut les publier dans Nagios et redémarrer le service nagios. * **Configuration -> Nagios -> Générer** * Cocher **Deplacer les fichiers générés** et **Redémarrer Nagios** puis valider par **EXPORTER** 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** : - Aller dans **Configuration -> Commandes -> Contrôles** - Cliquer sur **check_centreon_snmp_cpu** - Indiquer les valeurs et arguments (voir plus bas) - 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 : * Son nom et coordonnées * Pour quels hôtes il recevra les alertes * Comment il recevra les alertes : mail, sms, pager, jabber... ==== 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 : - 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. - 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èles** "**generic-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... - Vous devez définir des groupes d'Hôtes, exemple : **Site de Paris**, **Site de la Réunion**, **Serveurs Windows** etc... - Pour finir, il vous suffit de créer les **Hôtes** à surveiller en prenant soin : - D'indiquer les **Modèles multiples de l'hôte**, exemple : **Windows 2008** - D'indiquer les groupes d'hôtes auxquels appartient l'hôte, exemple **Site de Paris** et **Serveurs Windows** - 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 | | | | - Initial admin credentials: | | Username: nagiosadmin | | Password: nagiosadmin | +------------------------------------------------------------------------------+ ==== Configuration ==== Depuis votre navigateur sur par exemple : http://192.168.174.3/nagvis - Entrez le login **nagiosadmin** et mot de passe **nagiosadmin** (pensez à changer le mot de passe) - **Open -> WUI** - **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 : * dbhost="localhost" * dbport=3306 * dbname="centstatus" * dbuser="centreon" * dbpass="mot_de_passe" * dbprefix="nagios_" * dbinstancename="Central" * backendtype="ndomy" ==== 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 : - **Open -> WUI** - **Options -> Manage Background** pour charger une image **png** de fond (ex: export VISIO etc...) - **Options -> Manage Maps** pour créer une nouvelle MAP en choisissant votre image **png** - **Open -> Edit** à coter de votre MAP - **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]]