Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Nagios
  3. Aperçu sur les plugins Nagios
Extrait - Nagios La clé de la supervision informatique (nouvelle édition)
Extraits du livre
Nagios La clé de la supervision informatique (nouvelle édition) Revenir à la page d'achat du livre

Aperçu sur les plugins Nagios

Principe de fonctionnement du contrôle

Nagios fait appel aux programmes ou aux scripts exécutables à travers des commandes afin de contrôler la disponibilité des applications et services du réseau. Ces plugins seront exécutés localement sur le serveur Nagios ou en utilisant des agents installés sur les machines contrôlées.

Nagios offre un ensemble de plugins officiels prêts à être utilisés pour contrôler les applications et les services réseau, à savoir :

check_tcp

check_imap

check_dummy

check_nntps

check_simap

check_ftp

check_ircd

check_smtp

check_udp

check_dns

check_ifstatus

check_http

check_jabber

check_ntp

check_pop

check_time

check_Idap

check_mysql

check_dig

check_ntp_peer

check_spop

check_Idaps

check_mysql_query

check_pgsql

check_real

check_ssh

check_clamd

check_dhcp

check_rpc

check_ssmtp

check_nntp

check_oracle

La plupart de ces plugins sont basés sur le plugin générique check_tcp permettant de vérifier l’état d’un port et sa disponibilité sur le réseau. Tous ces plugins suivent des règles communes pour les contrôles d’hôtes et les contrôles de service. Nagios exige que chaque commande renvoie des codes de résultat spécifiques, qui sont présentés ci-dessous :

  • 0 OK : ce retour indique que l’hôte et le service fonctionnent...

Supervision basique d’un hôte

L’un des cas les plus simples à aborder pour la supervision d’un hôte consiste à vérifier son état et sa disponibilité sur le réseau. Il y a plusieurs plugins génériques pour accomplir cette tâche comme check_ping et check_icmp. Le point commun entre ces deux plugins est le fait d’utiliser le protocole réseau ICMP (Internet Control Message Protocol) pour vérifier l’état de l’hôte. Ces plugins envoient une requête ICMP Echo pour tester si l’hôte est accessible sur le réseau. Nagios propose par défaut le plugin check_ping pour vérifier si un hôte est vivant et connecté sur le réseau. Ce plugin utilise la commande système ping pour envoyer la requête ICMP ECHO. La syntaxe de ce plugin est la suivante :


check_ping -H <host_address> 
                    -w <wrta>,<wpl>% -c <crta>,<cpl>%   
                    [-p packets] [-t timeout] [-4|-6]
 

Les options utilisées par ce plugin sont :

  • -H, --hostname : cette option spécifie le nom ou l’adresse IP de l’hôte à interroger.

  • -w, --warning : cette option spécifie la valeur de seuil d’avertissement sous forme de RTA (Round Trip Average) et le pourcentage des paquets perdus.

  • -c, --critical : cette option spécifie la valeur de seuil critique sous forme de RTA et le pourcentage de paquets perdus.

  • -p, --packets : cette option spécifie le nombre de paquets ICMP à envoyer ; par défaut à 5.

  • -t, --timeout : cette option spécifie le nombre de secondes avant de terminer la connexion ; par défaut à 10.

  • -4, --use-ipv4 : cette option spécifie d’utiliser...

Supervision des services réseau

1. Contrôle d’un port réseau

La majorité des applications utilise des ports réseau spécifiques pour faire fonctionner leurs services. Ces derniers sont généralement disponibles à travers un port réseau TCP ou UDP. Par exemple, le service web HTTP écoute sur le port TCP 80. L’un des moyens pour superviser le bon fonctionnement d’un service sur le réseau est de vérifier l’état du port qu’il l’utilise. Si le port est fermé, cela signifie que le service n’est pas lancé et il n’est pas accessible sur le réseau. Dans de nombreux cas avec Nagios, il suffit d’exécuter des plugins génériques check_tcp ou check_udp pour vérifier si un service est disponible sur un port TCP ou UDP. Toutefois, il est recommandé d’exécuter des plugins spécialisés pour divers services tels que les serveurs web ou e-mail.

check_tcp est un plugin générique permettant de tester les connexions TCP avec un hôte spécifié. Alors que le plugin check_udp permet de tester les connexions UDP avec un hôte spécifié. La syntaxe de ces deux plugins est la suivante :


check_tcp|check_udp  -H host -p port [-w <warning >] [-c <critcal>] 
                     [-s <send string>] [-e <expect string>] 
                     [-q <quit string>] [-A] [-m <maximum bytes>] 
                     [-d <delay>] [-t <timeout>] [-r <refuse state>] 
                     [-M <mismatch state>] [-v] [-4|-6] 
                     [-j] [-D <days to cert expiry>] [-S] [-E] 
 

Les options qui peuvent être utilisées avec ces deux plugins sont :

  • -H, --hostname : cette option spécifie le nom ou l’adresse IP de l’hôte cible.

  • -p, --port : cette option spécifie le numéro de port à contacter. Aucun port n’est utilisé par défaut.

  • -4, --use-ipv4 : cette option spécifie d’utiliser...

Supervision d’un serveur de messagerie

Aujourd’hui, le serveur de messagerie est l’un des serveurs les plus critiques dans le système d’information de l’entreprise. En effet, l’e-mail devient le canal de communication le plus utilisé dans le milieu professionnel. D’où vient la nécessité d’avoir un trafic e-mail fiable et performant. Pour cette raison, la surveillance et le contrôle du serveur de messagerie sont donc essentiels pour une communication fiable au sein de l’entreprise.

Nagios assure la surveillance des services de courrier électronique comme SMTP, POP3 et IMAP en vérifiant la disponibilité de ces services et en vous alertant en cas de pannes. Le contrôle de la messagerie avec Nagios consiste à :

  • Contrôler des services SMTP, POP3 et IMAP ;

  • Contrôler l’envoi des e-mails ;

  • Contrôler la réception des e-mails ;

  • Contrôler l’ensemble du processus de livraison des e-mails de bout en bout ;

  • Contrôler l’accès web du client .

1. Contrôle d’un serveur SMTP

SMTP (Simple Mail Transfer Protocol) est un protocole de communication utilisé pour transférer le courrier électronique sur les réseaux d’un serveur de messagerie électronique vers un autre. Un serveur SMTP est un service qui utilise le port 25 par défaut pour envoyer les e-mails. Par conséquent, il est primordial de contrôler sa disponibilité sur le réseau. Nagios offre le plugin check_smtp permettant de tester la connexion avec le serveur SMTP. La syntaxe du plugin check_smtp est la suivante :


check_smtp -H host [-p port] [-C command] [-R response] 
           [-e expect] [-f from addr] [-F hostname] 
           [-A authtype -U authuser -P authpass] 
           [-w <warning time>] [-c <critical time>] 
           [-t timeout] [-S] [-D days] [-n] [-4|-6]
 

Comme ce plugin accepte la plupart des options standards, nous passons directement à un exemple d’utilisation.


./check_smtp smtp.gmail.com  
 
SMTP OK - 0.082 sec. response time|time=0.082320s;;;0.000000
 

Le résultat retourné montre que le service SMTP est bien fonctionnel sur l’hôte...

Supervision des bases de données

1. Contrôle d’un serveur MySQL

MySQL est un système de gestion de bases de données relationnelles (abrégé SGBDR) gratuit, populaire et très utilisé aujourd’hui pour stocker les données des applications web surtout celles qui sont basées sur PHP. Le serveur MySQL est une application qui fonctionne sur le port 3306 par défaut. Nagios propose deux sondes pour contrôler un serveur MySQL. La première qui est nommée check_mysql, permet de contrôler l’état du serveur MySQL lui-même en vérifiant la connectivité à la base de données. La deuxième qui est nommée check_mysql_query, s’intéresse à contrôler le temps d’exécution d’une requête SQL par rapport à un seuil bien défini.

Commençons d’abord par contrôler l’état du serveur MySQL en utilisant le plugin check_mysql. Voici la syntaxe de ce plugin :


check_mysql [-H host] [-d database] [-P port]  
[-u user] [-p password] [-S] [-n] [-l]
 

Ce plugin accepte les options suivantes :

  • -H, --hostname : cette option spécifie le nom ou l’adresse IP d’hôte.

  • -P, --port : cette option spécifie le numéro de port à utiliser. Par défaut, c’est le port  3306.

  • -d, --database : cette option spécifie le nom de la base de données à contrôler.

  • -u, --username : cette option spécifie le nom d’utilisateur pour se connecter.

  • -p, --password : cette option spécifie le mot de passe de cet utilisateur.

  • -S, --check-slave : cette option permet de vérifier si le serveur esclave fonctionne correctement.

  • -n, --ignore-auth : cette option permet d’ignorer l’échec de l’authentification et vérifier seulement la connectivité mysql.

  • -l, --ssl : cette option permet d’utiliser le cryptage SSL.

Un exemple d’utilisation de ce plugin est le suivant : nous allons essayer à travers l’exemple ci-dessous d’utiliser le plugin check_mysql pour contrôler un serveur MySQL à distance avec un compte utilisateur possèdant uniquement les droits SELECT sur la base de données.


check_mysql -H serveurdb -u nagios...

Supervision des ressources système

1. Contrôle de la charge du système

Linux, Mac et d’autres systèmes Unix affichent des chiffres « load average ». Ces valeurs vous indiquent comment les ressources de votre système sont occupées. Le load average désigne, sous les systèmes UNIX/Linux, une moyenne de la charge système pour trois périodes 1, 5 et 15 minutes, une mesure de la quantité de travail que fait le système durant ces périodes. Un ordinateur complètement inactif a une charge moyenne de 0. Chaque processus en cours d’exécution en utilisant ou en attente de ressources CPU ajoute 1 à la charge moyenne. Donc, si votre système a une charge de 5, cinq procédés sont soit en utilisation ou en attente de la CPU. Ces valeurs peuvent être récupérées par les commandes Linux uptime ou top :


top 
 
top - 06:26:47 up 226 days, 23:23,  2 users,  load average: 0.00, 0.00, 0.00 
Tasks: 111 total,   1 running, 110 sleeping,   0 stopped,   0 zombie 
Cpu(s):  0.5%us,  0.7%sy,  0.0%ni, 98.5%id,  0.0%wa,  0.0%hi,  0.0%si, 0.3%st 
Mem:   2054424k total,  1336356k used,   718068k free,   156484k buffers 
Swap:        0k total,        0k used,        0k free,  1025332k cached
 


uptime  
 
06:30:09 up 226 days, 23:27, 1 user,  load average: 0.00, 0.00, 0.00
 

Nagios fournit le plugin check_load pour contrôler la charge du système. La syntaxe de ce plugin est :


check_load [-r] -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15
 

Trois options sont disponibles avec check_load :

  • -r, --percpu : cette option permet de diviser la charge système par le nombre de CPU.

  • -w, --warning : cette option spécifie les valeurs des seuils d’avertissement pour les périodes 1, 5 et 15 minutes. Elle s’exprime sous cette forme WLOAD1,WLOAD5,WLOAD15.

  • -c, --critical : cette option spécifie les valeurs des seuils critiques pour les périodes 1, 5 et 15 minutes. Elle s’exprime sous cette forme CLOAD1,CLOAD5,CLOAD15.

L’exemple ci-dessous utilise le plugin check_load pour vérifier la charge système du serveur Nagios :


./check_load -r -w3,2,1 -c5,4,3 ...

Autres plugins

Nagios propose également beaucoup d’autres plugins pour accomplir des tâches de contrôle basiques ou avancées pour les machines et les services. Nous allons essayer de voir d’autres plugins à travers cette section et nous vous recommandons de voir le reste des plugins officiels sur le site web de Nagios Exchange.

1. Contrôle de la mise à jour du système  

Plusieurs systèmes d’exploitation Linux utilisent le programme de gestion de paquets apt-get fourni avec le paquet APT de Debian pour chercher de nouvelles mises à jour, installer et désinstaller des logiciels en automatisant la récupération de paquets à partir de sources APT. APT est conçu à l’origine pour travailler avec des paquets .deb sur des distributions Debian et Ubuntu, mais il a été adapté pour travailler avec des paquets Red Hat Package Manager (RPM) sur des distributions Red Hat et CentOS avec l’outil apt-rpm.

Nagios fournit un plugin nommé check_apt qui vous permet de contrôler la mise à jour du système avec une possibilité d’effectuer automatiquement ses mises à jour.

check_apt vérifie les mises à jour logicielles sur les systèmes en utilisant la commande apt-get. La syntaxe de ce plugin est la suivante :


check_apt [-d|-u|-U [<opts>]] [-n] [-t timeout] ...