informatique:logiciels:nagios
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
informatique:logiciels:nagios [2015/02/08 21:12] – [Installation de PNP4Nagios] pteu | informatique:logiciels:nagios [2015/09/02 08:43] – [Créer ses templates PNP] pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{tag> | ||
- | |||
====== Nagios ====== | ====== Nagios ====== | ||
Line 999: | Line 997: | ||
<code bash> | <code bash> | ||
aptitude install pnp4nagios | aptitude install pnp4nagios | ||
+ | |||
+ | # avec, au passage : | ||
+ | 0 paquets mis à jour, 100 nouvellement installés, 0 à enlever et 0 non mis à jour. | ||
+ | Il est nécessaire de télécharger 32,2 Mo d' | ||
+ | Les paquets suivants ont des dépendances non satisfaites : | ||
+ | | ||
+ | Est en conflit avec: libgd2-noxpm mais 2.0.36~rc1~dfsg-6.1 est installé. | ||
+ | | ||
+ | Est en conflit avec: libgd2-xpm mais 2.0.36~rc1~dfsg-6.1 doit être installé. | ||
+ | Les actions suivantes permettront de résoudre ces dépendances : | ||
+ | |||
+ | | ||
+ | 1) | ||
+ | |||
+ | Accepter cette solution ? [Y/n/q/?] y | ||
</ | </ | ||
Line 1142: | Line 1155: | ||
(Et on relance Nagios après avoir vérifier les éventuelles erreurs avec '' | (Et on relance Nagios après avoir vérifier les éventuelles erreurs avec '' | ||
- | =====Problèmes | + | ====Créer ses templates PNP==== |
+ | |||
+ | Un template (au sens PNP4nagios du terme) est un modèle de graphique adapté aux valeurs des données de performance. Il est intéressant d' | ||
+ | |||
+ | On peut choisir les couleurs, le type de graphique (courbe, aire, ligne), sa hauteur, la plage de données utilisée (1h, 12h, 1 semaine), etc... ça peut devenir des trucs très sympa : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Pour chaque service disposant de perfdata et sur lequel PNP4nagios est activé, le plugin va rechercher son template éponyme avec l' | ||
+ | <code bash> | ||
+ | # avec le paquet pnp4nagios sous debian 7 : | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | |||
+ | # avec une installation à partir des sources, ils seront plutôt ici : | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Par exemple pour un service " | ||
+ | |||
+ | ===Exemple 1 : trafic in/out=== | ||
+ | |||
+ | Voici un exemple de " | ||
+ | * création des objets dans Nagios : | ||
+ | <code bash> | ||
+ | vi / | ||
+ | |||
+ | # déclaration du NAS, on utilise bien le template nagios " | ||
+ | define host{ | ||
+ | use | ||
+ | host_name | ||
+ | address | ||
+ | hostgroups | ||
+ | } | ||
+ | |||
+ | # dans le service on ne précise que le nom de communauté, | ||
+ | # le service est appliqué au host grâce au groupe " | ||
+ | define service{ | ||
+ | use | ||
+ | hostgroup_name | ||
+ | service_description traffic eth0 | ||
+ | check_command | ||
+ | } | ||
+ | |||
+ | # trafic reseau | ||
+ | # le plugin avec l' | ||
+ | # -> penser à faire : #chmod 755 /usr/var && mkdir / | ||
+ | # -o est suivi par les 2 OIDs correspondant au trafic in et out de l' | ||
+ | # -l permet d' | ||
+ | # -u permet de préciser l' | ||
+ | # -P précise la version de SNMP | ||
+ | # -C spécifie la communauté SNMP | ||
+ | define command{ | ||
+ | command_name | ||
+ | command_line | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * On créer ensuite le template, qui permet d' | ||
+ | <code bash> | ||
+ | vi / | ||
+ | <?php | ||
+ | # | ||
+ | # Copyright (c) 2006-2010 Joerg Linge (http:// | ||
+ | # Plugin: check_iftraffic.pl (COUNTER) | ||
+ | # adaptation pour traffic syno | ||
+ | |||
+ | $opt[1] | ||
+ | # | ||
+ | $def[1] | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Résultat : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===Exemple 2 : courbe CPU=== | ||
+ | |||
+ | Autre exemple pour grapher l' | ||
+ | |||
+ | Conf nagios, en vrac : | ||
+ | <code bash> | ||
+ | # paramètres de check_snmp : | ||
+ | # -P2c pour préciser le version de SNMP (2c) | ||
+ | # -t5 pour préciser le timeout (en secondes) de la commande | ||
+ | # -l < | ||
+ | # et les classiques mandataires : -C < | ||
+ | define command{ | ||
+ | command_name | ||
+ | command_line | ||
+ | } | ||
+ | |||
+ | # le service est rattaché au groupe fortigate_v4 | ||
+ | define service { | ||
+ | name check-snmp-forti-cpu-v4 | ||
+ | hostgroup_name | ||
+ | use | ||
+ | service_description | ||
+ | check_command | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | On réutilise le template par défaut : | ||
+ | <code bash> | ||
+ | <?php | ||
+ | # template CPU derive du default template : | ||
+ | # Copyright (c) 2006-2010 Joerg Linge (http:// | ||
+ | # | ||
+ | # Define some colors .. | ||
+ | # | ||
+ | $_WARNRULE = '# | ||
+ | $_CRITRULE = '# | ||
+ | $_AREA | ||
+ | |||
+ | # couleurs de la courbe | ||
+ | $_LINE | ||
+ | $GRAD_INF | ||
+ | $GRAD_SUP | ||
+ | |||
+ | # | ||
+ | # Initial Logic ... | ||
+ | # | ||
+ | |||
+ | foreach ($this-> | ||
+ | |||
+ | $maximum | ||
+ | $minimum | ||
+ | $critical = ""; | ||
+ | $crit_min = ""; | ||
+ | $crit_max = ""; | ||
+ | $warning | ||
+ | $warn_max = ""; | ||
+ | $warn_min = ""; | ||
+ | $vlabel | ||
+ | $lower | ||
+ | $upper | ||
+ | |||
+ | if ($VAL[' | ||
+ | $warning = $VAL[' | ||
+ | } | ||
+ | if ($VAL[' | ||
+ | $warn_max = $VAL[' | ||
+ | } | ||
+ | if ($VAL[' | ||
+ | $warn_min = $VAL[' | ||
+ | } | ||
+ | if ($VAL[' | ||
+ | $critical = $VAL[' | ||
+ | } | ||
+ | if ($VAL[' | ||
+ | $crit_max = $VAL[' | ||
+ | } | ||
+ | if ($VAL[' | ||
+ | $crit_min = $VAL[' | ||
+ | } | ||
+ | if ($VAL[' | ||
+ | $lower = " --lower=" | ||
+ | $minimum = $VAL[' | ||
+ | } | ||
+ | if ($VAL[' | ||
+ | $maximum = $VAL[' | ||
+ | } | ||
+ | if ($VAL[' | ||
+ | $vlabel = " | ||
+ | $upper = " --upper=101 "; | ||
+ | $lower = " --lower=0 "; | ||
+ | } | ||
+ | else { | ||
+ | $vlabel = $VAL[' | ||
+ | } | ||
+ | |||
+ | $opt[$KEY] = ' | ||
+ | $ds_name[$KEY] = $VAL[' | ||
+ | $def[$KEY] | ||
+ | $def[$KEY] .= rrd:: | ||
+ | $def[$KEY] .= rrd:: | ||
+ | $def[$KEY] .= rrd:: | ||
+ | if ($warning != "" | ||
+ | $def[$KEY] .= rrd:: | ||
+ | } | ||
+ | if ($warn_min != "" | ||
+ | $def[$KEY] .= rrd:: | ||
+ | } | ||
+ | if ($warn_max != "" | ||
+ | $def[$KEY] .= rrd:: | ||
+ | } | ||
+ | if ($critical != "" | ||
+ | $def[$KEY] .= rrd:: | ||
+ | } | ||
+ | if ($crit_min != "" | ||
+ | $def[$KEY] .= rrd:: | ||
+ | } | ||
+ | if ($crit_max != "" | ||
+ | $def[$KEY] .= rrd:: | ||
+ | } | ||
+ | $def[$KEY] .= rrd:: | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Résultat : | ||
+ | {{ : | ||
+ | |||
+ | =====Activer les commandes externes===== | ||
+ | |||
+ | Pour utiliser certaines fonctionnalités, | ||
+ | |||
+ | Pour cela : | ||
+ | <code bash> | ||
+ | # arrêter Apache et Nagios : | ||
+ | service apache2 stop | ||
+ | service nagios3 stop | ||
+ | |||
+ | # activer les commandes externes dans la configuration de Nagios : | ||
+ | vi nagios.cfg | ||
+ | |||
+ | check_external_commands=1 | ||
+ | command_check_interval=15s | ||
+ | |||
+ | # ajouter l' | ||
+ | vi / | ||
+ | |||
+ | nagios: | ||
+ | |||
+ | # le paquet Debian a des problemes de droits sur certains répertoire, | ||
+ | # - ajouter l' | ||
+ | dpkg-statoverride --update --add nagios nagios 751 / | ||
+ | # - ajouter le sticky bit au répertoire parent du pipe des commandes externes | ||
+ | dpkg-statoverride --update --add nagios www-data 2710 / | ||
+ | |||
+ | # relancer Apache et Nagios : | ||
+ | service apache2 start | ||
+ | service nagios3 start | ||
+ | </ | ||
====Installation du paquet Ubuntu par défaut==== | ====Installation du paquet Ubuntu par défaut==== | ||
Line 1234: | Line 1491: | ||
| | ||
</ | </ | ||
+ | |||
+ | =====De Wheezy vers Jessie===== | ||
+ | |||
+ | Depuis quelques jours (fin avril 2015) Debian 8 stable est release. Je me suis donc mis à la page et j'ai eu la stupeur de voir que mon nagios3 avait été à moitié dézingué, et que le pnp4nagios avait même disparu des paquets (à priori il n' | ||
+ | |||
+ | Voici le mode pompier pour restaurer nos courbes : | ||
+ | <code bash> | ||
+ | // prérequis | ||
+ | aptitude install rrdtool librrds-perl php5-gd | ||
+ | |||
+ | wget https:// | ||
+ | # dans mon cas c'est la version pnp4nagios-0.6.25.tar.gz | ||
+ | tar -zxvf pnp4nagios-0.6.25.tar.gz | ||
+ | cd pnp4nagios-0.6.25 | ||
+ | ./configure | ||
+ | [..] | ||
+ | *** Configuration summary for pnp4nagios-0.6.25 03-01-2015 *** | ||
+ | |||
+ | General Options: | ||
+ | ------------------------- | ||
+ | Nagios user/ | ||
+ | Install directory: | ||
+ | HTML Dir: / | ||
+ | Config Dir: / | ||
+ | Location of rrdtool binary: | ||
+ | RRDs Perl Modules: | ||
+ | RRD Files stored in: / | ||
+ | process_perfdata.pl Logfile: | ||
+ | Perfdata files (NPCD) stored in: / | ||
+ | |||
+ | Web Interface Options: | ||
+ | ------------------------- | ||
+ | HTML URL: | ||
+ | Apache Config File: / | ||
+ | |||
+ | |||
+ | Review the options above for accuracy. | ||
+ | type 'make all' to compile. | ||
+ | |||
+ | make all | ||
+ | cd ./src && make | ||
+ | make[1]: Entering directory '/ | ||
+ | gcc -g -O2 -DHAVE_CONFIG_H -DNSCORE | ||
+ | gcc -g -O2 -DHAVE_CONFIG_H -DNSCORE | ||
+ | gcc -g -O2 -DHAVE_CONFIG_H -DNSCORE | ||
+ | gcc -g -O2 -DHAVE_CONFIG_H -DNSCORE -o npcd npcd.c utils.o config.o logging.o -lpthread | ||
+ | gcc -fPIC -g -O2 -DHAVE_CONFIG_H -DNSCORE -o npcdmod.o npcdmod.c -shared | ||
+ | make[1]: Leaving directory '/ | ||
+ | cd ./share && make | ||
+ | make[1]: Entering directory '/ | ||
+ | make[1]: Nothing to be done for ' | ||
+ | make[1]: Leaving directory '/ | ||
+ | cd ./scripts && make | ||
+ | make[1]: Entering directory '/ | ||
+ | make[1]: Nothing to be done for ' | ||
+ | make[1]: Leaving directory '/ | ||
+ | chmod a+r ./ | ||
+ | |||
+ | *** Compile finished *** | ||
+ | |||
+ | make install | ||
+ | - This installs the main program and HTML files | ||
+ | |||
+ | make fullinstall | ||
+ | - This installs the main program, runlevel scripts, config and HTML files | ||
+ | |||
+ | Enjoy. | ||
+ | |||
+ | # on va faire simple : | ||
+ | make fullinstall | ||
+ | [..] | ||
+ | </ | ||
+ | |||
+ | Seulement voilà il faut le réintégrer au bousin, donc corriger quelques trucs : | ||
+ | * le fichier de conf d' | ||
+ | <code bash> | ||
+ | mv / | ||
+ | ln -s / | ||
+ | </ | ||
+ | NB : on aurait pu utiliser les commandes toutes faites d' | ||
+ | |||
+ | * dans ce même fichier, le chemin du fichier de mots de passe (htpasswd) n'est pas correct, il faut le corriger : | ||
+ | <code bash> | ||
+ | vi / | ||
+ | # | ||
+ | AuthUserFile / | ||
+ | </ | ||
+ | |||
+ | * dans le cadre de l' | ||
+ | <code bash> | ||
+ | vi / | ||
+ | define command{ | ||
+ | command_name | ||
+ | # | ||
+ | command_line | ||
+ | } | ||
+ | |||
+ | define command{ | ||
+ | command_name | ||
+ | # | ||
+ | command_line | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * du au changement de path, le chemin des templates à été modifié et pnp ne retrouve plus ces petits ; il faut donc déplacer les templates persos de l' | ||
+ | <code bash> | ||
+ | mv / | ||
+ | </ | ||
+ | |||
+ | * pour une raison qui m'est inconnue, le plugin **check_snmp** (quand utilisé avec l' | ||
+ | <code bash> | ||
+ | mkdir / | ||
+ | chown nagios / | ||
+ | </ | ||
+ | |||
+ | * quand on passe la souris sur les icônes, les courbes ne s' | ||
+ | <code bash> | ||
+ | updatedb | ||
+ | locate status-header.ssi | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | |||
+ | // on copie donc status-header.ssi à la place du symlink " | ||
+ | rm / | ||
+ | cp / | ||
+ | chmod o+r / | ||
+ | </ | ||
+ | |||
+ | * TODO : la prochaine fois, ne pas oublier de restaurer les bases RRD pour ne pas perdre tout l' | ||
+ | |||
===== Liens ===== | ===== Liens ===== | ||
* http:// | * http:// |
informatique/logiciels/nagios.txt · Last modified: 2021/01/15 15:47 by pteu