Nagios par l'exemple

Jehan Procaccia S2IA INT-EVRY- jehan.procaccia@int-evry.fr

15 avril 2005

Table des matières

Résumé : Ce document est un exemple concret de mise ne place d'un serveur Nagios.

1  Installation

Le site officiel se trouve sur: http://www.nagios.org/

Nous utiliserons yum pour ce serveur de test en Fedora Core 2 .
$ yum install nagios
$ rpm -qa | grep nagios
nagios-1.2-1.1.fc2.rf

Installation des plugins (ici package légerement personnalisé INT !)
yum install nagios-plugins-1.4-3.int
Installed:  nagios-plugins 1.4-3.int.i386
Dep Installed:  perl-Digest-HMAC 1.01-12.noarch perl-Net-SNMP 5.0.1-1.1.fc2.rf.noarch \
perl-Socket6 0.18-1.1.fc2.rf.i386 perl-Crypt-DES 2.03-5.rhfc2.at.i386 perl-Digest-SHA1 2.10-1.1.fc2.rf.i386 \
fping 2.4-1.b2.1.fc2.rf.i386 perl-IO-Socket-INET6 2.51-1.1.fc2.rf.noarch

Pour aller plus loin, ajouter nrpe et ncsa (voir description plus bas ...)
$ yum install nagios-nrpe nagios-plugins-nrpe nagios-nsca
Dep Installed:  libmcrypt 2.5.7-1.1.fc2.dag.i386

2  Documentation

il est recommendé de suivre la documentation livrée avec le package installé.

file:///usr/share/nagios/docs/toc.html

ou en ligne

http://www.nagios.org/docs/

ou bien, pour un condensé pratique, lire la suite ...

3  Mise en place de l'interface Web

3.1  Scripts et pages HTML

Configuration des repertoires de scripts et des pages HTML.
[root@calaz /etc/httpd/conf.d]
$ cat nagios.conf
# For SSL-servers
ScriptAlias /nagios/cgi-bin/ /usr/lib/nagios/cgi/
<Directory /usr/lib/nagios/cgi/>
   Options ExecCGI
   SSLRequireSSL
   order deny,allow
   deny from all
   AuthType Basic
   AuthUserFile /etc/httpd/conf.d/passwd
   AuthGroupFile /etc/httpd/conf.d/group
   AuthName "nagios"
   require group nagios
   Satisfy Any
</Directory>
#
Alias /nagios/ /usr/share/nagios/
<Directory /usr/share/nagios/>
   Options None
   SSLRequireSSL
   order deny,allow
   deny from all
   AuthType Basic
   AuthUserFile /etc/httpd/conf.d/passwd
   AuthGroupFile /etc/httpd/conf.d/group
   AuthName "nagios"
   require group nagios
   Satisfy Any
</Directory>

3.2  Chargement de nagios dans apache

Le fichier ci-dessus (nagios.conf) sera par defaut inclus dans la config apache.
[root@calaz /etc/httpd/conf]
$ grep conf.d httpd.conf
# Load config files from the config directory "/etc/httpd/conf.d".
Include conf.d/*.conf

3.3  Controle d'acces, Authentification Basic

Mise en place d'une authentification basic.

file:///usr/share/nagios/docs/cgiauth.html

Création d'un compte et d'un groupe nagios.
[root@calaz /etc/httpd/conf.d]
$ htpasswd -c passwd nagios
New password:
Re-type new password:
Adding password for user nagios
[root@calaz /etc/httpd/conf.d]
$ echo "nagios: nagios" > group

3.4  Authentification Single Sign On avec CAS

Pour le SSO CAS, voir; http://www.int-evry.fr/s2ia/user/procacci/Doc/serveur-cas-client-mod-cas.html
# For SSL-servers
#ScriptAlias /nagios/cgi-bin/ /usr/lib/nagios/cgi/
<Directory /usr/lib/nagios/cgi/>
   Options ExecCGI
   SSLRequireSSL
   order deny,allow
   deny from all
   AuthType CAS
   AuthName "nagios"
require valid-user
   Satisfy Any
</Directory>
#
<Directory /usr/share/nagios/>
   Options None
   SSLRequireSSL
   order deny,allow
   deny from all
   AuthType CAS
require valid-user
   Satisfy Any
</Directory>

4  Premier aperçu web

Redemarrer Apache
[root@calaz /etc/httpd/conf]
$ /etc/init.d/httpd restart

Lancer un nagigateur sur

http://localhost/nagios/

5  Fichier de configuration principal

Le fichier de configuration principal est /etc/nagios/nagios.cfg, il est commenté en ligne !. On y retrouvera notament la definition des chemins d'acces aux sous fichiers de configurations, la definition des log, les intervales d'excutions, timeouts etc .... Certains directives particulieres seront detaillées dans cette documentation (nsca !)

6  Configuration des objects à surveiller

6.1  Configuration des hosts

On utilise la nouvelle methode à base de template .

file:///usr/share/nagios/docs/xodtemplate.html#host

Voici un petit exemple:
[root@calaz /etc/nagios]
$ cat hosts.cfg

# Generic host definition template
define host{
        name                           generic-host    ; The name of this host template -\
referenced in other host definitions, used for template recursion/resolution
        notifications_enabled           1       ; Host notifications are enabled
 event_handler_enabled           1       ; Host event handler is enabled
        flap_detection_enabled          1       ; Flap detection is enabled
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
 
        register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
        }
 
# 'calaz' host definition
define host{
        use                     generic-host            ; Name of host template to use
 
        host_name               calaz
        alias                   Server nagios de test #1
        address                 157.159.50.197
        check_command           check-host-alive
        max_check_attempts      10
        notification_interval   180
        notification_period     24x7
        notification_options    d,u,r
        }
 
 
####### routeur cisco
define host{
        use                     generic-host            ; Name of host template
                                                                                                                                                                 
        host_name               cisco6500
        alias                   Catalyst 6500
        address                 157.159.50.1
        check_command           check-host-alive
        max_check_attempts      20
        notification_interval   240
        notification_period     24x7
        notification_options    d,u,r
        name                    ciscorouter
        }
 
 
define host{
        host_name c3548ltb-02
        alias cisco c3548ltb-02
        address 157.159.7.11
        parents cisco6500
        use     ciscorouter
        }
 
# 'arvouin' host definition
define host{
        use                     generic-host            ; Name of host template to use
 
        host_name               arvouin
        alias                   Poste client Arvouin #2
        address                 157.159.21.55
        check_command           check-host-alive
        parents                 c3548ltb-02
        max_check_attempts      10
        notification_interval   120
        notification_period     24x7
        notification_options    d,u,r
        }


7  Configuration des services

file:///usr/share/nagios/docs/xodtemplate.html#service

7.1  Introduction

Apres la configuration des hosts à surveiller, passons aux services sur ces hosts. Trois cas se presentent:
Serveur -> Client passif
Les commandes de verification partent du serveur nagios vers les clients passifs, exemples; ping, ssh, telnet portX etc ....
Serveur -> Client actif
Les commandes de verification sont toujours à l'initiative du serveur nagios vers les clients, mais cette fois-ci il y a execution d'un script sur le client. Ce procedé implique l'utilisation de nrpe (nagios remote process execution). exemples; check_disk, check_users, check_load etc ... .
Client -> Serveur
Ici l'execution est à l'initiative du client vers le serveur nagios. On parle alors de ncsa (nagios client ...) . Cette methode est utlisée pour des operations de verification relativement lourdes -> check_updates par exemple .

7.2  Serveur -> clients passifs

Ici nous faisons un simple test de ping sur nos machines distantes, ainsi que certains tests de services locaux au serveurs nagios (calaz -> http, load, disk ).
[root@calaz /etc/nagios]
$ cat services.cfg

# Generic service definition template
define service{
        name                            generic-service ; The 'name' of this service template, referenced in other service definitions
        active_checks_enabled           1  ; Active service checks are enabled
        passive_checks_enabled          1  ; Passive service checks are enabled/accepted
        parallelize_check               1  ; Active service checks should be parallelized
        obsess_over_service             1  ; We should obsess over this service (if necessary)
        check_freshness                 0  ; Default is to NOT check service 'freshness'
        notifications_enabled           1  ; Service notifications are enabled
        event_handler_enabled           1  ; Service event handler is enabled
        flap_detection_enabled          1  ; Flap detection is enabled
        process_perf_data               1  ; Process performance data
        retain_status_information       1  ; Retain status information across program restarts
        retain_nonstatus_information    1  ; Retain non-status information across program restarts
 
        register                        0  ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
        }
 
# Service definition
define service{
        use                             generic-service         ; Name of service template to use
 
        host_name                       arvouin,calaz,c3548ltb-02,cisco6500
        service_description             PING
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  nagios-admins
        notification_interval           120
        notification_period             24x7
        notification_options            c,r
        check_command                   check_ping!100.0,20%!500.0,60%
        name                            ping_reseau
        }
 
 
# Service definition
define service{
        use                             generic-service         ; Name of service template to use
 
        host_name                       calaz
        service_description             HTTP
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  nagios-admins
        notification_interval           120
        notification_period             24x7
        notification_options            w,u,c,r
        check_command                   check_http
        }
 
 
# Service definition
define service{
        use                             generic-service         ; Name of service template to use
 
        host_name                       calaz
        service_description             Current Users
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            2
        contact_groups                  nagios-admins
        notification_interval           240
        notification_period             24x7
        notification_options            w,u,c,r
        check_command                   check_local_users!75!150
        }
 
 
# Service definition
define service{
        use                             generic-service         ; Name of service template to use
 
        host_name                       calaz
        service_description             Total Processes
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            2
        contact_groups                  nagios-admins
        notification_interval           240
        notification_period             24x7
        notification_options            w,u,c,r
        check_command                   check_local_procs!150!200!RSZDT
        }
 
 
# Service definition
define service{
        use                             generic-service         ; Name of service template to use
 
        host_name                       calaz
        service_description             /dev/hda1 Free Space
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  nagios-admins
        notification_interval           120
        notification_period             24x7
        notification_options            w,u,c,r
        check_command                   check_local_disk!20%!10%!/dev/hda1
        }

7.3  Serveur -> clients actifs : NRPE

7.3.1  Installation cliente

If faut installer le daemon client nrpe de nagios ainsi que les pluggins sur le client à surveiller (ici arvouin) :
[root@arvouin ~]
$yum install nagios-nrpe nagios-plugins
Installed:  nagios-plugins 1.4-3.int.i386 nagios-nrpe 2.0-3.1.fc2.dag.i386
Dep Installed:  perl-Digest-HMAC 1.01-12.noarch perl-Net-SNMP 4.1.2-7.rhfc2.at.noarch \
perl-Crypt-DES 2.03-5.rhfc2.at.i386 perl-Digest-SHA1 2.07-4.i386 fping 2.4-1.b2.1.fc2.rf.i386


Assurer un demarrage automatique au boot du systeme -> utilisation de script init.d, autrement valider un demarrage avec le super daemon xinetd, voir /etc/xinetd.d/nrpe
[root@arvouin ~]
$chkconfig --level 345 nrpe on
$chkconfig --list | grep nrpe
nrpe            0:off   1:off   2:off   3:on    4:on    5:on    6:off

7.3.2  Configuration cliente

Le fichier /etc/nagios/nrpe.cfg contient la configuration nrpe.
[root@arvouin ~]
$cat /etc/nagios/nrpe.cfg
server_port=5666
allowed_hosts=157.159.50.197
nrpe_user=nagios
nrpe_group=nagios
dont_blame_nrpe=0
debug=0
command_timeout=60
# ajout de commandes perso JP
command[check_root]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hda6
command[check_boot]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hda2
# The following examples use hardcoded command arguments...
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_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

7.3.3  Configuration nrpe serveur

Il faut déclarer dans les services , des verifications nrpe. On fera un usage habile des templates en declarant un service generique check_root, duquel heriterons les autres :
/etc/nagios/services
#VERIF D'ESPACE DISQUE NRPE
 
define service{
        use                             generic-service ;Name of service template to use
                                                                                
        host_name                       arvouin
        service_description             disque /
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  nagios-admins
        notification_interval           120
        notification_period             24x7
        notification_options            w,u,c,r
        check_command                   check_nrpe!check_root
        name                            check_root
        }
 
define service {
        use             check_root
        host_name       arvouin
        service_description             disque /boot
        check_command                   check_nrpe!check_boot
        name            check_boot
        }
 
# VERIFICATON NRPE PERFORMANCE
 
# verif de charge
define service {
        use             check_root
        host_name       arvouin
        service_description             nombre d utilisateur
        check_command                   check_nrpe!check_users
        name            check_users
        }
 
# verif zombies
define service {
        use             check_root
        host_name       arvouin
        service_description             nombre de zombie
        check_command                   check_nrpe!check_zombie_procs
        name            check_zombie_procs
        }
 
# verif total process
define service {
        use             check_root
        host_name       arvouin
        service_description             nombre total de process
        check_command                   check_nrpe!check_total_procs
        name            check_total_procs
        }
 
# verif charge
define service {
        use             check_root
        host_name       arvouin
        service_description             charge
        check_command                   check_nrpe!check_load
        name            check_load
        }

7.3.4  Firewall

Il faut autoriser l'acces au port nrpe (5666) du client depuis le serveur:
/etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -s 157.159.50.197/32 -m state --state NEW -m tcp -p tcp --dport 5666 -j ACCEPT
$/etc/init.d/iptables restart

7.3.5  Verification, correction de problemes

Probleme de droit d'acces

[root@calaz /etc/nagios]
$ /usr/lib/nagios/plugins/check_nrpe -H arvouin.int-evry.fr -c check_load
CHECK_NRPE: Error - Could not complete SSL handshake.

Solution, déclarer le serveur nagios dans les hosts allowed !
[root@arvouin ~]
$cat  /etc/nagios/nrpe.cfg | grep allowed_hosts
#allowed_hosts=127.0.0.1
allowed_hosts=157.159.50.197

Probleme de LANG FR+utf8

[root@calaz /etc/nagios]
$ /usr/lib/nagios/plugins/check_nrpe -H arvouin.int-evry.fr -c check_load Le seuil d'alerte doit être un nombre à  virgule flottante!

Demarrer le daemon nrpe en exportant une LANG=C !
[root@arvouin ~]
$grep LANG /etc/init.d/nrpe
        export LANG=C ; daemon $prog -c "$CONFIG" -d
$/etc/init.d/nrpe restart

Operationnel
Une fois le tout configuré correctement, la commande doit retourner un résultat par lencement manuel .
[root@calaz /etc/nagios]
$ /usr/lib/nagios/plugins/check_nrpe -H arvouin.int-evry.fr -c check_load
OK - load average: 0.06, 0.06, 0.05|\
load1=0.060000;15.000000;30.000000;0.000000 \
load5=0.060000;10.000000;25.000000;0.000000 \
load15=0.050000;5.000000;20.000000;0.000000

On peut alors relancer nagios, afin que ces nouveaux services nrpe soient pris en compte .

7.4  Clients -> serveur NSCA

Ici ce sont les clients qui devant lancer des verifications relativements lourdes, vont les planifier (crontab) et les executer de leur propre initiative, ils communiquent les résutltats au serveur nagios. En effet, multipliées par le nombres de hosts surveillés, toutes ces commandes seraient trop longues et difficiles à planifier sur le serveur .

7.4.1  Installation cliente


[root@arvouin /etc/nagios]
$yum install nagios-nsca
Installed:  nagios-nsca 2.4-2.1.fc2.dag.i386
Dep Installed:  libmcrypt 2.5.7-1.1.fc2.dag.i386
Transaction(s) Complete

7.4.2  Configuration cliente


[root@arvouin /etc/nagios]
$cat send_nsca.cfg
password=secret
encryption_method=1

[root@arvouin /etc/nagios]
$crontab -l
0 6 * * * /usr/local/bin/checkupdate | /usr/sbin/send_nsca -H calaz.int-evry.fr -to 60 -c /etc/nagios/send_nsca.cfg  > /dev/null 2>&1

7.4.3  Configuration nagios.cfg du serveur

Directives propres au bon fonctionnement de nsca dans le fichier de configuration general /etc/nagios/nagios.cfg
# EXTERNAL COMMAND OPTION
check_external_commands=1
# EXTERNAL COMMAND FILE # name pipe !
command_file=/var/log/nagios/rw/nagios.cmd
# PASSIVE CHECK ACCEPTANCE OPTION
accept_passive_service_checks=1


7.4.4  Configuration nsca.cfg du serveur


[root@calaz /var/log/nagios/rw]
$ cat /etc/nagios/nsca.cfg
server_port=5667
allowed_hosts=127.0.0.1
nsca_user=nagios
nsca_group=nagios
debug=1
# attention ci-dessous, il y avait /var/spool a la place de /var/log/....
command_file=/var/log/nagios/rw/nagios.cmd
alternate_dump_file=/var/spool/nagios/nsca.dump
aggregate_writes=0
append_to_file=0
# augmentation du delais d'attente car checkupdate peut-etre long ... 30 -> 300
max_packet_age=300
password=secret
decryption_method=1

7.4.5  Configuration du service nsca sur le serveur

Le daemon nsca sera lancer par xinetd, il faut passer le service en enable (disable = yes par defaut !) et controler les hosts access (only_from !):
[root@calaz /etc/nagios]
$ cat /etc/xinetd.d/nsca
# default: off
# description: NSCA (Nagios Service Check Acceptor)
service nsca
{
        flags           = REUSE
        type            = UNLISTED
        port            = 5667
        socket_type     = stream
        wait            = no
        user            = nagios
        group           = nagios
        server          = /usr/sbin/nsca
        server_args     = -c /etc/nagios/nsca.cfg --inetd
        log_on_failure  += USERID
        disable         = no
        only_from       = arvouin.int-evry.fr
}

$ /etc/init.d/xinetd restart

7.4.6  Configuration du firewall pour le port nsca du serveur

Ouvrir le port 5667 pour nsca sur le serveur .
[root@calaz /etc/nagios]
$ grep 5667 /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -s 157.159.0.0/16 -m state --state NEW -m tcp -p tcp --dport 5667 -j ACCEPT
$ /etc/init.d/iptables restart

7.4.7  Definition du service passive check sur le serveur

Il faut maintenant définir un service passive_checkservice générique qui dérive lui même du generic-service . Enfin le service update héritera de passive_checkservice : voici les modifications apportées à /etc/nagios/services.cfg:

define service{
        service_description         mail delivery         use                         generic-service
        active_checks_enabled       0         passive_checks_enabled      1
        register                        0         is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5         retry_check_interval            1
        contact_groups                  nagios-admins         notification_interval           120
        notification_period             24x7
        notification_options            w,u,c,r
        name                    passive_checkservice
}

...

# NSCA                                                                                 
define service{
        use             passive_checkservice
        host_name                       arvouin
        service_description             update
# ici la commande check_smtp n'a aucune signification particuliere
# c'est simplement que sans check_command cela ne marche pas !
        check_command                   check_smtp
      }


Apres tout ceci on redemarre nagios:

On verifie que le name pipe de communication entre nagios et nsca est bien présent
[root@calaz /etc/nagios]
$ ls -al  /var/log/nagios/rw/nagios.cmd
prw-rw----  1 nagios apache 0 Apr 14 17:59 /var/log/nagios/rw/nagios.cmd

7.4.8  Test de fonctionnement nsca

On lance la commande de checkupdate sur le client en manuel :
[root@arvouin /etc/nagios]
$/usr/local/bin/checkupdate | /usr/sbin/send_nsca -H calaz.int-evry.fr -to 200 -c /etc/nagios/send_nsca.cfg
....ZZZ 40 secondes ZZZZ
1 data packet(s) sent to host successfully.

En parallele on verifie les log sur le serveur (debug=1 dans nsca.cfg !)
[root@calaz /etc/nagios]
$ tail -f /var/log/messages
Apr 14 18:01:55 calaz nsca[15950]: Handling the connection...
Apr 14 18:02:37 calaz nsca[15950]: SERVICE CHECK -> Host Name: 'arvouin', Service Description: 'update', Return Code: '2', Output: 'CRITICAL _
ImageMagick i386 6.2.0.7-2.fc2 updates-released   # ImageMagick-perl i386 6.2.0.7-2.fc2 updates-released   # antlr noarch 2.7.4-2jpp jpackage-generic   \
# cfengine i386 2.1.13-2 perso-mci-11   # classpathx-jaxp noarch 1.0-0.beta1.9jpp jpackage-generic   # cups i386 1:1.1.20-11.11 updates-released   \
# cups-devel i386 1:1.1.20-11.11 updates-released   # cups-libs i386 1:1.1.20-11.11 updates-released   \
# dresden-ocl-argo noarch 1:1.1-2jpp jpackage-generic   # dtdparser noarch 1.21-2jpp jpackage-generi'
Apr 14 18:02:37 calaz nsca[15950]: End of connection...
Apr 14 18:02:38 calaz nagios: EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;arvouin;update;2;CRITICAL ImageMagick i386 6.2.0.7-2.fc2 updates-released  _
 # ImageMagick-perl i386 6.2.0.7-2.fc2 updates-released   # antlr noarch 2.7.4-2jpp jpackage-generic   # cfengine i386 2.1.13-2 perso-mci-11   \
# classpathx-jaxp noarch 1.0-0.beta1.9jpp jpackage-generic   # cups i386 1:1.1.20-11.11 updates-released   # cups-devel i386 1:1.1.20-11.11 updates-released  \
 # cups-libs i386 1:1.1.20-11.11 updates-released   # dresden-ocl-argo noarch 1:1.1-2jpp jpackage-generic  \
# dtdparser noarch 1.21-2jpp jpackage-generi

8  Autres fichiers de configuration nécessaires

Définir des contacts, personnes à prevenir en cas d'incidents .

8.1  Contacts

file:///usr/share/nagios/docs/xodtemplate.html#contact
[root@calaz /etc/nagios]
$ cat contacts.cfg

# 'nagios' contact definition
define contact{
        contact_name                    nagios
        alias                           Nagios Admin
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,u,r
        service_notification_commands   notify-by-email,notify-by-epager
        host_notification_commands      host-notify-by-email,host-notify-by-epager
        email                           nagios-admin@localhost.localdomain
        pager                           pagenagios-admin@localhost.localdomain
        }
 
 
# 'jehan' contact definition
define contact{
        contact_name                    jehan
        alias                           Jehan
        service_notification_period     workhours
        host_notification_period        workhours
        service_notification_options    c,r
        host_notification_options       d,r
        service_notification_commands   notify-by-email
        host_notification_commands      host-notify-by-email
        email                           jehan@localhost.localdomain
        }

Gestion de groupe de contact
[root@calaz /etc/nagios]
$ cat contactgroups.cfg
 
# 'nagios-admins' contact group definition
define contactgroup{
        contactgroup_name       nagios-admins
        alias                   Nagios Administrators
        members                 nagios,root
        }

On peux également personaliser/définir des commandes, des time periods, services et hosts escalation/dependencies ... non indispensable ni détaillés ici, voir la documentation pour les détails .

9  Vérification

Afin de vérifier que l'ensemble des fichiers de configuration sont corrects, nagios avant de s'executer, lance un "pre-flight check". Il est possible de la faire en manuel :
$ /usr/bin/nagios -v /etc/nagios/nagios.cfg
 
Nagios 1.2
Copyright (c) 1999-2004 Ethan Galstad (nagios@nagios.org)
Last Modified: 02-02-2004
License: GPL
 
Reading configuration data...
 
Error: Could not add object property in file '/etc/nagios/hosts.cfg' on line 56.

Effectivement une directive parent au lieu de parents ! avait été indiquée .

Quand cela marche:
[root@calaz /etc/nagios]
$ /usr/bin/nagios -v /etc/nagios/nagios.cfg
 
Nagios 1.2
Copyright (c) 1999-2004 Ethan Galstad (nagios@nagios.org)
Last Modified: 02-02-2004
License: GPL
 
Reading configuration data...
 
Running pre-flight check on configuration data...
 
Checking services...
        Checked 8 services.
Checking hosts...
        Checked 4 hosts.
Checking host groups...
        Checked 2 host groups.
Checking contacts...
        Checked 3 contacts.
Checking contact groups...
        Checked 2 contact groups.
Checking service escalations...
        Checked 2 service escalations.
Checking host group escalations...
        Checked 2 host group escalations.
Checking service dependencies...
        Checked 0 service dependencies.
Checking host escalations...
        Checked 0 host escalations.
Checking host dependencies...
        Checked 0 host dependencies.
Checking commands...
        Checked 22 commands.
Checking time periods...
        Checked 4 time periods.
Checking for circular paths between hosts...
Checking for circular service execution dependencies...
Checking global event handlers...
Checking obsessive compulsive service processor command...
Checking misc settings...
 
Total Warnings: 0
Total Errors:   0
 
Things look okay - No serious problems were detected during the pre-flight chec

10  Demarrage du serveur

Demarrage manuel
$ /usr/bin/nagios /etc/nagios/nagios.cfg
 
Nagios 1.2
Copyright (c) 1999-2004 Ethan Galstad (nagios@nagios.org)
Last Modified: 02-02-2004
License: GPL
 
Nagios 1.2 starting... (PID=13886)

Demarrage automatique
[root@calaz /etc/nagios]
$ chkconfig --level 345 nagios on
$ chkconfig --list | grep nagios
nagios          0:off   1:off   2:off   3:on    4:on    5:on    6:off

Remarque sur LANG
Le résultat du ping était mal interpreté en LANG FR+utf8 . Nous demarrons alors nagios avec la variable d'evironement LANG=C et tout rentre dans l'ordre !.
[root@calaz /etc/nagios]
$ grep LANG=C /etc/init.d/nagios
                export LANG=C ; $NagiosBin -d $NagiosCfg

11  Screenshots

Quelques captures d'écran en guise d'apperçu ...

Services details

Hosts details

Status Overview

Exemple de service details de production

Exemple de status map de production


Ce document a été traduit de LATEX par HEVEA.