Nagios: Surveillance de switches et routeurs

Hello,

Suite à l’article précédent sur Nagios Nagios: Installation d’un outil de monitoring sur FreeBSD, nous avons mis en place un outil de surveillance réseau qui prend en charge déjà le serveur Nagios lui même. En naviguant dans Hosts et Services, nous pouvons voir l’état du serveur et des services surveillés.

http://tinoob.free.fr/images/nagios/nagios_03.png http://tinoob.free.fr/images/nagios/nagios_04.png

Serveurs et services distants

Le monitoring de postes distants se fait à l’aide d’un module supplémentaire. Ce module, appelé nrpe, n’est pas installé avec Nagios. Il est nécessaire de l’installer sur le serveur Nagios.

Note : Si vous avez dèjà installé le module nrpe sur votre serveur Nagios, vous devez sauter cette étape.

Nrpe sur le serveur Nagios

On se rend dans le dossier d’installation et on lance la commande d’install.
Note: Lors de l’installation, on active le support des “command argument”.

# cd /usr/ports/net-mgmt/nrpe2
# make install clean
[X] ARGS  Enable command argument processing **Security Risk**

On ajoute dans le fichier commands.cfg, après le check_nt, l’objet commande pour les requetes nrpe :

# ee /usr/local/etc/nagios/objects/commands.cfg
# 'check_nt' command definition
define command{
        command_name    check_nt
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
        }


# 'check_nrpe' command definition
define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe2 -H $HOSTADDRESS$ -n -u -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$ $ARG5$ $ARG6$
        }

Prérequis

Le monitoring d’un switch passant principalement par le protocole snmp, il est nécessaire d’activer le support snmp dans Nagios. Pour cela,

# cd /usr/ports/net-mgmt/nagios-plugins
# make config
[X] NETSNMP
# service nagios stop
# make deinstall
# make reinstall
# service nagios start

Il faut aussi activer le support du snmp, s’il ne l’ai pas par défaut, sur le switch ou le routeur que vous voulez surveiller. Se référer pour cela à la dicumentation du matériel que vous avez.

Intégration dans Nagios

On créé dans un premier temps un dossier qui contiendra toutes les informations relatives aux switches. (vous pouvez créer un autre dossier pour les routeurs si vous le souhaitez. Il faudra dans ce cas adapter la configuration suivante avec vos modifications).

# mkdir /usr/local/etc/nagios/switches

On modifie la configuration de nagios pour prendre en compte ce dossier :

# ee /usr/local/etc/nagios/nagios.cfg
...
# You can also tell Nagios to process all config files (with a .cfg
# extension) in a particular directory by using the cfg_dir
# directive as shown below:

#cfg_dir=/usr/local/etc/nagios/servers
#cfg_dir=/usr/local/etc/nagios/printers
cfg_dir=/usr/local/etc/nagios/switches
#cfg_dir=/usr/local/etc/nagios/routers
...

On créé le fichier de configuration du switch à surveiller en se basant sur le modèle disponible :

# cp /usr/local/etc/nagios/objects/switch.cfg-sample /usr/local/etc/nagios/switches/switchtest.cfg

On exporte ensuite la déclaration du groupe depuis le fichier de config du switch vers un fichier à part :

# ee /usr/local/etc/nagios/switches/hostgroup_switches.cfg
###############################################################################
###############################################################################
#
# HOST GROUP DEFINITIONS
#
###############################################################################
###############################################################################

# Create a new hostgroup for switches

define hostgroup{
        hostgroup_name  switches                ; The name of the hostgroup
        alias           Network Switches        ; Long name of the group
        }

On adapte ensuite le fichier de configuration du switch en remplaçant l’adresse IP, le nom d’hôte, la communauté, etc … par les bonnes valeurs. On déclare aussi qu’il est membre du groupe switches :

# ee /usr/local/etc/nagios/switches/switchtest.cfg
###############################################################################
# SWITCH.CFG - SAMPLE CONFIG FILE FOR MONITORING A SWITCH
#
# Last Modified: 10-03-2007
#
# NOTES: This config file assumes that you are using the sample configuration
#        files that get installed with the Nagios quickstart guide.
#
###############################################################################




###############################################################################
###############################################################################
#
# HOST DEFINITIONS
#
###############################################################################
###############################################################################

# Define the switch that we'll be monitoring

define host{
        use             generic-switch          ; Inherit default values from a template
        host_name       switchtest              ; The name we're giving to this switch
        alias           Switch Test     ; A longer name associated with the switch
        address         adresseIPswitch           ; IP address of the switch
        hostgroups      switches                ; Host groups this switch is associated with
        }




###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################

# Create a service to PING to switch 

define service{
        use                     generic-service ; Inherit values from a template
        host_name               switchtest      ; The name of the host the service is associated with
        service_description     PING            ; The service description
        check_command           check_ping!200.0,20%!600.0,60%  ; The command used to monitor the service
        normal_check_interval   5               ; Check the service every 5 minutes under normal conditions
        retry_check_interval    1               ; Re-check the service every minute until its final/hard state is determined
        }


# Monitor uptime via SNMP

define service{
        use                     generic-service ; Inherit values from a template
        host_name               switchtest
        service_description     Uptime
        check_command           check_snmp!-C public -o sysUpTime.0
        }



# Monitor Port 1 status via SNMP

define service{
        use                     generic-service ; Inherit values from a template
        host_name               switchtest
        service_description     Port 1 Link Status
        check_command           check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB -w 1
        }

Note : l’argument -w 1 dans le port status met le service en warning si le port n’est pas actif. En remplacant -w par -c, on obtient un état critique si le port n’est pas actif.

On vérifie que la configuration ne pose pas de problèmes :

# /usr/local/bin/nagios -v /usr/local/etc/nagios/nagios.cfg
Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

On relance ensuite le service nagios pour prendre en compte les modifications :

# service nagios restart
Performing sanity check of nagios configuration: OK
Stopping nagios.
Performing sanity check of nagios configuration: OK
Starting nagios.

On vérifie ensuite sur l’interface web de Nagios http://adresseIPnagios/nagios/ que l’on voit bien le nouveau switch ajouté.

http://tinoob.free.fr/images/nagios/nagios_11.png http://tinoob.free.fr/images/nagios/nagios_12.png http://tinoob.free.fr/images/nagios/nagios_13.png

A bientot pour d’autres articles sortis de mon placard.

Leave a Reply

Your email address will not be published. Required fields are marked *


5 × = cinq