NAGIOS 4.01 Installation sur Debian 7.1 1 : Préambule (wiki) 2 : Installation Nagios (avec l'aide de Djibril de « developpez.com ») 3 : Configuration de Nagios 4 : Configuration des objets et ajouts de clients Nagios 5 : Superviser des services 6 : Gestionnaire d’évènements 7 : Les graphs pnp4 8 : Module « check_mk » (Non réussi) 1 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Préambule Nagios (anciennement appelé Netsaint) est une application permettant la surveillance système et réseau. Elle surveille les hôtes et services spécifiés, alertant lorsque les systèmes ont des dysfonctionnements et quand ils repassent en fonctionnement normal. C'est un logiciel libre sous licence GPL. C'est un programme modulaire qui se décompose en trois parties : 1. Le moteur de l'application qui vient ordonnancer les tâches de supervision. 2. L'interface web, qui permet d'avoir une vue d'ensemble du système d'information et des possibles anomalies. 3. Les sondes (appelées greffons ou plugins), une centaine de mini programmes que l'on peut compléter en fonction des besoins de chacun pour superviser chaque service ou ressource disponible sur l'ensemble des ordinateurs ou éléments réseaux du SI. Suite au manque de réactivité du développeur principal de Nagios et de sa volonté de ne plus diffuser tous les modules sous licence Libre, certains développeurs actifs sur le projet ont fait diverger Nagios pour créer Icinga. Possibilités Superviser des services réseaux : (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, LDAP, etc.) Superviser les ressources des serveurs (charge du processeur, occupation des disque durs, utilisation de la mémoire paginée) et ceci sur les systèmes d'exploitation les plus répandus. Interface avec le protocole SNMP. La supervision à distance peut utiliser SSH ou un tunnel SSL (notamment via un agent NRPE). Les plugins sont écrits dans les langages de programmation les plus adaptés à leur tâche : scripts shell (Bash, ksh, etc.), C++, Perl, Python, Ruby, PHP, C#, etc. La vérification des services se fait en parallèle. Possibilité de définir une hiérarchie dans le réseau pour pouvoir faire la différence entre un serveur en panne et un serveur injoignable. La remontée des alertes est entièrement paramétrable grâce à l'utilisation de plugins (alerte par courrier électronique, SMS, etc.). Acquittement des alertes par les administrateurs. Gestion des escalades pour les alertes (une alerte non acquittée est envoyée à un groupe différent). Limitation de la visibilité, les utilisateurs peuvent avoir un accès limité à quelques éléments. Capacité de gestion des oscillations (nombreux passages d'un état normal à un état d'erreur dans un temps court). Créer ses propres plugins, dans le langage désiré. Il suffit de respecter la norme Nagios des Codes retour o 0 OK (tout va bien) o 1 WARNING (le seuil d'alerte est dépassé) o 2 CRITICAL (le service a un problème) o 3 UNKNOWN (impossible de connaître l'état du service) Les possibilités de tests deviennent donc infinies, il suffit d'écrire tout plugin qui n'existerait pas déjà sur les sites spécialisés. 2 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Installation Dans ce TP, je vais utiliser trois machines virtuelles, deux Debian 7.1 dont notre superviseur Nagios et un Windows Seven. I : Prérequis Nous avons besoin d'installer quelques bibliothèques utiles au bon fonctionnement de Nagios, mais surtout à son installation, compilation… Nous devons installer apache2, php et gd, utiles pour la future interface de Nagios. Il nous faut aussi make et gcc pour les compilations et SNMP pour superviser les routeurs, switch… root@nagios:~# apt-get update root@nagios:~# apt-get upgrade root@nagios:~# apt-get install apache2 libapache2-mod-php5 php5-gd php5 make gcc buildessential wget libgd-gd2-perl libgd2-dev libgd2-xpm libgd2-xpm-dev libnet-snmp-perl libssl-dev snmp daemon II : Nagios A : Comptes et groupes utilisateurs Création d'un utilisateur « nagios » ayant pour mot de passe « nagios » et appartenant à un groupe nommé « nagios ». root@nagios:~# groupadd nagios Création du compte utilisateur « nagios » que nous allons mettre dans le groupe « nagios » root@nagios:~# useradd -m -g nagios nagios Attribution d'un mot de passe à l'utilisateur « nagios ». Ce mot de passe est « nagios ». root@nagios:~# passwd nagios J'ai mis « nagios » comme mot de passe Création d'un groupe « nagcmd » permettant l'exécution des commandes externes à travers l'interface Web. Rajout des utilisateurs Nagios et Apache à l'intérieur du groupe « nagcmd ». root@nagios:~# groupadd nagcmd root@nagios:~# usermod -g nagcmd nagios root@nagios:~# usermod -g nagcmd www-data 3 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 B : Téléchargement Création d'un répertoire /nagios/download dans lequel nous déposerons les archives à installer. root@nagios:~# mkdir -p /nagios/download root@nagios:~# cd /nagios/download root@nagios:/nagios/download# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.1.tar.gz root@nagios:/nagios/download# wget http://www.nagios-plugins.org/download/nagios-plugins1.5.tar.gz root@nagios:/nagios/download# ls -alh total 4,0M drwxr-xr-x 2 root root 4,0K oct. 15 11:47 . drwxr-xr-x 3 root root 4,0K oct. 15 11:45 .. -rw-r--r-- 1 root root 1,7M sept. 20 22:48 nagios-4.0.1.tar.gz -rw-r--r-- 1 root root 2,4M oct. 2 17:27 nagios-plugins-1.5.tar.gz C: Compilation Il faut extraire le code source de l'archive de Nagios dans un premier temps. root@nagios# cd /nagios/download/ root@nagios# tar -xzf nagios-4.0.1.tar.gz Puis exécuter le script de configuration en lui précisant le nom du groupe créé précédemment. root@nagios:/nagios/download # cd nagios-4.0.1/ root@nagios:/nagios/download/nagios # ./configure --with-command-group=nagcmd Compilons le code sources de Nagios. root@nagios:/nagios/download/nagios-4.0.1 # make all Si « make » n'est pas trouvé, installez-le et recommencez. Installons les scripts de démarrage. root@nagios:/nagios/download/nagios-4.0.1# make install-init /usr/bin/install -c -m 755 -d -o root -g root /etc/init.d /usr/bin/install -c -m 755 -o root -g root daemon-init /etc/init.d/nagios *** Init script installed *** Le fichier « /etc/init.d/nagios » est créé. 4 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Installons les fichiers de configuration. Les fichiers seront automatiquement installés dans le répertoire /usr/local/nagios/etc. root@nagios:/nagios/download/nagios-4.0.1# make install-config /usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc /usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc/objects /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/nagios.cfg /usr/local/nagios/etc/nagios.cfg /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/cgi.cfg /usr/local/nagios/etc/cgi.cfg /usr/bin/install -c -b -m 660 -o nagios -g nagios sample-config/resource.cfg /usr/local/nagios/etc/resource.cfg /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/templates.cfg /usr/local/nagios/etc/objects/templates.cfg /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/commands.cfg /usr/local/nagios/etc/objects/commands.cfg /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/contacts.cfg /usr/local/nagios/etc/objects/contacts.cfg /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/timeperiods.cfg /usr/local/nagios/etc/objects/timeperiods.cfg /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/localhost.cfg /usr/local/nagios/etc/objects/localhost.cfg /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/windows.cfg /usr/local/nagios/etc/objects/windows.cfg /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/printer.cfg /usr/local/nagios/etc/objects/printer.cfg /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/switch.cfg /usr/local/nagios/etc/objects/switch.cfg *** Config files installed *** Remember, these are *SAMPLE* config files. You'll need to read the documentation for more information on how to actually define services, hosts, etc. to fit your particular needs. Installons et configurons les permissions. :/nagios/download/nagios-4.0.1# make install-commandmode /usr/bin/install -c -m 775 -o nagios -g nagcmd -d /usr/local/nagios/var/rw chmod g+s /usr/local/nagios/var/rw *** External command directory configured *** À ce stade, il ne faut surtout pas démarrer Nagios. 5 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 D : Configuration de Nagios À la première installation, et à chaque fois que vous ferez des modifications de Nagios ou que vous aurez besoin de redémarrer Nagios, assurez-vous que tous les fichiers de configuration sont conformes. Pour cela, lancez toujours cette commande. # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Cela devrait se finir comme ça Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check Gestion du démarrage du serveur Il est important que Nagios et Apache2 puissent être lancés au démarrage du serveur. Pour configurer cela, voici ce qu'il faut faire : # update-rc.d nagios defaults Il se peut que nous obtenions des messages d'erreurs, dans le fichier « /etc/init.d/nagios », il manque deux lignes essentielles : # Default-Start: # Default-Stop: 2345 016 Ces deux lignes permettent de donner le rang de démarrage et d'arrêt du script nagios. Voici notre entête du fichier avant modification : Faisons une sauvegarde et modifions notre fichier : cp /etc/init.d/nagios /nagios/download/nagios.old Voici notre entête du fichier après la modification : #!/bin/sh # Nagios Startup script for the Nagios monitoring daemon # # chkconfig: - 85 15 # description: Nagios is a service monitoring system # processname: nagios # config: /etc/nagios/nagios.cfg # pidfile: /var/nagios/nagios.pid # ### BEGIN INIT INFO # Provides: nagios # Required-Start: $local_fs $syslog $network 6 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 # Required-Stop: $local_fs $syslog $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start and stop Nagios monitoring server # Description: Nagios is is a service monitoring system ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions Maintenant, relançons l'utilitaire « update-rc.d » : # update-rc.d nagios defaults Maintenant, démarrons Nagios : /etc/init.d/nagios start Sous Debian, avec la version actuelle de Nagios, son démarrage est problématique et nous avons des messages d'erreurs : root@supervision:/nagios/download/nagios-plugins-1.5# /etc/init.d/nagios start /etc/init.d/nagios: 22: .: Can't open /etc/rc.d/init.d/functions Il faut modifier le fichier de démarrage du service nagios # gedit /etc/init.d/nagios Utilisez les touches « CTRL F » pour rechercher les lignes qui seront à modifier Le fichier functions ne se trouve pas dans /etc/rc.d/init.d mais /lib/lsb/init-functions # Source function library. # . /etc/rc.d/init.d/functions (A SUPPRIMER) . /lib/lsb/init-functions Il faut changer la ligne : /sbin/service nagios configtest > "$TMPFILE" En : /usr/sbin/service nagios configtest > "$TMPFILE" Les lignes « status $prog » sont remplacées par « status_of_proc $prog » Dans le stop(), remplacer : killproc -p ${pidfile} -d 10 $exec En : killproc -p ${pidfile} $exec 7 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Remplacer : $nice runuser -s /bin/bash - $user -c "$corelimit >/dev/null 2>&1 ; $exec -vp $config" Par : $nice su -s /bin/bash - nagios -c "$corelimit >/dev/null 2>&1 ; $exec -vp $config" Au niveau du start, voici deux lignes à changer : if test "$checkconfig" == "false"; then … daemon --user=$user $exec -ud $config Par: if test "$checkconfig" = "false"; then … daemon --user=$user -- $exec -d $config Remplacer : lockfile=/var/lock/subsys/$prog Par : lockfile=/var/lock/$prog Pour terminer, dans votre bash la création de l'utilisateur de nagios et son mot de passe (nagios) root@nagios# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin Tous ces tests et modifications ont peut-être créé des processus Nagios zombies. Un redémarrage de votre serveur fera du bien et permettra de tester que Nagios se lance et s'arrête correctement. Le script /etc/init.d/nagios start|stop|restart n'est pas toujours d'une fiabilité sans faille. Afin d'éviter d'avoir plusieurs démons Nagios qui tourneraient et qui mettraient à jour la même interface CGI. Voici comment éviter ce désagrément # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg # /etc/init.d/nagios stop; pkill nagios; /etc/init.d/nagios start Changer la permission de ce répertoire /usr/local/nagios/var/rw afin de pouvoir effectuer certaines actions depuis l'interface Nagios. # chown nagios.nagcmd /usr/local/nagios/var/rw 8 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Maintenant nous pouvons nous connecter à Nagios via le lien suivant : http://localhost/nagios Fichier de configuration Dans le répertoire « /etc/local/nagios/etc/objects », on trouve les fichiers objets défini dans le fichier « nagios.cfg » qui se trouve ici : « /etc/local/nagios/etc/nagios.cfg ». Les objets à renseigner se trouvent ici : # OBJECT CONFIGURATION FILE(S) # You can specify individual object config files as shown below: cfg_file=/usr/local/nagios/etc/objects/commands.cfg cfg_file=/usr/local/nagios/etc/objects/contacts.cfg cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg cfg_file=/usr/local/nagios/etc/objects/serveurs-linux.cfg cfg_file=/usr/local/nagios/etc/objects/serveurs-windows.cfg cfg_file=/usr/local/nagios/etc/objects/serveurs-messagerie.cfg # Definitions for monitoring the local (Linux) host cfg_file=/usr/local/nagios/etc/objects/localhost.cfg 9 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 On peut spécifier l’adresse du superviseur dans le fichier CGI : « url_html_path=/nagios » Pour les bibliothèques des plugins : « /usr/local/nagios/etc/resource.cfg » Les objets Périodes de temps : Le fichier timeperiods.cfg défini les plages horaires de contrôle actifs. 10 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Le fichier contact.cfg déterminera à qui, via une boite mail ou SMS, envoyer les notifications. (Configuration pour le TP partie 2&3) Le fichier Templates.cfg est composé des gabarits de création d'hôtes, de contacts et de services avec tous les paramètres à leurs attribuer. (Configuration pour le TP partie 2&3) 11 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 12 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Création des fichiers de configuration cité dans le fichier « nagios.cfg » 13 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 14 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 ******** Méthode pour ajouter un objet : Fichier « /etc/local/nagios/etc/nagios.cfg » Ajouter le chemin de l’objet « .cfg » crée dans « /etc/local/nagios/etc/objects » Définir les périodes de temps : « /etc/local/nagios/etc/objects/timeperiods.cfg » Définir les contacts : « /etc/local/nagios/etc/objects/contacts.cfg » 15 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Définir les génériques (contact, hôtes,groupes, services): « /etc/local/nagios/etc/objects/templates.cfg » ou directement dans l’objet, exemple : Un fichier « serveurs-windows.cfg » (voir plus haut ********) crée dans le répertoire « object » peut contenir les définitions d’hôtes, de groupes et de services… Normalement quand tout est bien configuré, sur votre Nagios les clients s’affichent : Superviser des SERVICES Pour configurer un service, exemple APACHE il faut : 1) Éditer le fichier « serveurs-linux-cfg » présent dans « objects ». Ces objets je le rappelle sont utilisés et chargés par le fichier de configuration « nagios.cfg ». define service { # On définit un nouveau service Hostgroup_name Groupe-serveurs-linux # Définit dans « serveurs-linux.cfg » service_description Service Apache # On nomme le service (apparait dans Nagios) use generic-service-formation # Service définit dans « templates.cfg » check_command check_http # Définit dans « commands.cfg » } 2) Télécharger et activer le service Apache sur le client : a. Apt-get install apache2 b. /etc/init.d/apache2 start c. Résultat sur l’image qui suit 16 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Superviser des serveurs Linux Installer l’agent NRPE sur le client Debian et configurer son fichier « /etc/nagios/nrpe.cfg » Indiquer l’adresse IP du serveur Nagios (192.168.1.230). Démarrer le service NRPE « /etc/init.d/nagios-nrpe-server start » Ajouter de nouveaux plugins dans ce même fichier suivi des arguments nécessaires. Pour vérifier la charge du CPU et l’espace disque par exemple : « command[ check_disk]=/usr/lib/nagios/plugins/check_disk –w 60 –c 90 –p /dev/mapper/debianusr » !!ATTENTION, le chemin ici est issue d’une partition LVM!! « command[ check_cpu]=/usr/lib/nagios/plugins/check_cpu –w 5 –c 10 » Il nous faut donner des droits dans le fichier « /etc/sudoers » « nagios ALL=(ALL) NOPASSWD : /usr/lib/nagios/plugins/ » 17 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Fichier SUDOERS Vérification des paramètres du fichier Sudoers Installation de la partie cliente coté Nagios, il nous demandera un mot de passe (nagios) Faire une copie de ce fichier : « cp /usr/lib/nagios/plugins/check_nrpe /usr/local/nagios/libexec » Mettre des droits, ce placer dans « /usr/local/nagios/libexec » « chown nagios : check_nrpe » Rédemarrer le service nrpe coté client Teste de communication entre Nagios et le client Debian 18 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Définition d’une commande « check_cpu » dans le fichier de configuration « serveurs-linux.cfg » Résultat Sur cette image on voit que j’ai configuré aussi un serveur Windows, notamment : - Le plugin « check_nt » sur Nagios Nsclient++ coté windows Tester l’installation avec cette commande o Cd /usr/local/nagios/libexec o ./check_nt –H 192.168.1.232 –p 14289 –v CLIENTVERSION –s nagios Commande check + IP clientWindows + port de communication + commande_nt + password nsclient (défini à l’installation) o Configurer fichier nagios « serveurs-windows.cfg » o o o Commande : $USER1$/check_nt –H $HOSTADDRESS$ -p 12489 –v $ARG1$ $ARG2$ Création des services CPU et DISK o 19 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Supervision d’un service WEB Après la création d’un page web sur le serveur distant Debian, dans /var/www il y a donc une page HTML que l’on peut visualiser via un navigateur : J’ai pour cela ajouter un deuxième serveur Debian (192.168.1.229) dans Nagios afin de voir les différences lorsqu’un service répond par Ok et par Critical. Pour cela j’ai créé un fichier « serveurs-linux2.cfg » dans les objets Nagios. Rajouter ce fichier dans la configuration Nagios (nagios.cfg). Je vais contrôler par le port 80 un mot précis dans une page web, le mot WEB. Il faut créer une commande (commandes.cfg) : Explication : (#/usr/lib/nagios/plugins/check_http –help) $USER1$ : commande exécutable par un utilisateur (nagios) check_http : commande Nagios -I $HOSTADDRESS$ $ARG1$ : Adresse IP de l’hôte que l’on veut superviser -u $ARG1$ : Chemin (path) de l’URL -s $ARG1$ : Chaine (string) de caractère attendu dans le contenu Créer un service (PAGE-WEB) dans « serveurs-linux2.cfg » Résultat sur deux serveurs Debian, dont un ne dispose pas d’une page HTML contenant le mot WEB (serverus-linux) 20 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 On peut constater l’erreur 405, et il nous indique aussi que la recherche de la chaine (STRING ‘WEB’) a échouée dans le page test.html. Gestionnaire d’évènements Explication du processus de redémarrage d’un service sur un client Nagios par le serveur Nagios : Dans les logs des deux parties on peut voir ceci : Coté client, après l’arrêt volontaire, en root du service apache2 : Coté serveur Nagios : Notre service a été redémarré par un script présent coté client, mais comment ? 1 Le serveur Nagios supervise le service http sur un client via NRPE 2 Il constate aucune réponse du service apache2, qui semble arrêté coté client 3 Il y a une remontée de l’info sur le serveur Nagios 4 Utilisation du processus EVENT HANDLER défini dans le service check_http. Il déclenche une action lors d’un changement d’état, ici l’arrêt du service web et va réaliser une suite d’action 5 Demande d’autorisation de l’utilisateur Nagios sur le site distant pour se connecter 6 Autorisation du serveur WEB, qui a le passage d’arguments activé (nrpe.cfg) 7 L’utilisateur nagios exécute le script qui va redémarrer le service apache2 21 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Graph PNP4-0.6 Installation et configuration du plugin pnp-6.0 #cd /usr/src #wget http://downloads.sourceforge.net/project/pnp4nagios/files/PNP-0.6/pnp4nagios-0.6.21.tar.gz #tar xvzf pnp4… #cd pnp4… #./configure --prefix=/usr/local/pnp4nagios --with-nagios-user=nagios --with-nagios-group=nagios #make all #make install #make install-webconf #make install-config #make install-init #/etc/init.d/apache2 reload On se connecte : @ip serveur nagios/pnp4nagios. Nous avons un environnement Tests et Kohana. Cette page nous demande, à la fin dans un rectangle vert, de supprimer le fichier install.php Configuration de pnp4 FICHIER NAGIOS.CFG Modifier la ligne du fichier « nagios.cfg » PROCESS_PERFORMANCE_DATA. Positionner à 1 au lieu de 0. Toujours dans ce fichier, à la fin par exemple, ajouter ceci : # # service performance data # service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HO STNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHEC KCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTST ATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$ service_perfdata_file_mode=a service_perfdata_file_processing_interval=15 service_perfdata_file_processing_command=process-service-perfdata-file # # host performance data starting with Nagios 3.0 # host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNA ME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOS TSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$ host_perfdata_file_mode=a host_perfdata_file_processing_interval=15 host_perfdata_file_processing_command=process-host-perfdata-file 22 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 FICHIER COMMANDS.CFG Editer ce fichier pour rajouter deux commandes : define command{ command_name process-service-perfdata-file command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$ } define command{ command_name process-host-perfdata-file command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$ } FICHIER TEMPLATES.CFG Editer ce fichier pour ajouter une définition d’hôte et d’un nouveau service define host { name host-pnp process_perf_data 1 action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_' target='main' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=_HOST_ register 0 } define service { name srv-pnp process_perf_data 1 action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' target='main' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$ register 0 } FICHIER SERVEURS-LINUX2.CFG & SERVEURS-LINUX.CFG Dans ces fichiers, je vais modifier la définition des hôtes et des services en y ajoutant les nouveaux modules : - srv-pnp, qui sera ajouté à « use » dans le « define service » host-pnp, qui sera ajouté à « use » dans le « define host » 23 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Permissions sudo chown -R nagios:nagios /usr/local/nagios/etc Activation du module rewrite d’Apache sudo a2enmod rewrite Modifier la configuration de PHP5 Editer le fichier /etc/php5 Modifier la directive magic_quotes_gpc = Off Activer la configuration npcd cd /usr/src/pnp4nagios-0.6.21/sample-config/pnp/ sudo cp npcd.cfg-sample /usr/local/pnp4nagios/etx/npcd.cfg chown nagios :nagios npcd.cfg Services /etc/init.d/npcd start /etc/init.d/nagios restart /etc/init.d/apache2 restart Teste de PNP Serveur Nagios 192.168.1.230 URL pnp : http://192.168.1.230/pnp4nagios 24 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014 Sur ces images on peut constater que le service pnp apparait dans l’interface de Nagios, on peut cliquer sur les graphs… (images 1 & 2). On a aussi une visualisation en locale en allant sur l’url de pnp (image 3) Module CHECK_MK En ce qui concerne le template check_mk-cpu.loads, j’ai bien installé le module « check_mk » de Matias Kettner et son agent. J’ai tenté de le configurer avec Nagios. Problème : Impossible de charger les modules et je n’ai pas trouvé pourquoi… Du coup je ne mets pas tout ce que j’ai réalisé comme manipulation. 25 EMERY Olivier & WILLM Geoffrey TP Nagios – IUT LANNION – LPaGSRi 2013-2014
© Copyright 2024 Paperzz