centos_nagios_7


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)
  • 4eme partie, déclaration des postes Windows sous monitoring via NSClient++



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.



Exemple pratique - Fichier de configuration des postes Linux/Unix


Pour la partie Linux, le jeu se complique un peu, mais rien d'insurmontable. Si la page vous semble longue, c'est simplement parce que les fichiers de configuration le sont (longs). Ce sera tapé en quelques minutes pour le premier client NRPE, en quelques secondes pour les suivants..

Tout d'abord, il nous faut un fichier de conf pour les linux que nous appellerons "linux.cfg" (oui, ça a été très dur à trouver).

Dans l'interface Nagios, par défaut, le serveur lui même se décrit en tant que "localhost". C'est pratique pour la configuration d'origine, mais ce n'est pas très esthétique. Nous allons donc remplacer tous les "localhost" du fichier par un terme plus parlant, par exemple "serveur_nagios" (sans espaces et sans accents svp).

  • Comme précédemment, on commence par un fichier vierge. Notez le regroupement des services par section en vue d'une gestion/compréhension plus facile (copiez/collez à l'identique) :


# vi /usr/local/nagios/etc/objects/linux.cfg
#################################################
# LINUX.CFG - exemple de conf pour Mgroup.fr
#################################################

#################################################
# Declaration des machines



#################################################
# declaration des groupes



#################################################
# declaration des services toutes Linux



#################################################
# declaration des services pour Serveur Nagios



#################################################
# Services pour Serveurs Web Apache


# Fin de fichier



  • Puis ajoutons les deux groupes indispensables "Serveurs Linux" et "Serveurs Web", puisque Nagios embarque aussi un Apache (copiez/collez à l'identique) :


#################################################
# LINUX.CFG - exemple de conf pour Mgroup.fr
#################################################

#################################################
# Declaration des machines



#################################################
# declaration des groupes


define hostgroup{
        hostgroup_name  linux-servers   ;nom court
        alias           Serveurs Linux  ;nom long
        }

define hostgroup{
        hostgroup_name  web-servers      ;nom court
        alias           Serveurs Apache  ;nom long
        }

#################################################
# declaration des services toutes Linux



#################################################
# declaration des services pour Serveur Nagios



#################################################
# Services pour Serveurs Web Apache


# Fin de fichier



  • On ajoute les services et le Serveur Nagios lui-même (seule Linux à cet instant) pour aboutir au modèle pré-rempli correspondant à la situation actuelle. Notez que notre "serveur_nagios" est déclaré dans deux groupes, à savoir "linux-servers" et "web-servers" comme décrit plus haut (copiez/collez à l'identique) :


#################################################
# LINUX.CFG - exemple de conf pour Mgroup.fr
#################################################

#################################################
# Declaration des machines

# la premiere machine - nagios lui meme

define host{
        use                     linux-server
        host_name               serveur_nagios
        alias                   serveur_nagios
        address                 127.0.0.1
        hostgroups              linux-servers,web-servers
        }


#################################################
# declaration des groupes


define hostgroup{
        hostgroup_name  linux-servers   ;nom court
        alias           Serveurs Linux  ;nom long
        }

define hostgroup{
        hostgroup_name  web-servers      ;nom court
        alias           Serveurs Apache  ;nom long
        }


#################################################
# declaration des services toutes Linux


# service ping pour toutes linux

define service{
        use                             local-service
        hostgroup_name                  linux-servers
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }


# service check ssh toutes linux

define service{
        use                             local-service
        hostgroup_name                  linux-servers
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           0
        }


#################################################
# declaration des services pour Serveur Nagios


# Service check espace /root Serveur Nagios

define service{
        use                             local-service
        host_name                       serveur_nagios
        service_description             Root Partition
        check_command                   check_local_disk!20%!10%!/
        }



# Service check nombre users Serveur Nagios

define service{
        use                             local-service
        host_name                       serveur_nagios
        service_description             Current Users
        check_command                   check_local_users!20!50
        }


# Service check processes Serveur Nagios

define service{
        use                             local-service
        host_name                       serveur_nagios
        service_description             Total Processes
        check_command                   check_local_procs!250!400!RSZDT
        }



# Service check load Serveur Nagios

define service{
        use                             local-service
        host_name                       serveur_nagios
        service_description             Current Load
        check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
        }



# Service check swap Serveur Nagios

define service{
        use                             local-service
        host_name                       serveur_nagios
        service_description             Swap Usage
        check_command                   check_local_swap!20!10
        }

#################################################
# Services pour Serveurs Web Apache


define service{
        use                             local-service
        hostgroup_name                  web-servers
        service_description             HTTP
        check_command                   check_http
        notifications_enabled           0
        }



# Fin de fichier



  • Dans la configuration globale "nagios.cfg", on remplace la ligne d'appel du fichier "localhost.cfg" par celle de "linux.cfg"
# vi /usr/local/nagios/etc/nagios.cfg


  • Avant :
# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
  • Après :
# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/linux.cfg



  • Puis redémarrage de Nagios :
# service nagios restart



  • A ce stade, après quelques minutes, la page "services" de Nagios reprend une allure normale, avec un nom correct pour le serveur Nagios, qui ne s'appelle plus "localhost" mais "serveur_nagios" :



centos_nagios_9


  • Tandis que la page "Host groups" affiche les nouvelles "familles" :



centos_nagios_10

  • On peut ajouter le groupe dédié aux clients NRPE (toujours dans "linux.cfg") :
# partiel de fichier 

#################################################
# declaration des groupes


define hostgroup{
        hostgroup_name  linux-servers  ;nom court
        alias           Linux Servers  ;nom long
        }

define hostgroup{
        hostgroup_name  web-servers      ;nom court
        alias           Serveurs Apache  ;nom long
        }

define hostgroup{
        hostgroup_name  nrpe_clients   ;nom court
        alias           Serveurs Linux by NRPE  ;nom long
        }



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



  • Puis les premiers services indispensables associés à ce groupe NRPE (à mettre en fin de fichier "linux.cfg", à la suite des autres services) :
# partiel de fichier

#################################################
# Services pour clients NRPE Linux


# Charge CPU NRPE
define service{
        use generic-service
        hostgroup_name                  nrpe_clients
        service_description             CPU Load
        check_command                   check_nrpe!check_load
        }

# procs NRPE
define service{
        use generic-service
        hostgroup_name                  nrpe_clients
        service_description             Total Processes
        check_command                   check_nrpe!check_total_procs
        }

# Users NRPE
define service{
        use generic-service
        hostgroup_name                  nrpe_clients
        service_description             Current Users
        check_command                   check_nrpe!check_users
        }

# Swap NRPE
define service{
        use generic-service
        hostgroup_name                  nrpe_clients
        service_description             Swap Usage
        check_command                   check_nrpe!check_swap
        }



# Fin de fichier



  • Et enfin, le premier serveur Linux monitoré via NRPE. Remarquez sa déclaration dans deux groupes puisqu'il s'agit d'une Linux et qu'il est "monitoré" via NRPE (corrigez les noms court et long ainsi que l'ip) :
# partiel de fichier 

#################################################
# LINUX.CFG - exemple de conf pour Mgroup.fr
#################################################

#################################################
# Declaration des machines

# la premiere machine - nagios lui meme

define host{
        use                     linux-server
        host_name               serveur_nagios
        alias                   serveur_nagios
        address                 127.0.0.1
        hostgroups              linux-servers,web-servers
        }


# premier client nrpe

define host{
        use                     linux-server
        host_name               serveur_linux
        alias                   1er Serveur Linux
        address                 192.168.0.100
        hostgroups              linux-servers,nrpe_clients
        }

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




Point Important : Nagios n'aime pas les groupes vides. Il convient donc de n'ajouter un groupe que lorsque vous avez au moins une machine à déclarer dans celui ci.


  • Dans les "Services" de Nagios, notre "serveur_linux" est à présent visible :



centos_nagios_11

  • Côté "Host Groups", les familles permettent une distinction par catégories :



centos_nagios_12


  • Pour déclarer d'autres Linux utilisant NRPE, il vous suffit de les insérer (une par une) dans la partie "Déclaration des machines" et d'indiquer pour chacune le ou les groupes dont elles font partie :
# partiel de fichier 

#################################################
# LINUX.CFG - exemple de conf pour Mgroup.fr
#################################################

#################################################
# Declaration des machines

# la premiere machine - nagios lui meme

define host{
        use                     linux-server
        host_name               serveur_nagios
        alias                   serveur_nagios
        address                 127.0.0.1
        hostgroups              linux-servers,web-servers
        }


# premier client nrpe

define host{
        use                     linux-server
        host_name               serveur_linux
        alias                   1er Serveur Linux
        address                 192.168.0.100
        hostgroups              linux-servers,nrpe_clients
        }

# second client nrpe

define host{
        use                     linux-server
        host_name               serveur_linux_2
        alias                   2eme Serveur Linux
        address                 192.168.0.110
        hostgroups              linux-servers,nrpe_clients
        }

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




Création de Groupes non liés avec des Services


L'utilisation des groupes peut s'avérer très pratique quand on les associe à un ou plusieurs services, mais vous pouvez également créer des groupes supplémentaires pour distinguer vos serveurs par affectations, étages, groupes de travail (au sens équipes), etc..
La "famille" de machines créée apparaitra alors dans la partie "Host Groups" comme une entité à part.

  • Exemple avec les serveurs de l'équipe du premier étage, dédiée à la compta. On déclare le groupe sans modifier les parties "Machines" ou "Services" en indiquant quels serveurs (ou appareils) en sont membres :
# partiel de fichier 

#################################################
# declaration des groupes


define hostgroup{
        hostgroup_name  linux-servers  ;nom court
        alias           Linux Servers  ;nom long
        }

define hostgroup{
        hostgroup_name  web-servers      ;nom court
        alias           Serveurs Apache  ;nom long
        }

define hostgroup{
        hostgroup_name  nrpe_clients   ;nom court
        alias           Serveurs Linux by NRPE  ;nom long
        }


# les serveurs de la compta

define hostgroup{
        hostgroup_name  compta_servers   ;nom court
        alias           Serveurs Compta   ;nom long
        members         serveur_linux,serveur_linux_2
        }


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



  • Après redémarrage de Nagios, la "famille" Compta apparait dans les "Host Groups" :



centos_nagios_13


Note 1 : Les machines déclarées dans le groupe "Compta" (pour l'exemple) restent membres des "familles" initiales (associées aux services). Chaque appareil peut faire partie de plusieurs groupes.

Note 2 : Vous pouvez ajouter dans les groupes secondaires, les appareils déclarés dans d'autres fichiers de configuration (comme ceux du fichier "ipfix.cfg" par exemple).

Note 3 : En cas de message d'erreur au redémarrage de Nagios, un rappel de la commande qui permet l'affichage des détails :

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg





Si vous nous avez suivi jusqu'ici, vous devriez avoir à disposition, non pas un serveur Nagios ultra complexe, il faudrait des dizaines de pages pour en faire le tour, mais à minima les bases utiles pour le monitoring des éléments basiques de vos machines.

Il existe une multitude de fonctions possibles, que ce soit via SSH, NRPE, Samba ou autres pour récupérer des infos en temps réel (ou presque) relatives à chaque activité de vos machines.

De nombreux modules sont présents sur la toile et, de notre côté, nous essaierons de publier de temps en temps quelques additionnels en fonction de nos disponibilités ou des demandes reçues via le forum.
N'hésitez donc pas à poser vos questions ou à faire part de vos besoins et/ou problèmes.




Pour débattre de ce tuto, le topic dédié.