meta données pour cette page
Superviser rapidement un parc Informatique (Nagios)
Ajouter des hôtes
Pour éviter d'avoir pleins de fichiers de part et d'autres, on se créer un dossier qui contiendra la configuration de chacunes des machines :
mkdir machines mv localhost_nagios2.cfg machines/
cp machines/localhost_nagios2.cfg machines/xmg.cfg
- xmg.cfg
define host{ use generic-host host_name xmg alias xmg address 192.168.1.129 }
Cependant, admettons que pour cette machine on souhaite connaitre le nombre de processus. Il faudra alors ajouter la déclaration suivante au précédent fichier :
- xmg.cfg
# Check the number of currently running procs on the local machine. # Warning if > 250 processes, critical if > 400 processes. define service{ use generic-service host_name xmg service_description Total Processes check_command check_procs!250!400 }
Créer un groupe d'hôtes
Les groupes d'hôtes on l'avantage de pouvoir regrouper des hôtes auquel ont leur attachera un ou plusieurs services.
De même, on regroupe les fichiers dans un dossier spécifique :
mkdir goupes_hotes mv hostsgroup.cfg groupes_hotes/ nano groupes_hotes/hostsgroup.cfg
- hostsgroup.cfg
# A list of your ssh-accessible servers define hostgroup { hostgroup_name ssh-servers alias SSH servers members localhost,xmg }
Créer un groupe de services
Précédament nous avons superviser un service précis pour une seule machine. L'avantage des groupes de services est que l'on peut rapidement mettre en place une configuration qui supervisera, par exemple, le service SSH d'un grand nombres de machines.
En d'autres terme, un groupe de service sera appliqué à des hôtes spécifique.
Idem, crééons un dossier pour mieu organiser les fichiers de configurations :
mkdir groupes_services nano groupes_services/gservices.cfg
- gservices.cfg
define servicegroup { servicegroup_name services-ssh alias SSH Services members localhost,SSH,xmg,SSH }
Les groupes de services
Il est possible de liéer le check d'un service à un groupe d'hôtes
Hop! continuons d'organiser notre config :
mkdir groupes_services nano groupes_services/services_nagios2.cfg
Avec l'example de vérifier la disponibilité du service SSH pour le groupe de service “ssh-servers”.
- services_nagios2.cfg
# check that ssh services are running define service { hostgroup_name ssh-servers service_description SSH check_command check_ssh use generic-service }
L'usage des templates
On peut remarquer que la configuration est déjà assez longue pour le peu d'hôtes et de services supervisés. Pour aller plus vite dans la configuration, on peut faire appel à des templates qui contiendrons également d'autres informations tel que les délais de notifications ou quel personnes contacter en cas d'anomalies. Idem pour faire simple, on met les templates dans un dossier.
mkdir templates mv generic-host_nagios2.cfg templates/ mv generic-service_nagios2.cfg templates/
nano templates/generic-host_nagios2.cfg
- generic-host_nagios2.cfg
define host{ name generic-host ; The name of this host template notifications_enabled 1 ; Host notifications are enabled event_handler_enabled 1 ; Host event handler is enabled flap_detection_enabled 1 ; Flap detection is enabled failure_prediction_enabled 1 ; Failure prediction is enabled process_perf_data 1 ; Process performance data retain_status_information 1 ; Retain status information across program restarts retain_nonstatus_information 1 ; Retain non-status information across program restarts check_command check-host-alive max_check_attempts 10 notification_interval 0 notification_period 24x7 notification_options d,u,r contact_groups admins register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! }
- generic-service_nagios2.cfg
# generic service template definition define service{ name generic-service ; The 'name' of this service template active_checks_enabled 1 ; Active service checks are enabled passive_checks_enabled 1 ; Passive service checks are enabled/accepted parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems) obsess_over_service 1 ; We should obsess over this service (if necessary) check_freshness 0 ; Default is to NOT check service 'freshness' notifications_enabled 1 ; Service notifications are enabled event_handler_enabled 1 ; Service event handler is enabled flap_detection_enabled 1 ; Flap detection is enabled failure_prediction_enabled 1 ; Failure prediction is enabled process_perf_data 1 ; Process performance data retain_status_information 1 ; Retain status information across program restarts retain_nonstatus_information 1 ; Retain non-status information across program restarts notification_interval 0 ; Only send notifications on status change by default. is_volatile 0 check_period 24x7 normal_check_interval 5 retry_check_interval 1 max_check_attempts 4 notification_period 24x7 notification_options w,u,c,r contact_groups admins register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! }
Gerer les moyens de contacts
Quand un service est défaillant, Nagios devra contacter un responsable. Idem, on regroupe les informations dans un dossier.
mkdir contacts mv timeperiods_nagios2.cfg contacts mv contacts_nagios2.cfg contacts.cfg
Par défaut, c'est l'utilisateur root qui recevra les mails vu qu'il est disponible tout le temps. ;)
Utiliser la map
La map indique en temps réel l'état des machines sur une carte.
- Organiser la disposition des machines
Par défaut elle ne veut rien dire. Voici l'apperçu de notre objectif :
C'est très simple, il suffit juste de rajouter le paramètre parents lors de la déclaration d'un hôte :
define host{ use generic-host host_name xmg alias xmg address 192.168.1.129 parents routeur }
Ici j'indique que le parent est le routeur de mon réseau local. Il faut donc à postériori avoir créée l'hôte routeur.
- Attribuer une image aux hôtes supervisé
Crééons dans un 1er temps un dossier qui regroupera ces infos puis on indique que l'hôte xmg est une machine debian :
mkdir map mv extinfo_nagios2.cfg map/extinfo_nagios2.cfg nano map/extinfo_nagios2.cfg.cfg
- extinfo_nagios2.cfg
define hostextinfo{ hostgroup_name ssh-servers icon_image base/debian.png icon_image_alt Debian GNU/Linux vrml_image debian.png statusmap_image base/debian.gd2 }