«

»

Nov 15 2012

[Tuto] Nagios: Introduction au fichiers de configurations de Nagios

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 !

(9 commentaires)

2 pings

Passer au formulaire de commentaire

  1. mhtfrs

    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

  2. mhtfrs

    Salut moi aussi le tutos ma plu,en faite j’ai des difficultés pour ajouter des machines qui sont dans le Vmware(virtuel)

  3. kouadio

    Allo
    quelle est la version de nagios que tu as installer ?

  4. ntangu

    bonjour,

    je suis entrain de travailler sur Nagios, et j’aimerai avoir une connaissance vraiment approndie,
    c’est possible de m’aider? svp.

    1. Naciri740

      je suis entrain de travailler sur Nagios, et j’aimerai avoir une comment ajouter des machines sous nagios

  5. akpadji

    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.

  6. clinton

    super tuto.
    mais moi j’utilise NAGIOS XI 2014 mais j’ai des difficulter pour faire la configuration des hotes en mode console

  7. Adam

    ton tuto ma beaucoup aidé dans la realisation de mon rapprt de stage en reseau informatique. grand merci…..

  8. Edgard

    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

  1. Software | Pearltrees

    […] [Tuto] Nagios: Introduction au fichiers de configurations de Nagios » Denis Rosenkranz […]

  2. [Tuto] Nagios: Superviser un hôte Linux avec NRPE » Denis Rosenkranz

    […] « [Tuto] Nagios: Introduction au fichiers de configurations de Nagios […]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Lire les articles précédents :
Asterisk_logo
[Tuto] Asterisk: Mise en place d’un utilitaire de création d’annonces d’accueils

Bonjour à tous, Je vais vous présenter dans ce tuto un utilitaire de ma création pour que vos utilisateurs puissent...

Fermer