Académique Documents
Professionnel Documents
Culture Documents
Nagios
Nagios
Emmanuel Saracco
Easter-eggs
esaracco@easter-eggs.com
esaracco@free.fr
iii
iv
Chapitre 1. Introduction
Nagios permet de surveiller le bon fonctionnement des services dune ou plusieures machines. Il est crit
en C et fonctionne grce un ensemble de plugins (qui eux peuvent tre crits dans nimporte quel
langage).
Il permet:
De surveiller les services rseau (SMTP, POP3, HTTP, PING, etc.)
Une interface permettant lintgration simple de plugins
De prvenir par email ou par tout autre mthode personnalise en cas de problme
Dclencher des procdures personnalises pour rsoudres les problmes
La consultations des diffrents vnements et donnes collects via une interface web
De mettre en place un archivage automatique des donnes collectes
Chapitre 2. Installation
Linstallation de la version fichiers textes est simple:
# apt-get install nagios-text
Par dfaut, nagios est install avec des fichiers de configuration prremplis. Il faudra donc les diter pour
les adapter notre convenance.
Chapitre 3. Paramtrage
Linstallation de base du paquet ne permet pas dutiliser de suite nagios. Il est ncessaire de faire un
certain nombre de paramtrages pour cela.
3.1. Apache
Le paquet installe la configuration apache dans le fichier /etc/nagios/apache.conf. Ce fichier est
destin tre inclu dans le fichier de configuration gnral dapache. Linclusion nest pas faite lors de
linstallation. Il faut donc diter le fichier /etc/apache/httpd.conf et y ajouter la ligne suivante:
Include /etc/nagios/apache.conf
Nous pouvons prsent nous loguer sur linterface web avec le nouveau compte que nous venons de
crer.
Par contre, si nous pouvons nous loguer sans problme, nous navons pas les droits sur grand chose... Il
va donc falloir cette fois-ci diter la configuration propre nagios.
Chapitre 3. Paramtrage
Pour autoriser laccs tous les utilisateurs logus sur linterface web il suffit de mettre un astrisque *
au lieu de prciser le login.
Note : Il nest pas ncessaire de redmarrer nagios aprs ce genre de modification.
Chapitre 3. Paramtrage
On dfinit ainsi le nom du contact (identifiant que lon utilisera par la suite pour faire rfrence ce
contact dans les autres fichiers de configuration), son alias (identifiant plus humainement
comprhensible), les priodes de notification par dfaut ainsi que les lments ncessaires pour
communiquer avec ce contact. Lexemple qui se trouve dans le fichier est le suivant:
Exemple 3-1. Un contact
define contact{
contact_name
alias
service_notification_period
host_notification_period
service_notification_options
host_notification_options
service_notification_commands
host_notification_commands
email
pager
}
nagios
Nagios Admin
24x7
24x7
w,u,c,r
d,u,r
notify-by-email,notify-by-epager
host-notify-by-email,host-notify-by-epager
nagios-admin@localhost.localdomain
pagenagios-admin@localhost.localdomain
Les variables permettant dindiquer les priodes sont dfinies dans le fichier
/etc/nagios/timeperiods.cfg. Il peut tre ncessaire de les adapter en fonction du pays ou des
horaires propres la socit pour laquelle nagios est configurer.
Une fois les contacts crs, nous devons crer des groupes auxquels les associer.
Chapitre 3. Paramtrage
}
On dfinira ici pour chaque groupe cr un nom de groupe (qui permettra didentifier le groupe par la
suite dans les autres fichiers de configuration), un alias (identifiant plus humainement comprhensible),
et une liste de contacts associer au groupe. Lexemple qui se trouve dans le fichier est le suivant:
Exemple 3-2. Un groupe de contacts
define contactgroup{
contactgroup_name
alias
members
}
router-admins
Router Technicians
nagios
Lajout de plusieurs utilisateurs dans un groupe se fait simplement en sparant les diffrents identifiants
par une virgule.
A prsent que nous avons cr des utilisateurs et des groupes, nous pouvons commencer mettre en
place notre rseau.
Chapitre 3. Paramtrage
Exemple 3-3. Un modle de machine
define host{
name
generic-host
notifications_enabled 0
event_handler_enabled 0
flap_detection_enabled 0
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register
0
}
Aprs avoir dfini nos modles, nous pouvons ajouter les machines.
3.3.2.1.2. Cration des machines base sur un modle
Lenregistrement dune nouvelle machine se fait dans un bloc:
define host{
}
Nous dfinirons ici le modle utiliser, le nom de la machine (celui dont nous nous servirons pour y faire
rfrence dans les fichiers de configuration), un alias (identifiant plus humainement comprhensible), la
commande utiliser pour vrifier que la machine est vivante (rfrence une commande dfinie dans
/etc/nagios/checkcommands.cfg), ladresse IP de la machine, la priode de notification ainsi
quun certain nombre dautres variables. Lexemple qui se trouve dans le fichier est le suivant:
Exemple 3-4. Une machine
define host{
use
host_name
alias
address
check_command
max_check_attempts
notification_interval
notification_period
notification_options
}
generic-host
gw
Default Gateway
10.0.0.1
check-host-alive
20
60
24x7
d,u,r
Une fois que nous avons cr nos machines nous pouvons les associer des groupes.
Chapitre 3. Paramtrage
On dfinira ici pour chaque groupe cr un nom de groupe (qui permettra didentifier le groupe par la
suite dans les autres fichiers de configuration), un alias (identifiant plus humainement comprhensible),
les groupes de contacts y associer et une liste de machines associer au groupe. Lexemple qui se
trouve dans le fichier est le suivant:
Exemple 3-5. Un groupe de machines
define hostgroup{
hostgroup_name
alias
contact_groups
members
}
gateways
Routers and Gateways
router-admins
gw
Lajout de plusieurs machines dans un groupe se fait simplement en sparant les diffrents identifiants
par une virgule.
A prsent que nous avons cr des groupes de contacts et des groupes de machines, nous pouvons
commencer mettre dfinir quels seront les services surveiller pour chaque machine.
Chapitre 3. Paramtrage
Dans le modle on dfinira le nom du modle ainsi quun certain nombre de variable. Lexemple qui se
trouve dans le fichier est le suivant:
Exemple 3-6. Un modle de service
define service{
name
generic-service
active_checks_enabled 0
passive_checks_enabled 0
parallelize_check 1
obsess_over_service 1
check_freshness
0
notifications_enabled 0
event_handler_enabled 0
flap_detection_enabled 0
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register
0
}
Aprs avoir dfini nos modles, nous pouvons ajouter les services pour chaque machine.
Nous dfinirons ici le modle utiliser, lidentifiant de la machine concerne, le nom du service voulu, le
groupes de contacts responsable de cet lment ainsi que certaines autres variables.
Exemple 3-7. Un service
define service{
use
host_name
service_description
is_volatile
check_period
max_check_attempts
normal_check_interval
retry_check_interval
contact_groups
generic-service
gw
PING
0
24x7
3
5
1
router-admins
Chapitre 3. Paramtrage
notification_interval
notification_period
notification_options
check_command
}
240
24x7
c,r
check_ping!100.0,20%!500.0,60%
services...
1 services.
hosts...
1 hosts.
host groups...
1 host groups.
contacts...
1 contacts.
contact groups...
1 contact groups.
service escalations...
1 service escalations.
host group escalations...
0 host group escalations.
service dependencies...
0 service dependencies.
host escalations...
0 host escalations.
host dependencies...
0 host dependencies.
commands...
22 commands.
time periods...
4 time periods.
for circular paths between hosts...
for circular service execution dependencies...
10
Chapitre 3. Paramtrage
Checking global event handlers...
Checking obsessive compulsive service processor command...
Checking misc settings...
Total Warnings: 0
Total Errors:
0
Things look okay - No serious problems were detected during the pre-flight check
11
Chapitre 4. Personnalisation
Nagios permet de personnaliser chacune des machines configures en y associant des donnes tendues.
Cette section ne concerne en rien lactivit principale de surveillance, mais elle permet denjoliver le
rendu de certaines informations.
12
13