CentOS Serveur - Monitoring Nagios - 4eme partie - Déclaration des postes Windows accessibles via NSClient
Par manuardo le lundi 20 mai 2013, 06:32 - CentOS
4ème étape de notre tuto relatif à Nagios.
On présente ici le minimum requis pour déclarer les machines Windows (NSClient++)
Le monitoring devrait commencer à se remplir...
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 :
- Tandis que dans la partie "HostGroups" de Nagios, la famille Windows apparait :
- 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.