Emmanuel Halbwachs (Emmanuel.Halbwachs@lpn.cnrs.fr )
Journées Mathrice 18-20 octobre 2005, Paris, IHP
Dans la mise en oeuvre de Nagios, la partie la plus consommatrice
en temps est la compréhension de la configuration. Le but ici est
de fournir des exemples qui -je l'espère- permettent d'avoir
rapidement une installation fonctionnelle de Nagios et ainsi de se
faire une opinion sur l'outil (adoption ou cat >
/dev/null
).
Soit A la machine superviseuse, B la machine supervisée.
Pour ce qui est facilement observable à distance :
Pour ce qui n'est pas facilement observable à distance sur B, la méthode générique de Nagios est :
Sinon, il y a aussi la possibilité d'utiliser un autre greffon
spécial pour faire les observations via SSH :
check_by_ssh
.
Soit l'architecture réseau suivante (figure 1) :
Figure 1 : architecture du réseau pour le cas d'école
Un labo (domaine labo.fr) qui comporte un serveur (atlas) et la station de supervision (super), interconnectés par un commutateur.
Le labo est connecté via un routeur (routeur1
) à un
CRI d'université (domaine univ-x.fr
) qui administre
un serveur DNS (ns
) et un serveur de courriel
(mailhost
).
L'ensemble est connecté à l'Internet. On voudra superviser la connectivité à quelques serveurs web : Google, FreeBSD, etc. (l'intérêt sera d'illustrer quelques capacités cosmétiques de Nagios).
Comme on aura besoin de configurer Nagios avec les adresses IP (et pas les noms, pour ne pas dépendre de la disponibilité du DNS)
Nom | adresse IP |
---|---|
commut1.labo.fr | 192.168.10.1 |
serveur.labo.fr | 192.168.1.2 |
super.labo.fr | 192.168.1.3 |
routeur1.univ-x.fr | 10.0.0.1 |
ns.univ-x.fr | 10.0.0.2 |
mailhost.univ-x.fr | 10.0.0.3 |
Elle n'est pas abordée ici. :-)
Les sources se téléchargent sur le site de Nagios (http://www.nagios.org/download/ ), mais on trouve des binaires précompilés pour la plupart des OS (cf. la bibliographie).
Le développement de Nagios est séparé en deux projets :
NRPE est aussi un projet séparé. Tous ces projets sont hébergés chez SourceForge.net.
Tout au plus, voici les commandes qui permettent l'installation des paquets binaires sur un système Debian (toute contribution pour l'installation sur Red Hat/Fedora/Mandriva, FreeBSD, Solaris, etc. chaleureusement bienvenue) :
Sur l'hôte de supervision (super dans notre exemple), on installe Nagios avec une base de données texte, les greffons de base et le greffon particulier qui permet d'interroger un serveur NRPE :
aptitude -R install nagios-text aptitude -R install nagios-plugins aptitude -R install nagios-nrpe-plugin
Sur un hôte à superviser (atlas dans notre exemple), on installe le serveur NRPE et les greffons de base :
aptitude -R install nagios-nrpe-server aptitude -R install nagios-plugins
Il nous manque encore les logos de base pour l'enrichissement cosmétique de la CGI. On télécharge une archive tar gzippée que l'on installe dans le répertoire ad hoc :
http://www.nagiosexchange.org/Image_Packs.75.0.html -> Base
Images -> imagepak-base.tar.tar que l'on sauve dans
/tmp
.
# cd /usr/share/nagios/htdocs/images/logos/
# tar xzvf /tmp/imagepak-base.tar.tar
# chown -R root.root base
Il est utile d'avoir une idée d'où se trouvent les différents fichiers de Nagios. Avec le standard FHS d'une installation Debian, nous avons ceci (à adapter en fonction de votre installation) :
Le démon :
/usr/sbin/nagios
Les CGI pour l'interface web :
/usr/lib/cgi-bin/
Les greffons :
/usr/lib/nagios/plugins/
Les fichiers de configuration pour Nagios et NRPE :
/etc/nagios/
Les fichiers de configuration pour les greffons :
/etc/nagios-plugins/config/
Les logs et autres données à stocker :
/var/log/nagios/
/var/cache/nagios/
Choix des auteurs de Nagios : éclater le gros fichier monolithique
/etc/nagios/nagios.conf
en plusieurs fichiers
thématiques :
$ grep cfg_ /etc/nagios/nagios.cfg
cfg_file=/etc/nagios/checkcommands.cfg
cfg_dir=/etc/nagios-plugins/config/
cfg_file=/etc/nagios/misccommands.cfg
cfg_file=/etc/nagios/contactgroups.cfg
cfg_file=/etc/nagios/contacts.cfg
cfg_file=/etc/nagios/dependencies.cfg
cfg_file=/etc/nagios/escalations.cfg
cfg_file=/etc/nagios/hostgroups.cfg
cfg_file=/etc/nagios/hosts.cfg
cfg_file=/etc/nagios/services.cfg
cfg_file=/etc/nagios/timeperiods.cfg
/etc/nagios/cgi.cfg
/etc/nagios/apache.conf
/etc/nagios/htpasswd.users
/etc/nagios/nrpe.cfg
/etc/nagios/nrpe_local.cfg
/etc/nagios-plugins/config/*.cfg
define objet {
attribut1 valeur1
attribut2 valeur2
attribut3 valeur3
}
define objet {
name objet-generique
register 0
attribut1 valeur1
attribut2 valeur2
attribut3 valeur3
}
define objet {
name objet1
use objet-generique
register 0
attribut2 valeur2
attribut4 valeur4
}
Un objet "patron" est caractérisé par register 0
(ne pas enregistrer cet objet). L'objet objet1
utilise objet-generique
et donc hérite des
attributs attribut1
, attribut2
et
attribut3
. L'attribut attribut2
est
surchargé (écrasé) et on ajoute un nouvel attribut
attribut4
.
Sauvegarder les fichiers de configuration d'origine afin de les
avoir comme référence (par exemple dans un répertoire
/etc/nagios/orig
).
Débarassons-nous tout de suite des fichiers que l'on n'a pas besoin de modifier dans l'immédiat (ce sera pour plus tard pour affiner la configuration si besoin) :
/etc/nagios/timeperiods.cfg
: définition de
périodes du genre "24x7", "workhours". Extrait :
# '24x7' timeperiod definition
define timeperiod {
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
/etc/nagios/misccommands.cfg
: définition de
commandes de notification, comme "notify-by-email",
"notify-by-epager". Extrait :
# 'notify-by-email' command definition
define command {
command_name notify-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\n
Notification Type: $NOTIFICATIONTYPE$\n\n
Service: $SERVICEDESC$\n
Host: $HOSTALIAS$\n
Address: $HOSTADDRESS$\n
State: $SERVICESTATE$\n\n
Date/Time: $DATETIME$\n\n
Additional Info:\n\n$OUTPUT$" |
/usr/bin/mail -s
"** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **"
$CONTACTEMAIL$
}
NB : la ligne de commande a été fractionnée sur plusieurs lignes pour une meilleure lisibilité, mais dans le fichier cela doit être une seule ligne.
Nous n'utilisons pas ici les escalades de notification ni les dépendances de services et d'hôte : on laisse les fichiers vides (tout commenter ou détruire) :
/etc/nagios/escalations.cfg
/etc/nagios/dependencies.cfg
Fichier de configuration principal
/etc/nagios/nagios.cfg
:
enable_flap_detection=1
Définissons un contact (une personne à alerter) dans
/etc/nagios/contacts.cfg
:
define contact {
contact_name eh
alias Emmanuel Halbwachs
host_notification_period 24x7
service_notification_period 24x7
host_notification_options d,u,r
service_notification_options w,u,c,r
host_notification_commands host-notify-by-email
service_notification_commands notify-by-email
email Emmanuel.Halbwachs@lpn.cnrs.fr
}
Les périodes et commandes de notifications (24x7
,
notify-by-email
) ont été définies dans les fichiers
/etc/nagios/timeperiods.cfg
et
/etc/nagios/misccommands.cfg
.
Options de notifications : on énumère les états pour lesquels on veut recevoir une notification. Possibilités :
Définissons au moins un groupe de contact (c'est obligatoire) dans
le fichier /etc/nagios/contacts.cfg
:
define contactgroup {
contactgroup_name labo-admins
alias ASR du labo
members eh
}
S'il y a plein d'administrateurs ou si vous voulez déléguer des
tâches d'administration à des correspondants ou des utilisateurs
avancés, il est intéressant de définir des groupes comme par
exemple "printers-admins
".
Il faut maintenant définir les hôtes que l'on va superviser dans
le fichier /etc/nagios/hosts.cfg
:
# Generic host definition template
define host {
name generic-host
register 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
check_command check-host-alive
max_check_attempts 10
notification_interval 60
notification_period 24x7
notification_options d,u,r
}
# Definition du materiel reseau du labo
define host {
host_name commut1
use generic-host
alias Commutateur labo no 1
address 192.168.10.1
}
# Definition des hotes du labo
define host {
host_name super
use generic-host
alias hote Nagios
address 192.168.1.3
}
define host {
host_name atlas
use generic-host
alias Serveur labo
address 192.168.1.2
parents commut1
}
# Definition des hotes du CRI
define host{
host_name routeur1
use generic-host
alias routeur campus
address 10.0.0.1
parents commut1
}
define host {
host_name ns
use generic-host
alias DNS campus
address 10.0.0.2
parents routeur1
}
define host {
host_name mailhost
use generic-host
alias serveur courriel campus
address 10.0.0.3
parents routeur1
}
# Definition de quelques serveurs web de l'Internet
# Web Google
define host {
host_name www-google
use generic-host
alias serveur web Google
address www.google.com
parents routeur1
}
# Web FreeBSD
define host {
host_name www-freebsd
use generic-host
alias serveur web FreeBSD
address www.freebsd.org
parents routeur1
}
# Web Sun
define host {
host_name www-sun
use generic-host
alias serveur web Sun
address www.sun.com
parents routeur1
}
# Web Apple
define host {
host_name www-apple
use generic-host
alias serveur web Apple
address www.apple.com
parents routeur1
}
Quelques commentaires :
ns.univ-x.fr
est
routeur1.univ-x.fr
.
Une fois les hôtes définis, il faut les regrouper pour former des
groupes d'hôtes. On le fait dans le fichier
/etc/nagios/hostgroups.cfg
:
define hostgroup {
hostgroup_name reseau-labo
alias Materiel reseau labo
contact_groups labo-admins
members commut1
}
define hostgroup {
hostgroup_name serveurs-labo
alias Serveurs labo
contact_groups labo-admins
members super, atlas
}
define hostgroup {
hostgroup_name reseau-campus
alias Materiel reseau campus
contact_groups labo-admins
members routeur1
}
define hostgroup {
hostgroup_name serveurs-campus
alias Serveurs campus
contact_groups labo-admins
members ns, mailhost
}
define hostgroup {
hostgroup_name web-internet
alias Serveurs web sur l'Internet
contact_groups labo-admins
members www-google, www-freebsd, www-sun, www-apple
}
On peut alors définir les services que l'on va superviser sur
chaque hôte dans le fichier /etc/nagios/services.cfg
.
C'est le fichier le plus fourni de la configuration :
# Generic service definition template
define service {
name generic-service
register 0
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 3
retry_check_interval 1
contact_groups labo-admins
notification_interval 240
notification_period 24x7
notification_options c,r
}
define service {
host_name *
use generic-service
service_description ping
check_command check_ping!300.0,20%!500.0,60%
}
define service {
host_name mailhost
use generic-service
service_description SMTP
check_command check_smtp
}
define service {
host_name ns
use generic-service
service_description DNS
check_command check_dns
}
define service {
hostgroup_name web-internet
use generic-service
service_description HTTP
check_command check_http
}
Notez l'utilisation de commandes de vérification du genre
check_dns
, check_http
. Nous verrons plus
loin comment ces commandes sont définies. Notez aussi qu'il est
possible de passer des arguments à une macro, séparés par des
"!
" :
check_ping!300.0,20%!500.0,60%
Notez aussi qu'il est possible d'appliquer une vérification à un groupe d'hôtes.
Pas grand'chose à toucher au fichier fourni avec la distribution. Si on veut ajouter un profil d'utilisateur :
htpasswd
# htpasswd /etc/nagios/htpasswd.users eh
New password:
Re-type new password:
Adding password for user eh
authorized_for_*
ad hoc
Pour la touche finale cosmétique, facultative mais bien pratique
pour y voir clair, il est possible de définir des "informations
étendues" sur les hôtes. Il s'agit de logos graphiques et d'URL de
pages web maisons. Pour cela, on crée un fichier
hostextinfo.cfg
:
# Patron pour Debian GNU/Linux
define hostextinfo{
name generic-debian
register 0
icon_image_alt PC Debian GNU/Linux
icon_image base/debian.png
statusmap_image base/debian.gd2
vrml_image base/debian.png
}
# Patron pour Sun Solaris
define hostextinfo{
name generic-sun
register 0
icon_image_alt Sun Solaris
icon_image base/sun40.png
statusmap_image base/sun40.gd2
vrml_image base/sun40.png
}
# Patron pour FreeBSD
define hostextinfo{
name generic-freebsd
register 0
icon_image_alt PC FreeBSD
icon_image base/freebsd40.png
statusmap_image base/freebsd40.gd2
vrml_image base/freebsd40.png
}
# Patron pour Apple
define hostextinfo{
name generic-apple
register 0
icon_image_alt Mac
icon_image base/apple.png
statusmap_image base/apple.gd2
vrml_image base/apple.png
}
# Patron pour routeur
define hostextinfo{
name generic-router
register 0
icon_image_alt Commutateur
icon_image base/router40.png
statusmap_image base/router40.gd2
vrml_image base/router40.png
}
# Patron pour commutateur
define hostextinfo{
name generic-switch
register 0
icon_image_alt Commutateur
icon_image base/switch40.png
statusmap_image base/switch40.gd2
vrml_image base/switch40.png
}
define hostextinfo{
host_name routeur1
use generic-router
}
define hostextinfo{
host_name commut1
use generic-switch
}
define hostextinfo{
host_name atlas
use generic-debian
notes_url http://www.labo.fr/serveurs/atlas.html
}
define hostextinfo{
host_name super
use generic-debian
}
# Serveur web Sun
define hostextinfo{
host_name www-sun
use generic-sun
}
# Serveur web FreeBSD
define hostextinfo{
host_name www-freebsd
use generic-freebsd
}
# Serveur web Apple
define hostextinfo{
host_name www-apple
use generic-apple
}
Il faut ensuite inclure ce fichier dans le fichier de
configuration de la CGI. On rajoute une ligne dans
/etc/nagios/cgi.cfg
:
xedtemplate_config_file=/etc/nagios/hostextinfo.cfg
Les greffons sont des programmes, binaires ou scripts, dédiés à
une vérification. Dans le cas de cette étude (OS Debian), les
greffons se trouvent dans le répertoire
/usr/lib/nagios/plugins/
. À titre indicatif, voici la
liste des greffons présents dans la distribution "Nagios plugins"
version 1.4 :
$ cd /usr/lib/nagios/plugins/
$ ls check*
check_breeze check_game check_load check_oracle check_snmp
check_by_ssh check_hpjd check_log check_overcr check_spop
check_dhcp check_http check_mailq check_pgsql check_ssh
check_dig check_icmp check_mrtg check_ping check_swap
check_disk check_ifoperstatus check_mrtgtraf check_pop check_tcp
check_disk_smb check_ifstatus check_mysql check_procs check_time
check_dns check_imap check_nagios check_radius check_udp
check_dummy check-imap check_nntp check_real check_udp2
check_file_age check_ircd check_nntps check_rpc check_ups
check_flexlm check_jabber check_nt check_sensors check_users
check_fping check_ldap check_ntp check_simap check_wave
check_ftp check_ldaps check_nwstat check_smtp
La norme veut que l'usage de chaque greffon soit commenté soit
commenté par le paramètre -h
. Exemple :
Copyright (c) 1999-2004 Nagios Plugin Development Team
Ce plugin vérifie la place utilisé sur un système de fichier monté
et génère une alerte si la place disponible est plus petite qu'une des valeurs fournies.
Usage: check_disk -w limit -c limit [-p path | -x device] [-t timeout] [-m] [-e]
[-v] [-q]
Options:
-h, --help
Print detailed help screen
-V, --version
Print version information
-w, --warning=INTEGER
sort avec un statut ATTENTION si moins de x INTEGER unités de disques sont libres
-w, --warning=PERCENT%
sort avec un statut ATTENTION si moins de x PERCENT de disque sont libres
-c, --critical=INTEGER
sort avec un statut CRITIQUE si moins de x INTEGER unités de disques sont libres
-c, --critical=PERCENT%
sort avec un statut CRITIQUE si moins de x PERCENT de disques sont libres
-C, --clear
Remet à zéro
-u, --units=STRING
Choisissez bytes, kB, MB, GB, TB (défaut: MB)
-k, --kilobytes
Identique à '--units kB'
-m, --megabytes
Identique à '--units MB'
-l, --local
Vérifie seulement les systèmes de fichiers locaux
-p, --path=PATH, --partition=PARTITION
Chemin ou partition (peut être répète)
-x, --exclude_device=PATH
Ignorer le périphérique (marche seulement si -p est spécifié)
-X, --exclude-type=TYPE
Ignorer tout les types de systèmes de fichier spécifiés (peut être répété)
-M, --mountpoint
Affiche seulement les points de montage au lieu de la partition
-e, --errors-only
Affiche seulement les périphériques/points de montage avec des erreurs
-w, --warning=DOUBLE
Response time to result in warning status (seconds)
-c, --critical=DOUBLE
Response time to result in critical status (seconds)
-t, --timeout=INTEGER
Seconds before connection times out (default: 10)
-v, --verbose
Show details for command-line debugging (Nagios may truncate output)
Exemples:
check_disk -w 10% -c 5% -p /tmp -p /var -C -w 100000 -c 50000 -p /
Vérifie /tmp et /var à 10%,5% et / à 100MB, 50MB
Send email to nagios-users@lists.sourceforge.net if you have questions
regarding use of this software. To submit patches or suggest improvements,
send email to nagiosplug-devel@lists.sourceforge.net
]]>
Avant d'utiliser un greffon dans Nagios, je conseille de
l'utiliser en ligne de commande pour se familiariser avec les
paramètres et pour raffiner l'information que l'on veut en
retirer. Exemple d'utilisation de check_disk
:
$ /usr/lib/nagios/plugins/check_disk -w 10% -c 5%
DISK OK - free space: / 462 MB (52%); /dev/shm 498 MB (100%);
/home 5107 MB (54%); /usr 716 MB (25%); /var 708 MB (79%);
/dev 9 MB (92%);| /=434MB;806;851;0;896 /dev/shm=0MB;448;473;0;498
/home=4282MB;8449;8918;0;9388 /usr=2103MB;2536;2677;0;2818
/var=188MB;806;851;0;896 /dev=1MB;9;9;0;10
$ echo $?
0
Quelques commentaires :
On peut vouloir afficher le résultat en Go plutôt qu'en Mo :
$ /usr/lib/nagios/plugins/check_disk -w 10% -c 5% -u GB
DISK OK - free space: / 0 GB (52%); /dev/shm 0 GB (100%);
/home 5 GB (54%); /usr 1 GB (25%); /var 1 GB (79%); /dev 0 GB (92%);|
/=0GB;0;0;0;0 /dev/shm=0GB;0;0;0;0 /home=5GB;8;8;0;9 /usr=2GB;1;1;0;2
/var=0GB;0;0;0;0 /dev=0GB;0;0;0;0
On peut aussi jouer sur les seuils pour s'assurer que l'on a bien compris le sens (espace libre ? espace occupé ?) ou que la doc correspond à la réalité (!) :
$ /usr/lib/nagios/plugins/check_disk -w 30% -c 5% -u GB
DISK WARNING - free space: / 0 GB (52%); /dev/shm 0 GB (100%);
/home 5 GB (54%); /usr 1 GB (25%); /var 1 GB (79%); /dev 0 GB (92%);|
/=0GB;0;0;0;0 /dev/shm=0GB;0;0;0;0 /home=5GB;6;8;0;9 /usr=2GB;1;1;0;2
/var=0GB;0;0;0;0 /dev=0GB;0;0;0;0
$ echo $?
1
Maintenant que l'on a vu l'utilisation des greffons en direct,
voyons comment sont définis les commandes. Pour cela, il faut
aller voir dans le répertoire
/etc/nagios-plugins/config
. En effet, ce répertoire
est inclus dans le fichier de configuration globale
/etc/nagios/nagios.cfg
:
$ cd /etc/nagios-plugins/config
$ ls
breeze.cfg games.cfg load.cfg nmap.cfg radius.cfg telnet.cfg
disk.cfg hppjd.cfg mail.cfg nt.cfg real.cfg users.cfg
dns.cfg http.cfg mrtg.cfg ntp.cfg rpc-nfs.cfg vsz.cfg
dummy.cfg ifstatus.cfg mysql.cfg pgsql.cfg snmp.cfg
flexlm.cfg imap.cfg netware.cfg ping.cfg ssh.cfg
ftp.cfg ldap.cfg news.cfg procs.cfg tcp_udp.cfg
Jetons un oeil dans disk.cfg
:
$ cat disk.cfg
# 'check_disk' command definition
define command{
command_name check_disk
command_line /usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}
# 'ssh_disk' command definition
define command{
command_name ssh_disk
command_line /usr/lib/nagios/plugins/check_by_ssh -H $HOSTADDRESS$ -C '/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$'
}
On voit que la commande check_disk
utilise les
macros Nagios (encadrées par des $) et qu'elle est définie pour
prendre 3 arguments : seuil d'avertissement, seuil critique et
partition.
Supposons que l'on veuille définir une commande maison qui
vérifie en une fois l'espace libre de toutes les partitions
d'une machine. Dans la logique de répartition des fichiers de
configuration, il faut le faire dans
/etc/nagios/checkcommands.cfg
:
define command{
command_name check_disk_all
command_line /usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -u GB
}
On peut alors utiliser cette commande dans
/etc/nagios/services.cfg
:
define service {
host_name super
use generic-service
service_description espace disque
check_command check_disk_all!20%!10%
}
On a installé NRPE sur la machine à superviser. Le fichier de
configuration est /etc/nagios/nrpe.cfg
et est assez
bref :
server_port=5666
allowed_hosts=127.0.0.1
nrpe_user=nagios
nrpe_group=nagios
dont_blame_nrpe=0
debug=0
command_timeout=60
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_disk1]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hda1
command[check_disk2]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hdb1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
include=/etc/nagios/nrpe_local.cfg
Il y a des définitions de commandes par défaut ainsi que
l'inclusion du fichier /etc/nagios/nrpe_local.cfg
qui est l'endroit pour les définition de commandes maison.
Il faut un tout petit peu l'adapter à notre situation pour permettre à la station de supervision de venir se connecter :
allowed_hosts=192.168.1.3
Sur la station de supervision, on interroge le NRPE de la
machine à superviser en utilisant le greffon spécial
check_nrpe
en lui donnant en paramètre la commande
de vérification (locale à la machine supervisée) à
effectuer. Cela se définit avec les autres services dans
/etc/nagios/services.cfg
:
define service {
host_name atlas
use generic-service
service_description charge CPU
check_command check_nrpe!check_load
}
/etc/init.d/nagios start|stop|restart
n'est pas toujours d'une fiabilité sans faille. Il m'est arrivé
d'avoir plusieurs démons nagios qui tournaient et qui mettaient
à jour la même interface CGI. De quoi devenir fou avant de
comprendre. Solution :
/etc/init.d/nagios stop; pkill nagios; /etc/init.d/nagios start
Implémentation du cas d'école présenté dans ce document, la station de supervision étant mon portable de présentation.
Nagios tel qu'il fonctionne actuellement au LPN. Supervision d'un routeur, 13 commutateurs, une vingtaine de serveurs et environ 200 services.