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] ...