centos_nagios_6


Pour rappel, les pages précédentes :

  • 1ere partie, installation et configuration du serveur Nagios sur une CentOS dédiée
  • 2eme partie, gestion des utilisateurs et configuration des clients Windows (NSClient++) et Linux (NRPE)
  • 3eme partie, déclaration des premières machines (basiques) du réseau (ip fixes)



Note Importante : Les exemples présentés dans cette section s'appuient sur nombre de modifications et paramètres décris dans les parties précédentes. Il convient donc d'en avoir pris connaissance avant d'utiliser les fichiers ci-dessous. Nous supposons que vous avez à disposition une machine Windows avec le module NSClient++ opérationnel comme décrit dans la 2eme partie du tuto.



Exemple pratique - Fichier de configuration des postes Windows


La déclaration des postes et serveurs Windows se fait de la même manière que les "ip fixes" que nous avons traité précédemment. A la différence qu'un fichier "windows.cfg" existe déjà dans l'arborescence "/usr/local/nagios/etc/objects".

  • On commence donc par déplacer le fichier original qui contient des exemples utiles :
# mv /usr/local/nagios/etc/objects/windows.cfg /usr/local/nagios/etc/objects/windows.cfg.original


  • Puis la création d'un tout neuf fichier bien propre (copiez/collez à l'identique le contenu ci-dessous) :
# vi /usr/local/nagios/etc/objects/windows.cfg


######################################################
# WINDOWS.CFG - exemple de configuration - Mgroup.fr
# gestion des services par groupe
######################################################

# Declarations machines


######################################################
# definition du groupe windows-servers


######################################################
# Definition des services
# pour le groupe windows-servers


# fin de fichier



  • Définition du groupe dont feront partie tous les Windows (copiez/collez à l'identique) :
######################################################
# WINDOWS.CFG - exemple de configuration - Mgroup.fr
# gestion des services par groupe
######################################################

# Declarations machines



######################################################
# definition du groupe windows-servers

define hostgroup{
        hostgroup_name  windows-servers ;nom du groupe
        alias           Machines Windows ;nom long du groupe
        }

######################################################
# Definition des services
# pour le groupe windows-servers


# fin de fichier



  • Définition des services affectés au groupe "windows-servers", donc à tous les Windows sous monitoring (copiez/collez à l'identique) :
######################################################
# WINDOWS.CFG - exemple de configuration - Mgroup.fr
# gestion des services par groupe
######################################################

# Declarations machines



######################################################
# definition du groupe windows-servers

define hostgroup{
        hostgroup_name  windows-servers  ;nom du groupe
        alias           Machines Windows ;nom long du groupe
        }

######################################################
# Definition des services
# pour le groupe windows-servers

# service check version NSClient++
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     NSClient++ Version
        check_command           check_nt!CLIENTVERSION
        }

# service uptime
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     Uptime
        check_command           check_nt!UPTIME
        }

# service charge cpu
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     CPU Load
        check_command           check_nt!CPULOAD!-l 5,80,90
        }


# service occupation memoire
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     Memory Usage
        check_command           check_nt!MEMUSE!-w 80 -c 90
        }

# service espace disque C
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     C:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
        }


# fin de fichier



  • Enfin, déclaration en début de fichier, de la première machine Windows sous monitoring. Sur cette partie, indiquez le nom court, le nom long et l'ip qui correspondent à votre machine (pas d'autre modif à faire) :
######################################################
# WINDOWS.CFG - exemple de configuration - Mgroup.fr
# gestion des services par groupe
######################################################

# Declarations machines

define host{
        use             windows-server    ;ne modifiez pas cette ligne
        host_name       serveur_windows   ;nom court
        alias           premier Windows   ;nom long
        address         192.168.0.10      ;adresse ip
        hostgroups      windows-servers   ;ne modifiez pas cette ligne
        }

######################################################
# definition du groupe windows-servers

define hostgroup{
        hostgroup_name  windows-servers  ;nom du groupe
        alias           Machines Windows ;nom long du groupe
        }

######################################################
# Definition des services
# pour le groupe windows-servers

# service check version NSClient++
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     NSClient++ Version
        check_command           check_nt!CLIENTVERSION
        }

# service uptime
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     Uptime
        check_command           check_nt!UPTIME
        }

# service charge cpu
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     CPU Load
        check_command           check_nt!CPULOAD!-l 5,80,90
        }


# service occupation memoire
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     Memory Usage
        check_command           check_nt!MEMUSE!-w 80 -c 90
        }

# service espace disque C
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     C:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
        }


# fin de fichier


  • On repasse par le fichier de configuration Nagios pour prise en compte de notre fichier "windows.cfg" en dé-commentant la ligne "cfg_file=/usr/local/nagios/etc/objects/windows.cfg" :
# vi /usr/local/nagios/etc/nagios.cfg
# partiel de fichier

# OBJECT CONFIGURATION FILE(S)
# These are the object configuration files in which you define hosts,
# host groups, contacts, contact groups, services, etc.
# You can split your object definitions across several config files
# if you wish (as shown below), or keep them all in a single config file.

# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg

# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

# Definitions for monitoring a Windows machine
cfg_file=/usr/local/nagios/etc/objects/windows.cfg   <== celle-ci

# Definitions for monitoring a router/switch
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg

# Definitions pour monitorer les ip fixes
cfg_file=/usr/local/nagios/etc/objects/ipfix.cfg

# Definitions for monitoring a network printer
#cfg_file=/usr/local/nagios/etc/objects/printer.cfg



  • Redémarrage de Nagios
# service nagios restart



  • Si tout va bien, vous devriez obtenir ceci :


centos_nagios_7

  • Tandis que dans la partie "HostGroups" de Nagios, la famille Windows apparait :



centos_nagios_8


  • Pour déclarer le second Windows (et les suivants), procédez comme dans le fichier "ipfix.cfg". Rien à modifier dans le groupe et les services, il suffit de mettre la seconde machine (et les suivantes) à la suite dans la première partie du fichier (déclaration machines) :
# partiel de fichier

# Declarations machines

define host{
        use             windows-server    ;ne modifiez pas cette ligne
        host_name       serveur_windows   ;nom court
        alias           premier Windows   ;nom long
        address         192.168.0.10      ;adresse ip
        hostgroups      windows-servers   ;ne modifiez pas cette ligne
        }

define host{
        use             windows-server    ;ne modifiez pas cette ligne
        host_name       serveur_windows_2   ;nom court
        alias           second Windows   ;nom long
        address         192.168.0.11      ;adresse ip
        hostgroups      windows-servers   ;ne modifiez pas cette ligne
        }

###########################################



  • Puis redémarrez Nagios :
# service nagios restart




Cas particulier - Serveur Windows avec plusieurs disques ou partitions


Si le lecteur "C" des Windows peut être considéré comme général, il est assez fréquent d'avoir des serveurs (Windows) disposant de plusieurs partitions.

Pour la surveillance de ces dernières, voici comment créer un service annexe pour chaque lecteur. Notez que l'on traite au cas par cas, la gestion de ces services par groupe n'est pas souhaitable puisque l'on ne peut l'appliquer à une globalité de machines.

  • Exemple de service pour les serveurs disposant d'un lecteur (partition) "D". Notez que la ligne "hostgroup_name" est devenue "host_name", il faut donc renseigner directement un ou plusieurs noms de machines et non plus un groupe (remplacez "serveur_windows_x" par le nom court de votre serveur) :
# partiel de fichier

# service espace disque C
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     C:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
        }


# service espace disque D
# cas particulier, renseigner serveur par serveur

define service{
        use                     generic-service
        host_name               serveur_windows_2
        service_description     D:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l d -w 80 -c 90
        }

# fin de fichier



Note 1: Le Windows concerné ("serveur_windows_2" dans notre exemple) doit bien évidement exister dans la partie "Déclarations Machines".

Note 2: Si vous avez plusieurs Windows possédant une partition "D", inutile de créer un nouveau service pour chacune d'entre elles. Renseignez toutes les machines concernées dans la ligne "hostname" en les séparant par une virgule (ex: serveur_windows_2,serveur_windows_3).

Note 3 : Pour une partition "E", corrigez la ligne "service_description" et l'option "-l d" qui devient "-l e" dans la ligne "check_command".

  • Redémarrage de Nagios pour prise en compte :
# service nagios restart




Plus d'infos sur le site NSClient++ (Anglais)



Fort logiquement, la prochaine section traite des fichiers de configuration pour le monitoring des clients Linux via NRPE.




Commenter ou débattre de ce tuto via le topic dédié à Nagios sur le forum.