Nagios

De The Linux Craftsman
Aller à la navigation Aller à la recherche

Prérequis

Tout d'abord, assurez-vous d'avoir installé le dépôt EPEL car la majeure partie de nos paquets viennent de cette source !

Installation

Nagios à besoin d'un serveur web pour fonctionner, ce qui nous donne :

yum -y install httpd nagios nagios-plugins-all

Avant d'aller plus loin, intéressons-nous au fonctionnement de Nagios.

Fonctionnement

Configuration

Plusieurs éléments de configuration sont présents dans Nagios:

timeperiods

Elles permettent de fixer les plages de notifications des contacts et de contrôle des hôtes et services.

contact

Ceux sont les personnes qu'ils faut alerter par la supervision

contactgroup

Ceux sont des groupes de plusieurs contact qui vont être alertées en même temps. Ceux sont souvent des personnes occupant le même poste (administrateur système, webmestre , responsable d'exploitation, etc...)

hosts

Ils représentent les machines physiques à superviser

hostgroup

Permettent de rassembler plusieurs host occupant le même rôle ou faisant tourner une même application.

services

Ceux sont les contrôles à effectuer sur un host (DNS, est-ce que le démon SSH tourne ?, % d'utilisation CPU, % d'utilisation mémoire, l’IO disque, ...)

servicegroup

Permet de rassembler des services pour les considerer comme un bloc comme c'est souvent le cas dans un cluster applicatif.

template

Ils permettent d'éviter les redondances au niveau des définitions d’hôtes et de services en regroupant des variables communes.

Nagios config operation.png

Notifications

  1. Au début le service est disponible, le voyant est au vert (état OK)
  2. Quand le service ne répond plus, Nagios le passe de l’état OK à Warning. Le service passe en état SOFT, c'est à dire que Nagios va déclencher le cycle de vérification de la fiabilité de l’incident (utilisation de retry_check et max_check_attemps)
  3. Au bout du cycle de vérification, Nagios passe le service en état HARD, c'est à dire que l’incident est certifié. Le cycle de notification va commencer (tous les notification_interval).
  4. Quand le service répond de nouveau, Nagios envoi une dernière notification pour signaler que le service est repassé à l'état OK.
Nagios service notification.png

Configuration

Commençons par observer le contenu du répertoire /etc/nagios/objects:

# ll /etc/nagios/objects
total 48
-rw-rw-r--. 1 root root  7704 31 août   2013 commands.cfg
-rw-rw-r--. 1 root root  2166 31 août   2013 contacts.cfg
-rw-rw-r--. 1 root root  5403 31 août   2013 localhost.cfg
-rw-rw-r--. 1 root root  3124 31 août   2013 printer.cfg
-rw-rw-r--. 1 root root  3293 31 août   2013 switch.cfg
-rw-rw-r--. 1 root root 11158 31 août   2013 templates.cfg
-rw-rw-r--. 1 root root  3208 31 août   2013 timeperiods.cfg
-rw-rw-r--. 1 root root  4019 31 août   2013 windows.cfg

Timeperiods.cfg

Dans ce fichier sont déclaré les périodes que nous allons pouvoir utiliser pour la vérification des hôtes ou des services. Ci-dessous un exemple :

define timeperiod{
   timeperiod_name 24x7
   alias           24 Hours A Day, 7 Days A Week
   sunday          00:00-24:00
   monday          00:00-24:00
   tuesday         00:00-24:00
   wednesday       00:00-24:00
   thursday        00:00-24:00
   friday          00:00-24:00
   saturday        00:00-24:00
}

On voit qu'une période se définit comme suit :

  • timeperiod_name : identifiant de la période, doit être unique dans toute la configuration de 'Nagios;
  • alias : appellation longue, permettant de mieux identifier la période;
  • monday 00:00-24:00, tuesday 00:00-24:00, ... : les jours de la semaine suivit de l'heure de début et de l'heure de fin

Pas très compliqué de créer sa propre période. Imaginons que nous voulions une période qui correspond aux lundi matin entre 8h et 9h :

define timeperiod{
   timeperiod_name week_start
   alias           Lundi matin de 8h à 9h
   monday          08:00-09:00
}

contact.cfg