Dans le chapitre précédent, vous avez respecté un mini cahier des charges visant à superviser le serveur Web Nagios. Pour ce faire, vous avez créé un objet command afin de modéliser une sonde basée sur le plugin check_http
.
Dans ce chapitre, il s'agit d'ajouter cette sonde à la configuration de Nagios en modélisant l'objet service associé et en le rattachant à un host. En outre, je vous indiquerai comment retrouver l'ensemble de la configuration de cette sonde sur l'interface d'administration.
Créez un service Nagios
C'est la dernière étape de l'ajout d'une sonde à Nagios Core. Actuellement, votre nouvelle commande check-http-exemple-opencr
est configurée mais pas utilisée. Pour pouvoir exploiter cette commande, il faut la rattacher à un objet host ou service, en utilisant la directive check_command
.
Dans un premier temps, je vous propose de créer un nouveau service pour le hostNagios Server
, que vous avez configuré dans le fichier nagios-server.cfg
plus tôt dans le cours.
Dans le fichier nagios-server.cfg
, sous la définition du service « SSH sur Nagios Server », ajoutez les lignes suivantes :
define service { service_description HTTP sur Nagios Server host_name Nagios Server check_command check-http-exemple-opencr!/nagios/main.php!'4.4.2'!8200!-a nagiosadmin:pass max_check_attempts 3 }
Analysons ici un peu les valeurs passées à la directive check_command
:
check-http-exemple-opencr
: vous retrouvez le nom de la command configurée plus haut. Il est important de remarquer que le nom de la commande doit correspondre exactement à celui défini dans la directivecommand_name
de l'objet command ;!/nagios/main.php
: le caractère « ! » permet de séparer les différents arguments variables passés à la commande. Dans notre cas, la valeur/nagios/main.php
est passée à l'argument\$ARG1\$
de la commande, puisque c'est le premier. Et dans votre commande définie dans le fichiercommandes.cfg
, le premier argument obligatoire variable correspond bien à l'option-u
du plugincheck_http
(l'URL de la ressource) ;!'4.4.2'
: il s’agit de la seconde valeur, passée à l'argument\$ARG2\$
de la command. Elle correspondant à l'option -s du plugincheck_http
(la chaîne de caractères à trouver dans le code de la page recherchée) ;!8200
: il s’agit de la troisième valeur, passée à l'argument\$ARG3\$
de la COMMAND. Elle correspond à l'option -m du plugincheck_http
(le poids minimal de la page renvoyée) ;!-a nagiosadmin:pass
: il s’agit de la dernière valeur, passée à l'argument\$ARG4\$
de la command. Ici, il faut gérer l'éventuelle authentification htacces sur la page. Cette valeur est un peu particulière, car elle correspond à une option facultative et variable. Son caractère facultatif implique que la définition de la command ne contient pas en dur l’option -a du plugin. Par conséquent, il est nécessaire de passer en même temps l’option et sa valeur dans l’argument du service.
Après l'ajout de ce nouveau service, votre fichier nagios-server.cfg
devrait ressembler à :
nagios@NagiosDebian:/usr/local/nagios/opencr_conf$ more nagios-server.cfg define host { host_name Nagios Server address localhost check_command check-ping-localhost max_check_attempts 3 parents localhost } define service { service_description SSH sur Nagios Server host_name Nagios Server check_command check-ssh-localhost max_check_attempts 3 } define service { service_description HTTP sur Nagios Server host_name Nagios Server check_command check-http-exemple-opencr!/nagios/main.php!'4.4.2'!8200!-a nagiosadmin:pass max_check_attempts 3 }
Il vous reste à tester cette configuration avec la commande suivante :
nagios@NagiosDebian:/usr/local/nagios/opencr_conf$ testNagios
Le résultat devrait ressembler à :
Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 7 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
Si vous n'avez pas d'erreur, relancez le service Nagios pour prendre en compte ce nouveau service :
restartNagios
Il ne vous reste plus qu'à vous connecter sur l'interface d'administration pour constater la présence d'un nouveau service attaché à votre host Nagios Server
:
Voilà : vous venez de rajouter une sonde dans Nagios Core, et vous pouvez constater à partir de l'écran status detail que le plugin renvoie les informations attendues :
Exploitez l'onglet « Configuration » de l'interface Web
Dans le cinquième chapitre de la deuxième partie, pendant le petit tour du propriétaire, j'ai volontairement laissé de côté le sous-menu Configuration de l'interface Web d'administration. Il est temps d'y revenir.
Ce sous-menu sert à visualiser la configuration actuelle de tous les objets Nagios, et notamment celle des hosts et des services.
Vous pouvez ainsi cliquer sur l'onglet Configuration et sélectionner Services dans la liste déroulante des objets.
Cette action vous amène sur la liste complète des services actuellement configurés sur le serveur Nagios. En haut à gauche de la page, un champ de saisie vous permet de filtrer cette liste.
Cliquez maintenant, dans la colonne Check Command, sur le lien correspondant au host Nagios Server et au service HTTPS sur Nagios Server. Vous obtenez alors le détail de la configuration de ce service, sur la page Command Expansion :
Cet écran est très intéressant car il vous permet de consulter la configuration sans pour autant parcourir les fichiers.
La première ligne, nommée To expand, affiche le contenu de la configuration du service Nagios. Notez que Nagios vous affiche les différentes valeurs des arguments en couleur !
La deuxième ligne, nommée
check-http-exemple-opencr
, correspond au nom de l'objet command et reprend exactement la syntaxe saisie dans le fichiercommandes.cfg
, qui contient la liste des macros et des arguments.La troisième ligne fait la fusion entre les deux premières et traduit la manière dont Nagios comprend votre configuration : il reprend la ligne de définition de la command en y intégrant les valeurs des paramètres, définies dans le service. Notez qu’il y a des couleurs pour vous aider à vérifier vos arguments !
La dernière ligne, nommée To expand elle aussi, sert à modifier les valeurs des paramètres dans l'interface afin de reproduire la commande lancée, ce qui est utile pour effectuer des tests en faisant des copier-coller.
Dans le cas où vous omettriez l’une des valeurs des paramètres dans la configuration, vous pourriez obtenir une page présentant les arguments non utilisés.
Notez que Nagios vous indique, avec le mot-clé (undefined), qu'il manque des paramètres dans le service.
Ou encore :
Ici, Nagios vous indique que le service contient des arguments (ARG7 et ARG8) qui ne sont pas utilisés dans la définition de la command.
En résumé
Bravo ! Vous venez de terminer la configuration complète d'une nouvelle sonde pour Nagios, à savoir :
le test du plugin et l'analyse des options possibles ;
la création de l'objet command associé à votre besoin ;
la création de l'objet service pour exploiter cette commande ;
la liaison entre ce nouveau service et le host concerné.
C'est bientôt la fin de ce cours. J'ai été ravi de vous accompagner tout au long de votre apprentissage et j'espèce vous avoir aidé à acquérir les compétences dont vous avez besoin pour votre projet professionnel. Mais ce n'est pas fini ! Je vous propose, dans l'activité de cette partie, de répondre à un nouveau mini cahier des charges et d'ajouter une sonde sur votre serveur Nagios pour superviser le service Web du site OpenClassrooms !