Вы находитесь на странице: 1из 55

Nagios

ALLOVON Olivier MOULIN Yoann ROGER Rmi

DEVES Nicolas

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

Applicatifs Services Clients

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)

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-byepager host_notification_commands hostnotify-by-email,host-notifyby-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 :

Pour un hte :

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) 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:00-24:00 thursday 00:00-09:00,17:00-24:00 friday 00:00-09:00,17:00-24:00 saturday 00:00-24:00 }

Fichier nagios/checkcommand.cfg

Associe le nom d'une commande un script avec ces paramtres

define command { 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

Define hostgroupescalation Permet de dfinir une cascade d'alerte pour un { hostgroup_name groupe d'host si un des hostgroup_name hosts du 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

0 1 2
3

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 trap Gestionnaire SNMP (netsnmp) send_nsca

Source de traps SNMP trap Gestionnaire SNMP (netsnmp) fichier

OU

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