La configuration de Nagios s'appuie sur une représentation orienté objet. Un objet de configuration Nagios décrit une unité spécifique telle qu'un service, un hote, une commande, un contact ou groupe de contacts etc.
Chaque objet est décrit par un ou plusieurs couples (attribut, valeur). Nagios inclus une forme d'héritage entre objets de configuration sous la désignation de template.
Il est également possible de déclarer des relations de dépendance entre les objets de configuration définis.
La configuration repose sur un ensemble de fichiers texte. Le fichier principal est nagios.cfg qui fait appels aux autres fichiers *.cfg
Dans une configuration standard on trouve un fichier de configuration par type d'objet: hosts.cfg, services.cfg etc
Un hôte héberge un ou plusieurs services. Une machine (host) n'a que 3 états: UP(correpsond à Ok ou Warning), DOWN (correspond à Critical) ou UNRECHEABLE s'il ne peut être testé à cause d'une coupure réseau par exemple.
Les tests des hôtes s'appuient par défaut sur ICMP (ping). Les hôtes ne sont pas testés si les services associés sont OK. Si un service déployé sur un hôte est opérationnel, alors L’hôte est considéré par Nagios opérationnel.
Permettent de définir à qui, comment, sur quelle fréquence et plages horaires doivent être envoyées les notifications.
Définit les actions comprenant l’exécution des plugins de test et l'envoi des notifications.
Les valeurs des attributs des objets de configuration Nagios peuvent être utilisées par les objets command pour le paramétrage des plugins.
Les objets command sont déjà fournis pour la plupart des plugins dans la configuration par défaut.
Configuration de Nagios pour surveiller un serveur Web:
define host{ host_name webserver alias webapp linux host address www.localdomain. check_command check-host-alive max_check_attempts 3 check_period 24x7 notification_interval 180 notification_period 24x7 notification_options d,r,f,u contact_groups administrators }
Quelques remarques à propos de cette définition:
define service{ service_description http_service host_name webserver check_command check_http max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 check_period 24x7 notification_interval 180 notification_period 24x7 notification_options w,c,r,f,u contact_groups administrators }
Quelques remarques à propos de cette définition:
ToDo
Il est intéressant d'observer la définition des objets de configuration de type command. Ici la commande check-host-alive.
define command{ command_name check-host-alive command_line $USER1$/check_icmp -H $HOSTADDRESS$ }
L'attribut command_line définit la ligne de commande d’exécution du test. Elle utilise des macros qui seront remplacés à l’exécution par les valeurs des objets de configuration ici par exemple: