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 [2016/04/01 07:34] – [Exemple 3] pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{tag> | + | ======Nagios====== |
- | + | ||
- | ====== Nagios ====== | + | |
Nagios est un programme de supervision libre composé d'un scheduler (nagios-core), | Nagios est un programme de supervision libre composé d'un scheduler (nagios-core), | ||
- | =====Généralités===== | + | ======Généralités====== |
Le principe de base est simple : on configure différents plugins pour qu'ils interrogent certains équipements ; et ces plugins sont ordonnancés par le moteur Nagios. Comme tous les processus, les plugins retournent : | Le principe de base est simple : on configure différents plugins pour qu'ils interrogent certains équipements ; et ces plugins sont ordonnancés par le moteur Nagios. Comme tous les processus, les plugins retournent : | ||
Line 15: | Line 13: | ||
- | =====Installation | + | ======Installation====== |
+ | |||
+ | =====sous | ||
Installation classique sous Ubuntu avec résolution automatique des dépendances : | Installation classique sous Ubuntu avec résolution automatique des dépendances : | ||
Line 35: | Line 35: | ||
* utiliser l' | * utiliser l' | ||
... alors il faut le compiler à partir des sources. | ... alors il faut le compiler à partir des sources. | ||
+ | |||
+ | =====sous Ubuntu 9.10 (OLD)===== | ||
+ | |||
+ | Sous Ubuntu (9.10) il y a(vait) 2 problèmes avec l' | ||
+ | * problème avec le plugin **check_ssh** : en fait il n'y a pas de serveur SSH installé sous Ubuntu par défaut. Pour l' | ||
+ | * problème de droit d' | ||
+ | |||
+ | Pour ignorer le fichier qui pose ce problème de droit d' | ||
+ | <code bash> | ||
+ | sudo vi / | ||
+ | # ' | ||
+ | define command{ | ||
+ | | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Puis il faut recharger la conf dans Nagios : | ||
+ | <code bash> | ||
+ | sudo service nagios3 stop | ||
+ | * Stopping nagios3 monitoring daemon nagios3 | ||
+ | |||
+ | sudo service nagios3 start [ OK ] | ||
+ | * Starting nagios3 monitoring daemon nagios3 | ||
+ | kill: 1: No such process | ||
+ | </ | ||
+ | |||
+ | //source : https:// | ||
Line 196: | Line 227: | ||
- | ===== Configuration ===== | + | ======Configuration====== |
- | Les fichiers principaux se trouvent dans ''/ | + | Les fichiers principaux se trouvent dans ''/ |
- | ==== Contacts et groupes de contacts ==== | + | =====Contacts et groupes de contacts===== |
On renseigne les personnes de contact (qui seront notifiées lors d'un problème) dans le fichier ''/ | On renseigne les personnes de contact (qui seront notifiées lors d'un problème) dans le fichier ''/ | ||
Line 239: | Line 270: | ||
</ | </ | ||
- | ==== Droits des contacts ==== | + | =====Droits des contacts===== |
Pour attribuer des droits à un utilisateur, | Pour attribuer des droits à un utilisateur, | ||
Line 246: | Line 277: | ||
</ | </ | ||
- | ==== Périodes de temps ==== | + | =====Périodes de temps===== |
On peut consulter ou définir des périodes de temps dans le fichier ''/ | On peut consulter ou définir des périodes de temps dans le fichier ''/ | ||
Line 263: | Line 294: | ||
</ | </ | ||
- | ==== Déclaration d'un host ==== | + | =====Déclaration d'un host===== |
Ça se passe dans le fichier **/ | Ça se passe dans le fichier **/ | ||
Line 277: | Line 308: | ||
Cet host utilise le template generic-host qui définit tous les paramètres nécessaires par défaut. On peut surcharger l' | Cet host utilise le template generic-host qui définit tous les paramètres nécessaires par défaut. On peut surcharger l' | ||
- | ==== Création de hostgroup ==== | + | =====Création de hostgroup===== |
On doit mettre chaque host dans un hostgroup, défini dans le fichier **/ | On doit mettre chaque host dans un hostgroup, défini dans le fichier **/ | ||
Line 289: | Line 320: | ||
</ | </ | ||
- | ==== Création d'un service ==== | + | =====Création d'un service===== |
Ils sont déclarés dans le fichier **/ | Ils sont déclarés dans le fichier **/ | ||
Line 311: | Line 342: | ||
* '' | * '' | ||
- | ===== Vérifications ===== | + | =====Vérifications===== |
Pour vérifier la validité de la configuration de Nagios sans relancer le démon : | Pour vérifier la validité de la configuration de Nagios sans relancer le démon : | ||
Line 320: | Line 351: | ||
- | =====Installation de Nagvis===== | + | ======Installation de Nagvis====== |
Nagvis est un addon pour Nagios qui permet d' | Nagvis est un addon pour Nagios qui permet d' | ||
Line 326: | Line 357: | ||
- | ====MySQL==== | + | =====MySQL===== |
MySQL est un prérequis de notre installation de NDOUtils. | MySQL est un prérequis de notre installation de NDOUtils. | ||
Line 346: | Line 377: | ||
</ | </ | ||
- | ====NDOUtils==== | + | =====NDOUtils===== |
// | // | ||
Line 427: | Line 458: | ||
</ | </ | ||
- | ====Graphviz==== | + | =====Graphviz===== |
[[http:// | [[http:// | ||
Line 507: | Line 538: | ||
</ | </ | ||
- | ====Nagvis==== | + | |
+ | =====Nagvis===== | ||
Nagvis est un scripts PHP qui récupère les états Nagios pour générer une carte interactive. | Nagvis est un scripts PHP qui récupère les états Nagios pour générer une carte interactive. | ||
Line 577: | Line 609: | ||
- | ====Exemple de configuration | + | ====Exemple de configuration==== |
===Map=== | ===Map=== | ||
Line 607: | Line 639: | ||
</ | </ | ||
- | =====Installation de l' | + | |
+ | ======Installation de l' | ||
[[http:// | [[http:// | ||
Line 613: | Line 646: | ||
Son fonctionnement est simple : le serveur distant fait tourner le démon NRPE qui écoute sur le port tcp/5666 (par défaut). Le serveur nagios émet une requête vers ce serveur distant grâce au plugin **check_nrpe** ; il lui demande d' | Son fonctionnement est simple : le serveur distant fait tourner le démon NRPE qui écoute sur le port tcp/5666 (par défaut). Le serveur nagios émet une requête vers ce serveur distant grâce au plugin **check_nrpe** ; il lui demande d' | ||
- | ====Sur le serveur Nagios==== | + | =====Sur le serveur Nagios===== |
- | ===Prérequis=== | + | ====Prérequis==== |
NRPE utilise par défaut SSL pour échanger les données ; pour le compiler on doit installer le support SSL : | NRPE utilise par défaut SSL pour échanger les données ; pour le compiler on doit installer le support SSL : | ||
<code bash> | <code bash> | ||
Line 621: | Line 654: | ||
</ | </ | ||
- | ===Compilation et installation=== | + | ====Compilation et installation==== |
L' | L' | ||
<code bash> | <code bash> | ||
Line 638: | Line 671: | ||
</ | </ | ||
- | ===Vérification=== | + | ====Vérification==== |
Le protocole NRPE utilise par défaut le port tcp/5666 qu'il faudra donc ouvrir sur les serveurs et les éventuels pare-feux intermédiaires. | Le protocole NRPE utilise par défaut le port tcp/5666 qu'il faudra donc ouvrir sur les serveurs et les éventuels pare-feux intermédiaires. | ||
<code bash> | <code bash> | ||
Line 645: | Line 678: | ||
- | ====Sur le serveur distant==== | + | =====Sur le serveur distant===== |
(Pour les prérequis, voir partie précédente : //sur le serveur nagios//) | (Pour les prérequis, voir partie précédente : //sur le serveur nagios//) | ||
Line 655: | Line 688: | ||
</ | </ | ||
- | ===Installation des nagios-plugins=== | + | ====Installation des nagios-plugins==== |
Installer les nagios-plugins qui seront lancés sur le serveur distant (cf partie plus haut). | Installer les nagios-plugins qui seront lancés sur le serveur distant (cf partie plus haut). | ||
- | ===Compilation et installation=== | + | ====Compilation et installation==== |
Même chose que sur le serveur nagios : | Même chose que sur le serveur nagios : | ||
<code bash> | <code bash> | ||
Line 670: | Line 703: | ||
</ | </ | ||
- | ===Configuration=== | + | ====Configuration==== |
Comme pour le serveur nagios, on s' | Comme pour le serveur nagios, on s' | ||
<code bash> | <code bash> | ||
Line 719: | Line 752: | ||
- | ====Configuration==== | + | =====Configuration===== |
Pour vérifier la connectivité NRPE entre les 2 serveurs, lancer sur le serveur nagios : | Pour vérifier la connectivité NRPE entre les 2 serveurs, lancer sur le serveur nagios : | ||
Line 759: | Line 792: | ||
- | =====Ajout de plugins===== | + | ======Ajout de plugins====== |
- | Les plugins sont des programmes/ | + | Les plugins sont des programmes/ |
- | ====Check_multi==== | + | =====Check_multi===== |
[[http:// | [[http:// | ||
Line 770: | Line 803: | ||
- | ===Compilation=== | + | ====Compilation==== |
<note important> | <note important> | ||
Il est conseillé (par la doc officielle) de changer les buffers MAX_PLUGIN_OUTPUT_LENGTH et MAX_INPUT_BUFFER ; ceci dit je n'en ai pas vu l' | Il est conseillé (par la doc officielle) de changer les buffers MAX_PLUGIN_OUTPUT_LENGTH et MAX_INPUT_BUFFER ; ceci dit je n'en ai pas vu l' | ||
Line 853: | Line 886: | ||
| | ||
| | ||
- | make: *** [test] Error 2</ | + | make: *** [test] Error 2 |
+ | </ | ||
Le '' | Le '' | ||
Line 873: | Line 907: | ||
Le plugin fonctionne tout de même, alors on poursuit. | Le plugin fonctionne tout de même, alors on poursuit. | ||
- | ===Installation=== | + | ====Installation==== |
<code bash> | <code bash> | ||
Line 881: | Line 915: | ||
Le plugin s' | Le plugin s' | ||
- | ===Configuration=== | + | ====Configuration==== |
Le concept est le suivant : on créer un fichier **.cmd** correspondant, | Le concept est le suivant : on créer un fichier **.cmd** correspondant, | ||
* les état nagios à récupérer (directive **statusdat**) ou les commandes à lancer (directive **command**) | * les état nagios à récupérer (directive **statusdat**) ou les commandes à lancer (directive **command**) | ||
Line 887: | Line 922: | ||
Ce fichier sera appelé par un service déclaré dans Nagios, sous la forme : '' | Ce fichier sera appelé par un service déclaré dans Nagios, sous la forme : '' | ||
- | ==Création de http.cmd== | + | ===Création de http.cmd=== |
Les états de Nagios sont récupérés via le fichier ''< | Les états de Nagios sont récupérés via le fichier ''< | ||
Line 934: | Line 969: | ||
* on peut utiliser les macros Nagios avec les commandes ($HOSTNAME$, | * on peut utiliser les macros Nagios avec les commandes ($HOSTNAME$, | ||
- | ==Création du service Nagios== | + | ===Création du service Nagios=== |
Dans la conf de Nagios : | Dans la conf de Nagios : | ||
Line 954: | Line 989: | ||
Pour aller plus loin je vous recommande fortement le wiki officiel : http:// | Pour aller plus loin je vous recommande fortement le wiki officiel : http:// | ||
- | ===Passage de paramètres=== | + | ====Passage de paramètres==== |
* on ne peut passer de paramètres qu' | * on ne peut passer de paramètres qu' | ||
Line 984: | Line 1019: | ||
- | =====Installation de PNP4Nagios===== | + | ======Installation de PNP4Nagios====== |
[[http:// | [[http:// | ||
Line 999: | Line 1034: | ||
<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 1078: | Line 1128: | ||
</ | </ | ||
- | ====Certains plugins ne marchent pas !==== | + | =====Certains plugins ne marchent pas !===== |
Effectivement certains plugins ne fonctionnent pas avec PNP4Nagios car ils ne génèrent pas de perfdata. Pour rappel, les perfdatas sont affichés par le plugin juste après le status, séparé par un '' | Effectivement certains plugins ne fonctionnent pas avec PNP4Nagios car ils ne génèrent pas de perfdata. Pour rappel, les perfdatas sont affichés par le plugin juste après le status, séparé par un '' | ||
Line 1142: | Line 1192: | ||
(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 et solutions===== | + | =====Créer ses templates PNP===== |
- | ====Installation | + | Un template (au sens PNP4nagios |
- | Sous Ubuntu | + | On peut choisir les couleurs, le type de graphique |
- | * problème avec le plugin **check_ssh** : en fait il n'y a pas de serveur SSH installé sous Ubuntu par défaut. Pour l' | + | |
- | * problème de droit d' | + | |
- | Pour ignorer le fichier qui pose ce problème | + | {{ : |
+ | |||
+ | Pour chaque service disposant | ||
<code bash> | <code bash> | ||
- | sudo vi /etc/nagios-plugins/config/disk.cfg | + | # avec le paquet pnp4nagios sous debian 7 : |
- | # 'check_all_disks' | + | / |
+ | /etc/pnp4nagios/ | ||
+ | / | ||
+ | |||
+ | # avec une installation à partir des sources, ils seront plutôt ici : | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Par exemple pour un service " | ||
+ | |||
+ | ====Exemple 1 : trafic in/ | ||
+ | |||
+ | Voici un exemple de " | ||
+ | * création des objets dans Nagios : | ||
+ | <code bash> | ||
+ | vi /etc/nagios3/conf.d/syno.cfg | ||
+ | |||
+ | # 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 | ||
+ | # -o est suivi par les 2 OIDs correspondant au trafic in et out de l'interface que l'on veut superviser | ||
+ | # -l permet d' | ||
+ | # -u permet de préciser l' | ||
+ | # -P précise la version de SNMP | ||
+ | # -C spécifie la communauté SNMP | ||
+ | # --rate induqe qu'il s'agit d'un compteur qui nécessite donc un calcul \ | ||
+ | # par rapport à la précédente valeur (voir plus bas pour l'explication) | ||
define command{ | define command{ | ||
- | command_name | + | |
- | #ancienne ligne | + | command_line |
- | #command_line | + | -u bytes,bytes --rate -o .1.3.6.1.2.1.31.1.1.1.6.3, |
- | #nouvelle ligne | + | |
- | command_line | + | </code> |
- | } | + | NB : le plugin **check_snmp** avec l' |
+ | * sous Debian j'ai eu '' | ||
+ | * sous centOS | ||
+ | * ça peut aussi être ''/ | ||
+ | Pour ne pas avoir d' | ||
+ | <code bash> | ||
+ | chmod 755 /usr/var && mkdir / | ||
</ | </ | ||
- | Puis il faut recharger la conf dans Nagios : | + | * On créer ensuite le template, qui permet d' |
<code bash> | <code bash> | ||
- | sudo service nagios3 stop | + | vi / |
- | * Stopping nagios3 monitoring daemon nagios3 | + | <?php |
+ | # | ||
+ | # Copyright (c) 2006-2010 Joerg Linge (http:// | ||
+ | # Plugin: check_iftraffic.pl (COUNTER) | ||
+ | # adaptation pour traffic syno | ||
- | sudo service nagios3 start | + | $opt[1] = " |
- | * Starting nagios3 monitoring daemon nagios3 | + | # |
- | kill: 1: No such process | + | $def[1] |
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | $def[1] .= " | ||
+ | |||
+ | # pour afficher le dernier check sur le graphe | ||
+ | if($this-> | ||
+ | $def[1] .= " | ||
+ | } | ||
+ | ?> | ||
</ | </ | ||
- | //source | + | Résultat : |
+ | |||
+ | {{ : | ||
+ | |||
+ | Le même, un peu plus perfectionné : | ||
+ | <code php> | ||
+ | <?php | ||
+ | # Copyright (c) 2006-2010 Joerg Linge (http://www.pnp4nagios.org) | ||
+ | # Plugin: check_snmp_int.pl (COUNTER) | ||
+ | # modif traffic reseau in/out | ||
+ | |||
+ | $unit = " | ||
+ | |||
+ | $ds_name[1] = " | ||
+ | $opt[1] = " --vertical-label $unit -b 1000 --title \" | ||
+ | $def[1] = rrd:: | ||
+ | $def[1] .= rrd:: | ||
+ | |||
+ | #$def[1] .= " | ||
+ | $def[1] .= rrd:: | ||
+ | $def[1] .= rrd:: | ||
+ | |||
+ | $def[1] .= " | ||
+ | $def[1] .= rrd:: | ||
+ | |||
+ | if($this-> | ||
+ | $def[1] .= " | ||
+ | } | ||
+ | ?> | ||
+ | |||
+ | </code> | ||
+ | ====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 | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | 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 : | ||
+ | {{ : | ||
+ | |||
+ | ====Exemple 3 : graphique adaptatif==== | ||
+ | |||
+ | Ce template va détecter automatiquement le nombre d' | ||
+ | <code bash> | ||
+ | <?php | ||
+ | $unit = " | ||
+ | |||
+ | # max : 7 entrées | ||
+ | $TAB_COLORS = array('# | ||
+ | $CPT=1; | ||
+ | |||
+ | $ds_name[$CPT] = " | ||
+ | $opt[$CPT] = " --vertical-label $unit -b 1000 --title \" | ||
+ | |||
+ | foreach ($this-> | ||
+ | |||
+ | if ($CPT == " | ||
+ | $def[1] = rrd:: | ||
+ | } | ||
+ | else { | ||
+ | $def[1] .= rrd:: | ||
+ | } | ||
+ | |||
+ | $def[1] .= " | ||
+ | $def[1] .= rrd:: | ||
+ | |||
+ | $CPT++; | ||
+ | } | ||
+ | |||
+ | if($this-> | ||
+ | $def[1] .= " | ||
+ | } | ||
+ | ?> | ||
+ | |||
+ | </ | ||
+ | |||
+ | ======Tips====== | ||
+ | |||
+ | =====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 | ||
+ | </code> | ||
- | ====Crash de la machine==== | + | =====Crash de la machine===== |
Lors d'un crash de la machine, malgré que le service nagios se soit relancé correctement, | Lors d'un crash de la machine, malgré que le service nagios se soit relancé correctement, | ||
Line 1235: | Line 1577: | ||
</ | </ | ||
- | ===== Liens ===== | + | =====Upgrade 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 | ||
+ | ./ | ||
+ | [..] | ||
+ | *** 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' | ||
+ | |||
+ | |||
+ | =====Horodatage illisibles des logs===== | ||
+ | |||
+ | Les logs Nagios sont par défaut verbeux mais l' | ||
+ | <code bash> | ||
+ | # les logs bruts | ||
+ | tail -3 / | ||
+ | [1441261778] Auto-save of retention data completed successfully. | ||
+ | [1441265378] Auto-save of retention data completed successfully. | ||
+ | [1441268978] Auto-save of retention data completed successfully. | ||
+ | |||
+ | # après convertion | ||
+ | tail -3 / | ||
+ | [Thu Sep 3 08:29:38 2015] Auto-save of retention data completed successfully. | ||
+ | [Thu Sep 3 09:29:38 2015] Auto-save of retention data completed successfully. | ||
+ | [Thu Sep 3 10:29:38 2015] Auto-save of retention data completed successfully. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ======Liens====== | ||
* http:// | * http:// |
informatique/logiciels/nagios.txt · Last modified: 2021/01/15 15:47 by pteu