Bonjour à tous,
Dans ce tuto je vais vous expliquer comment la supervision d’un hôte sous Nagios se fait.
Pour ce tuto vous devez avoir un serveur nagios fraîchement installé, je vous recommande de partir du tuto sur l’installation de Nagios.
Découverte des fichiers de configuration de Nagios
Les fichiers de configurations de Nagios se trouvent dans le dossier /usr/local/nagios/etc/
Dans ce dossier vous allez trouver le fichier nagios.cfg, qui est le fichier de configuration principal de Nagios.
Avec ce fichier, vous pouvez spécifier les fichiers ou les dossiers ou se trouvent les fichiers de configurations de vos hôtes.
# OBJECT CONFIGURATION FILE(S) # These are the object configuration files in which you define hosts, # host groups, contacts, contact groups, services, etc. # You can split your object definitions across several config files # if you wish (as shown below), or keep them all in a single config file. # You can specify individual object config files as shown below: cfg_file=/usr/local/nagios/etc/objects/commands.cfg cfg_file=/usr/local/nagios/etc/objects/contacts.cfg cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg # Definitions for monitoring the local (Linux) host cfg_file=/usr/local/nagios/etc/objects/localhost.cfg # Definitions for monitoring a Windows machine #cfg_file=/usr/local/nagios/etc/objects/windows.cfg # Definitions for monitoring a router/switch #cfg_file=/usr/local/nagios/etc/objects/switch.cfg # Definitions for monitoring a network printer #cfg_file=/usr/local/nagios/etc/objects/printer.cfg # You can also tell Nagios to process all config files (with a .cfg # extension) in a particular directory by using the cfg_dir # directive as shown below: #cfg_dir=/usr/local/nagios/etc/servers #cfg_dir=/usr/local/nagios/etc/printers #cfg_dir=/usr/local/nagios/etc/switches #cfg_dir=/usr/local/nagios/etc/routers
Par défaut les fichiers windows.cfg, switch.cfg et printer.cfg sont présents dans le dossier objects mais ne sont pas activés dans le fichier nagios.cfg.
Etant donné que pour l’instant la seule machine supervisé par Nagios est le serveur sur lequel il est installé, son fichier de configuration est activé.
Ouvrons maintenant ce fichier pour comprendre le fonctonnement de Nagios.
Ce fichier se compose en trois parties, la première : HOST DEFINITION, permet de configurer la machine à superviser.
############################################################################### ############################################################################### # # HOST DEFINITION # ############################################################################### ############################################################################### # Define a host for the local machine define host{ use linux-server host_name localhost alias localhost address 127.0.0.1 }
On configure onc l’hôte à superviser dans une balise define host {} avec comme variables:
- use: template à utliser
- host_name: nom de la machine tel qu’il apparaitra dans Nagios
- alias: alias de ce nom
- address: adresse IP de la machine à superviser
Voila pour la définition de l’hôte, passons maintenant à la définitions des groupes d’hôtes:
############################################################################### ############################################################################### # # HOST GROUP DEFINITION # ############################################################################### ############################################################################### # Define an optional hostgroup for Linux machines define hostgroup{ hostgroup_name linux-servers alias Linux Servers members localhost }
Les groupes d’hôtes se définissent donc dans une balise define hostgroup {} avec comme variable :
- hostgroup_name: nom du groupe
- alias: alias du nom du groupe
- members: hostname des machines (hosts) on peut en mettre plusieurs séparés par des « , »
Et la dernière partie est la partie services qui permet de configurer les différents services à superviser.
############################################################################### ############################################################################### # # SERVICE DEFINITIONS # ############################################################################### ############################################################################### # Define a service to "ping" the local machine define service{ use local-service host_name localhost service_description PING check_command check_ping!100.0,20%!500.0,60% }
Voici par exemple l’un des services par défauts de localhost qui permet de vérifier si une machine est pingable il se configure avec la balise define service {} avec les variables suivantes:
- use: nom du template à utiliser
- host_name: hostname de la machine sur laquelle on supervise le service, on peut enmettre plusiers séparés par des « , »
- service_description: nom du service tel qu’il apparaitra dans Nagios
- check_command: commande avec laquelle nagios va checker le service.
Explication de la commande de check:
- check_ping: commande de check fait référence au fichier commands.cfg que nous allons voir
- !100.0,20%: Premier argument
- !500.0,60%: Second argument
Maintenant, toujours dans le dossier objects, ouvrez le fichier commands.cfg et reperez la lignes suivantes:
# 'check_ping' command definition define command{ command_name check_ping command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5 }
Ceci est la definition de la commande du service PING que nous venons de voir, elle se définie dans les balises define command {} avec comme variables:
- command_name: nom de la commande, tel que précisé dans la varible check_command de la définition du service
- command_line: commandes de check du service
- La variable $USER1$ pointe sur le dossier /usr/local/nagios/libexec/ ou sont stockés tous les script de check de services de Nagios
- L’option -H permet de stipuler l’hôte sur lequel le check du service va se faire, et les options -w et -c et-p sont les options que l’ont peut aasocier à la commande.
Voici donc en brut la commande que notre serveur nagios va effectuer pour checker le service PING sur notre hôte local:
/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 100.0,20% -c 500.0,60% -p 5
Je vais maintenant expliquer les valeurs placés en arguments pour les options -w et -c
- -w est l’argument pour le seuil de Warning (avertissement), la première valeur 100.0 est le temps moyen du ping et la valeur 20% est le pourcentage de paquets perdu avant que le service ne se mette en étant WARNING
- -c est l’argument pour le seuil Critical (état critique), les valeurs sont 500 ms et le pourcentage de paquets perdus est à 60% avant que le service ne se mette en état CRITICAL.
- -p est le nombre de ping que va faire la commande.
Pour plus d’informations sur la commande check_ping vous pouvez tapez la commande
/usr/local/nagios/libexec/check_ping --help
Voila donc en en gros comment sont faits les fichiers de configurations de Nagios pour la supervison d’un hôte.
Supervision des plusieurs hôtes
Maintenant que vus savez comment superviser un hôte via un check de son ping nous allons voir comment en rajouter plusieurs.
Dans le dossier objects nous allons créun dossier linux_servers, c’est dans ce dossier que nous allons confgurer toutes nos machines linux à superviser.
Puis nous allons éditer le fichier nagios.cfg se trouvant dans /usr/local/nagios/etc et nous allons donc rajouter la ligne:
#Dossier serveurs Linux cfg_dir=/usr/local/nagios/etc/objects/linux_servers
Et en même temps, commentez la ligne qui permet de superviser le serveur Nagios de la façon suivantes:
# Definitions for monitoring the local (Linux) host #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
Maintenant dans le dossier linux_servers, nous allons créer trois fichiers:
linux_hosts.cfg, linux_hostgroups.cfg et linux_services.cfg
Comme vous le devinez dans le fichier linux_hosts.cfg se trouverons les définitions des hôtes, dans le fichier linux_hostgroups.cfg se trouverons les définitions des groupes et dans le fichier linux_services.cfg, se trouverons les définitions des services que nous allons superviser.
Voici donc le contenus du fichier linux_hosts.cfg
#### LINUX HOST DEFINITIONS ###### define host{ use linux-server host_name nagios alias Serveur Nagios address 127.0.0.1 } define host{ use linux-server host_name portable alias Mon portable address 192.168.2.53 } define host{ use linux-server host_name asterisk alias Serveur Asterisk address 192.168.2.50 }
Je supervise donc trois machines, passons maintenant au fichier linux_hostgroups.cfg
#### LINUX HOSTGROUPS DEFINITIONS #### define hostgroup { hostgroup_name linux_servers alias Serveurs Linux members nagios, asterisk } define hostgroup { hostgroup_name linux_clients alias Machines clientes sous Linux members portable }
J’ai donc créer deux groupes, un groupe regroupant mes serveurs, et un groupe regroupants mes machines clientes sous Linux.
Enfin, nous allons editer le ficher linux_services.cfg
#### LINUX SERVICES DEFINITIONS #### define service{ use local-service host_name nagios, portable, asterisk service_description PING check_command check_ping!100.0,20%!500.0,60% }
Enfin relancez nagios via la commande :
service nagios restart
Puis allez dans l’interface web de nagios (http://ipdevotreserveur/nagios)
Et vou devriez voir dans les différentes vue proposés par Nagios vos trois serveurs supervisés.
Pour l’instant, nous ne pouvons que superviser le PING sur les machines, dans le prochain tutoriel nous allons voir comment mettre en place une supervision plus avancées de nos hôtes Linux tel que:
- Le protocole SSH
- L’espaces disques
- La charge du système
- et d’autres !
(13 commentaires)
2 pings
Passer au formulaire de commentaire
merci beaucoup, ça a bien marché.
salut votre tuto me plait mais j’ai déjà installe nagios sur ma machine et suivre les méthodes de votre configurations mais je n’arrive pas a voir mes les hotes distant
Moi pas comprendre……
salut moi je vien d’ajouter un host mais je trouve ce message : Error: Could not read host and service status information!
quelqu’un pourait m’aider
Salut moi aussi le tutos ma plu,en faite j’ai des difficultés pour ajouter des machines qui sont dans le Vmware(virtuel)
Allo
quelle est la version de nagios que tu as installer ?
bonjour,
je suis entrain de travailler sur Nagios, et j’aimerai avoir une connaissance vraiment approndie,
c’est possible de m’aider? svp.
je suis entrain de travailler sur Nagios, et j’aimerai avoir une comment ajouter des machines sous nagios
Merci pour le tuto. C’est très magnifique. Pour ajouter plusieurs hôtes windows comment on procède. j’aimerais superviser un parc de 70 pcs.
super tuto.
mais moi j’utilise NAGIOS XI 2014 mais j’ai des difficulter pour faire la configuration des hotes en mode console
Daddy do712nse;t like to carry a wallet or coins so instead of me washing his notes and lucky we have plastic ones, he will love to take this out of his pocket each day!Just beautiful
ton tuto ma beaucoup aidé dans la realisation de mon rapprt de stage en reseau informatique. grand merci…..
Surper tuto. J’ai trouvé mon bonheur en vous lisant. Et maintenant j’ai une idée de la façon sont disposé les fichier de nagios ainsi que sa configuration que j’ai pas réussi au final car il me renvoie un message d’erreur en voulant redemarrer le deamon nagios :
MESSAGE d’erreur :
#root@xxxxxxx# service nagios start
Starting nagios (via systemctl): Job for nagios.service failed. See ‘systemctl status nagios.service’ and ‘journalctl -xn’ for details.
[ÉCHOUÉ]
Est -ce que y’aurait d’autre configuration à mefaire faire
Merci de reponse
[…] [Tuto] Nagios: Introduction au fichiers de configurations de Nagios » Denis Rosenkranz […]
[…] « [Tuto] Nagios: Introduction au fichiers de configurations de Nagios […]