Vous êtes sur la page 1sur 55

Nagios

ALLOVON Olivier
DEVES Nicolas
MOULIN Yoann
ROGER Rmi
SAUVAJON Brice

Plan

Prsentation de loutil
Les fichiers de configuration
Les plugins
Nagios et SNMP
Etude de cas et cahier des charges

Prsentation de Nagios

Fonctionnement
Interface
Installation

Historique de Nagios

Explosion des systmes dinformations


vers le milieu des annes 90.
Dcentralisation et baisse des cots
des systmes dinformations

Besoin de supervision de ces nouveaux


systmes.
Naissance de Nagios en 1999 (license
GPL)

Fonctionnement

Fonctionnement
Quelques plugins par catgorie:
Equipement

Test de lespace disque disponible


Charge du systme en temps rel
Test du Swap disque
Monitoring de temprature

Rseaux-protocoles
Applicatifs
Services
Clients

Fonctionnement
Quelques plugins par catgorie:
Equipement
Rseaux-protocoles

Vrifie si un hte est vivant sur le rseau


(ICMP)
Taux de transfert dun routeur ou switch
Test des rseaux NetWare
Test de la couche Transport (UDP)

Applicatifs
Services
Clients

Fonctionnement
Quelques plugins par catgorie:
Equipement
Rseaux-protocoles
Applicatifs

Encapsulation de requte en utilisant SSH


comme support
Test des serveurs Radius

Services
Clients

Fonctionnement
Quelques plugins par catgorie:
Equipement
Rseaux-protocoles
Applicatifs
Services

Vrification de ltat de serveurs :

DNS
FTP
Pop/Imap

Clients

Fonctionnement
Quelques plugins par catgorie:
Equipement
Rseaux-protocoles
Applicatifs
Services
Clients

Valide le bon fonctionnement des clients


Nagios
Test des serveurs et client NT

Fonctionnement
Possibilits de NAGIOS :
Monitoring distance travers un
firewall.
Interface web
Il est possible de dfinir plusieurs
serveurs esclaves qui prennent le
relais si le serveur matre tombe.

Interface

Interface

Interface

Interface

Interface

Interface

Interface

Interface

Interface

Installation

Systme Unix (portage sur dautre


systme possible)
Compilateur C
Compilation des binaires / package
Debian
Ncessit dun serveur apache(ou
autre) pour une interface web
TCP/IP doit tre configur

Fichiers de configuration

Mode Configuration

Reprsentation de type Objet

Attribut
Mthode

Dpendance entres les Objets


1 Fichier pour chaque type d'objet

Configuration de Nagios

On remplit un certain nombre de fichiers de


configuration:

Fichier
Fichier
Fichier
Fichier
Fichier
Fichier
Fichier
Fichier
Fichier
Fichier

contact.cfg
contactgroups.cfg
host.cfg
hostgroups.cfg
services.cfg
timeperiods.cfg
command.cfg
checkcommand.cfg
dependencies.cfg
escalations.cfg

Arbre de dpendance

Fichier
nagios/contacts.cfg.

Un contact dfinit une


personne prvenir dans
les cas ou un reporting
est demand.
On dfinit

le nom du contact
(identifiant pour faire
rfrence ce contact dans
les autres fichiers)
son alias
les priodes de notification
par dfaut
Les mthodes de
notification par dfaut
les lments ncessaires
pour communiquer avec ce
contact

define contact
{
contact_name ROOT
alias NAGIOS ADM
service_notification_period 24x7
host_notification_period 24x7
service_notification_options
w,u,c,r
host_notification_options d,u,r
service_notification_commands
notify-by-email,notify-by-epager
host_notification_commands
host- notify-by-email,hostnotifyby-epager
email root@root.fr
pager root@root.fr
}

Fichier
nagios/contactgroups.cfg.

Un groupe de contacts
permet de regrouper
un ou plusieurs
contacts pour mettre
des notifications.
On dfinira pour
chaque groupe cr :

un nom de groupe (qui


permettra d'identifier le
groupe dans les autres
fichiers)
un alias
les membres du groupe
(dfinis dans
contact.cfg)

define contactgroup
{
contactgroup_name
GrContact1
alias Groupe Numro
1
members
ROOT,USR1
}

Fichier nagios/hosts.cfg.

Une dfinition d'hte


s'applique un serveur
"physique", une station de
travail, un priphrique, un
quipement, qui se trouve sur
votre rseau.
On le dfinit par:

le modle utiliser
le nom de la machine (pour y
faire rfrence dans les
fichiers de configuration)
un alias
l'adresse IP de la machine
la commande excuter pour
vrifier laccessibilit de la
machine (dfinie dans
nagios/checkcommands.cfg)
les paramtres de notification

define host
{
use modle1
host_name machine1
alias MaMachine
address 127.0.0.1
check_command
commande1
max_check_attempts 20
notification_interval 60
notification_period 24x7
notification_options d,u,r
}

Fichier
nagios/hostgroups.cfg

Un groupe d'htes permet


de regrouper un ou
plusieurs htes pour
simplifier les notifications.
On dfinira ici pour chaque
groupe cr :

un nom de groupe
(permettant d'identifier le
groupe dans les autres
fichiers)
un alias
les groupes de contacts y
associer
une liste de machines
associer au groupe

define hostgroup
{
hostgroup_name
GrMachine1
alias Groupe 1 de
machines
contact_groups
GrContact1
members Machine1,
Machine2
}

Fichier nagios/services.cfg

Un service identifie une


ressource ou un service
surveiller sur une machine
On dfinit:

le modle utiliser
l'identifiant de la machine
concerne
le nom du service voulu
les paramtres lis
lexcution de la vrification du
service
le groupe de contact concern
par les notifications
les paramtres de notification
la commande excuter pour
vrifier le bon fonctionnement
du service (avec ses
arguments)

define service
{
use generic-service
host_name Machine1
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups GrContact1
notification_interval 240
notification_period 24x7
notification_options c,r
check_command
check_ping!100.0,20%!500.0,60
%
}

Les options

Intervalles de temps : minutes


Options de notification

Pour un service :

w = envoi de la notification pour un tat WARNING


u = envoi de la notification pour un tat UNKNOWN
r = envoi de la notification pour le retour la normale
n (none)

Pour un hte :

d = envoi de la notification pour un tat DOWN


u = envoi de la notification pour un tat
UNREACHABLE
r = envoi de la notification pour le retour la normale
n (none)

Fichier
nagios/timeperiod.cfg

Dfinit une tranche


horaire pour
connatre la
disponibilit d'un
objet

define timeperiod
{
timeperiod_name nonworkhours
alias Non-Work Hours
sunday 00:00-24:00
monday 00:00-09:00,17:00-24:00
tuesday 00:00-09:00,17:00-24:00
wednesday 00:00-09:00,17:0024:00
thursday 00:00-09:00,17:0024:00
friday 00:00-09:00,17:00-24:00
saturday 00:00-24:00
}

Fichier
nagios/checkcommand.cfg

Associe le nom d'une define command


commande un script {
avec ces paramtres command_name

command_name
command_line command_line
}

Fichier nagios/dependencies.cfg

Dfinit la dpendance entre host ou service


Supprime les cascades d'alertes
Si un service ou un host tombe, les alertes des
host et services qui en dpendent ne sont pas
envoys

Fichier nagios/dependencies.cfg

define servicedependency
{
dependent_host_name host_name
dependent_service_description service_description
host_name host_name
service_description service_description
execution_failure_criteria
[o,w,u,c,n]notification_failure_criteria
[o,w,u,c,n]
}

define hostdependency
{
dependent_host_name host_name
host_name host_name
notification_failure_criteria [o,d,u,n]
}

Fichier
nagios/escalations.cfg

Permet de dfinir une cascade d'alerte si un


service ou un host vient tomber
Fonctionnalit optionnelle

Fichier
nagios/escalations.cfg

define serviceescalation
{
host_name host_name
service_description service_description
contact_groups contactgroup_name
first_notification #
last_notification #
notification_interval
#
}
define hostescalation
{
host_name host_name
contact_groups contactgroup_name
first_notification #
last_notification #
notification_interval
#
}

Fichier
nagios/escalations.cfg

Permet de dfinir une Define


hostgroupescalation
cascade d'alerte pour
{
un groupe d'host si
hostgroup_name
un des hosts du
hostgroup_name
groupe vient
contact_groups
tomber
contactgroup_name
first_notification
#
Fonctionnalit
last_notification
#
optionnelle
notification_interval #
}

Les plugins Nagios

Les plugins Nagios :


prsentation

Pas de mcanisme interne dans


Nagios pour vrifier ltat dun hte,
un service, etc
Utilisation de programmes externes
appels plugins
Les plugins permettent de contrler
une ressource ou un service local ou
distant

Les plugins Nagios :


prsentation

Les plugins Nagios :


prsentation

Programmes excutables ou
scripts (perl, shell, etc)
Nagios teste la valeur retourne
par le plugin pour savoir ltat de
la ressource ou du service contrl
Nimporte qui peut dvelopper son
propre plugin afin de surveiller un
service spcifique

Les plugins Nagios :


dveloppement

Peu importe le langage de


programmation : C, shell, perl,
Doit renvoyer une valeur entre 0 et 3 :

Valeur

Statut

OK

Warning

Critical

Unknown

Les plugins Nagios :


dveloppement

Doit afficher un message court sur


la sortie standard (1 ligne, max 80
caractres)
Remarque : Indiquer le chemin
absolu des appels systmes
utiliss

Les plugins Nagios :


excution distance

Utilisation de laddon NRPE (Nagios


Remote Plugin Executor)
NRPE comprend un agent nrpe qui
tourne sur la machine distante et un
plugin check_nrpe sur la machine
Nagios
Le plugin check_nrpe fait une requte
lagent en demandant lexcution dun
plugin sur la machine ou tourne lagent

Les plugins Nagios :


excution distance

Lagent excute le plugin demand


et renvoie le rsultat au plugin
check_nrpe de la machine Nagios
Le plugin check_nrpe renvoie la
sortie du plugin distant et le code
de retour Nagios comme si
c'tait le sien

Les plugins Nagios :


configuration de Nagios

Dans les fichiers services.cfg et


hosts.cfg, on indique la commande
utiliser pour contrler un service ou une
machine
Ces commandes sont dfinies dans le
fichier checkcommands.cfg. Cest
dans ce fichier quest indique la ligne
de commande excuter

Gestion des traps SNMP

Gestion des traps SNMP

2 types de contrles sous Nagios :

Contrles actifs, raliss par Nagios


Contrles passifs, raliss par des
applications externes et dont le rsultat
est soumis Nagios

Gestion des traps SNMP par un


contrle passif : cest le gestionnaire
SNMP (ex : net-snmp) qui reoit les
traps et alerte Nagios

Gestion des traps SNMP

Sur le gestionnaire SNMP il faut crer


un handler pour chaque trap grer
(fichier /etc/snmptrapd.conf pour netsnmp)
Le handler soumet un rsultat (de 0
3) Nagios, soit en crivant dans un
fichier
(/usr/local/nagios/var/rw/nagios.cmd),
soit en utilisant NSCA

NSCA

Permet d'envoyer des rsultats de


contrles passifs de services un
autre serveur sur le rseau sur lequel
tourne Nagios.
2 parties :

nsca : dmon qui tourne sur le serveur


Nagios
send_nsca : programme client excut sur
la machine qui veut envoyer un rsultat

Source de traps
SNMP

Source de traps
SNMP

trap
Gestionnaire
SNMP (netsnmp)
send_nsca

trap
OU

Gestionnaire
SNMP (netsnmp)
fichier

NAGIOS
nsca

NAGIOS

Cas o le gestionnaire
SNMP est sur une
machine distincte de
Nagios

Cas o le gestionnaire
SNMP est sur la mme
machine que Nagios

Etude de cas