• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 11/06/2021

Créez et configurez un service Nagios

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 directive command_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 fichier commandes.cfg, le premier argument obligatoire variable correspond bien à l'option -u du plugin check_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 plugin check_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 plugin check_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 :

Nouveau service Nagios
Nouveau service Nagios

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 :

Détails du nouveau service
Détails du nouveau service

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.

Liste des services configurés sur le serveur Nagios
Liste des services configurés sur le serveur Nagios

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 :

Détail de la configuration du service
Détail de la configuration du service

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 fichier commandes.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 :

Exemple d'alerte d'arguments non utilisés
Exemple d'alerte d'arguments non utilisés

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 !

Exemple de certificat de réussite
Exemple de certificat de réussite