TP2 : Configuration de Nagios
Transcription
TP2 : Configuration de Nagios Table des matières TP2 : Configuration de Nagios 2.1 - Inventaire après l’installation de Nagios 2.2 - Configuration du fichier principal : nagios.cfg 2.3 - Configuration des CGI : cgi.cfg 2.4 - Configuration des ressources externes : resource.cfg 2 .5 - Configuration des objets 2.5.1 - Définir des périodes de temps 2.5.2 - Définir des contacts et groupes de contacts 2.5.3 - Définir des hôtes et des groupes d’hôtes Objectif : Ce document va expliquer comment configurer l'outil de monitoring Nagios 4.x. INFO : C’est juste de l’information mais qui peut être nécessaire à la compréhension du TP IMPORTANT : Information importante à prendre en compte TP à Faire : Travaux à réaliser 1 LEVEAU Stanislas Configuration de Nagios TP2 : Configuration de Nagios 2.1 - Inventaire après l’installation de Nagios Après avoir installé Nagios, vous allez le configurer. Vous êtes dans une entreprise, plusieurs serveurs à superviser (Linux, Windows), plusieurs personnes à contacter en cas de défaillances, des périodes d’astreinte… Attention : A l’installation de Nagios, celui-ci est pré-configuré, c’est à dire que les fichiers de configuration sont pré-renseignés. Vérifier lorsque vous allez les paramétrer, que certains paramètres n’existent pas déjà (exemple : période de temps 24/24). SURTOUT NE PAS MODIFIER L’EXISTANT DANS LES FICHIERS DE CONFIGURATION. - Vérifier la présence de ces répertoires : /usr/local/nagios/etc contient les fichiers de configuration. /usr/local/nagios/bin/nagios est l’exécutable Nagios. /usr/local/nagios/libexec/ contient les modules de base de Nagios (les scripts). /usr/local/nagios/sbin/ contient les scripts CGI utilisés par Nagios. 2.2 - Configuration du fichier principal : nagios.cfg - Définir l’arborescence des fichiers de configuration (déjà existante) : Fichier nagios.cfg cfg_file=/usr/local/nagios/etc/objects/commands.cfg cfg_file=/usr/local/nagios/etc/objects/contacts.cfg cfg_file=/usr/local/nagios/etc/objects/localhost.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg 2 LEVEAU Stanislas Configuration de Nagios N’oubliez pas de définir les fichiers que vous ajouterez par la suite à la configuration. Exemple : serveurs-linux.cfg…ce qui donnera une ligne comme celle-ci à ajouter au fichier nagios.cfg : cfg_file=/usr/local/nagios/etc/objects/serveurs-linux.cfg 2.3 - Configuration des CGI : cgi.cfg Nagios se base sur une interface Web pour générer ses rapports. Cette interface Web est générée dynamiquement par des scripts CGI. Le fichier cgi.cfg a pour but de configurer ces CGI. - Définir l’emplacement du fichier nagios.cfg : Fichier cgi.cfg main_config_file=/usr/local/nagios/etc/nagios.cfg - Définir l’URL avec laquelle nous allons accéder au serveur Web de Nagios. Si par exemple vous voulez y accéder à l’adresse http://localhost/nagios, il faut éditer l’option : Fichier cgi.cfg url_html_path=/nagios 2.4 - Configuration des ressources externes : resource.cfg Nagios utilise un système de plugins (check_http, check_ping….). Le fichier resource.cfg sert à les localiser. Le fichier fourni en standard défini le répertoire d’accueil des plugins standards : Fichier resource.cfg $USER1$=/usr/local/nagios/libexec Libre à vous d’ajouter d’autres répertoires de plugins. Exemple : pour vos plugins autres que ceux de la distribution officielle : Fichier resource.cfg $USER2$=/usr/local/nagios/plugins-perso 3 LEVEAU Stanislas Configuration de Nagios 2 .5 - Configuration des objets 2.5.1 - Définir des périodes de temps Vous allez définir des périodes de temps pendant lesquelles les notifications ou les contrôles seront actifs. - Une période 24/24, 7/7 (période déjà existante dans le fichier) : Fichier timeperiods.cfg define timeperiod{ timeperiod_name alias sunday monday tuesday wednesday thursday friday saturday } - 24x7 24 sur 24, 7 sur 7 00:00-24:00 00:00-24:00 00:00-24:00 00:00-24:00 00:00-24:00 00:00-24:00 00:00-24:00 Une période pour les horaires de bureau : Fichier timeperiods.cfg define timeperiod{ timeperiod_name alias monday tuesday wednesday thursday friday } - eme Une 3 horaires_bureau Les horaires de bureau 08:00-19:00 08:00-19:00 08:00-19:00 08:00-19:00 08:00-19:00 période pour les astreintes : Fichier timeperiods.cfg define timeperiod{ timeperiod_name alias sunday monday tuesday wednesday thursday friday saturday } 4 LEVEAU Stanislas astreinte Periode d astreinte 07:30-23:30 07:30-09:00,18:00-23:30 07:30-09:00,18:00-23:30 07:30-09:00,18:00-23:30 07:30-09:00,18:00-23:30 07:30-09:00,18:00-23:30 07:30-23:30 Configuration de Nagios 2.5.2 - Définir des contacts et groupes de contacts Vous allez définir les différents contacts qui recevront les notifications Nagios et les inclure dans un groupe. - Définir un template contact : Fichier templates.cfg define contact { name service_notification_period host_notification_period service_notification_options host_notification_options service_notification_commands host_notification_commands register } generic-contact-formation 24x7 24x7 w,u,c,r d,u,r notify-service-by-email notify-host-by-email 0 - Définir des contacts : Fichier contacts.cfg define contact { contact_name use alias email } admin1 generic-contact-formation Admin systeme Adresse Mail1 define contact { contact_name use alias email } admin2 generic-contact-formation Admin systeme Adresse Mail2 Explication des différents paramètres de l’objet contact : contact_name définit le nom court qui permet à Nagios de l'identifier alias est le nom long où l'on peut mettre plus d'informations. service_notification_period pointe vers une "timeperiod" de Nagios pendant laquelle ce contact doit être notifié pour les alertes sur les services. host_notification_period remplit la même fonction mais pour les alertes sur les hosts. 5 LEVEAU Stanislas Configuration de Nagios service_notification_options définit sur quels critères d'états le contact doit être notifié. Cela correspond à: o w : warning, état correspondant au seuil warning o u : unknown, état inconnu o c : critical, état correspondant au seuil critique o r : recovery, état correspondant à un retour à la normale du service host_notification_options remplit la même fonction pour les hosts. Avec les critères suivants: o d : down, état correspondant à une absence de réponse o u : unreachable, état correspondant à un host qui ne peut être joint à cause d'un host parent qui est down. Voir la définition des hosts avec leurs "parents" o r : recovery, état correspondant au retour à la normale du host service_notification_commands pointe vers une commande définie dans Nagios qui va permettre de notifier le contact en cas d'alerte sur un service. Cette commande est définie par défaut dans Nagios. Elle utilise des macros internes de Nagios pour s'ajuster à chaque service. host_notification_commands remplit le même rôle mais pour les alertes sur les hosts. email définit l'adresse email du contact - Définir un groupe de contacts : Fichier contacts.cfg define contactgroup { contactgroup_name alias members } groupe-systeme-reseau Administrateur systeme admin1, admin2 2.5.3 - Définir des hôtes et des groupes d’hôtes Vous allez définir les différents hôtes à superviser et les inclure dans des groupes d’hôtes. - Définir des templates pour les hôtes : Fichier templates.cfg define host{ name alias obsess_over_host check_freshness event_handler_enabled flap_detection_enabled process_perf_data retain_status_information retain_nonstatus_information notifications_enabled register } 6 LEVEAU Stanislas generic-host-formation generic-host-formation 1 1 1 1 1 1 1 1 0 Configuration de Nagios er - Définir un autre template qui utilisera le 1 template : Fichier templates.cfg define host{ name use alias check_command check_interval retry_interval max_check_attempts check_period contact_groups notification_interval notification_period notification_options register } generic-server-linux generic-host-formation generic-server-linux check-host-alive 5 1 3 24x7 groupe-systeme-reseau 60 24x7 d,u,r 0 Je vous invite à bien lire les explications ci-dessous sur les différents paramètres de ce template pour bien comprendre le fonctionnement de Nagios. PS : vous pouvez définir un template différent pour les serveurs Windows et le matériel réseau. Explication des différents paramètres de l’objet « host » : name définit le nom court de notre template qui va permettre à Nagios de l'identifier. check_command pointe vers la commande qui permet à Nagios de vérifier l'état du host max_check_attempts définit le nombre maximum d'essais que va faire Nagios avant de considérer que le host a changé d'état check_interval définit l'intervalle normal entre deux tests active_checks_enabled active les vérifications actives de Nagios. Cela signifie que Nagios exécutera la check_command définie pour le host passive_checks_enabled désactive les vérifications passives de Nagios. Les vérifications passives correspondent à des états qui sont remontés à Nagios par des scripts externes. Les résultats arrivent par le fichier de commande externe avec une syntaxe précise. check_period pointe vers une timeperiod définit dans Nagios pour savoir quand ce host doit être vérifié obsess_over_host désactive l'exécution de la commande OCSP de Nagios. Cette commande est principalement utilisée dans le cas où plusieurs Nagios sont configurés en monitoring distribué check_freshness désactive la vérification de la "fraicheur" des résultats. Cela est utilisé dans le cas où les checks sur le host ne sont que passifs event_handler_enabled désactive l'exécution du event handler correspondant au host flap_detection_enabled désactive la détection des hosts qui font des "up/down" trop souvent process_perf_datav désactive la gestion des éléments de performance retain_status_information active la conservation de l'état des hosts au cours des redémarrages de Nagios retain_nonstatus_information active la conservation des états secondaires des hosts au cours des redémarrages de Nagios. Cela inclut si on a changé les notifications ou les checks depuis l'interface web par exemple contact_groups pointe vers le contactgroup de Nagios qui doit être notifié en cas d'événement sur le host 7 LEVEAU Stanislas Configuration de Nagios notifications_enabled active les notifications pour le host notification_interval définit l'intervalle d'envoi des notifications notification_period pointe vers la timeperiod de Nagios pendant laquelle les notifications doivent être envoyées. notification_options définit les états sur lesquels Nagios doit notifier pour ce host. Les états possibles sont: o d : down, état correspondant à une absence de réponse o u : unreachable, état correspondant à un host qui ne peut être joint à cause d'un host parent qui est down. Voir la définition des hosts avec leurs "parents" o r : recovery, état correspondant au retour à la normale du host register désactive l'enregistrement en tant que host de notre template. Ce paramètre est très important, sinon Nagios l'interprétera comme un host. Vous allez définir un groupe d’hôtes pour regrouper les serveurs Linux. - Créer un fichier « serveurs-linux.cfg » (penser à le déclarer dans le fichier « nagios.cfg ») : Fichier serveurs-linux.cfg define hostgroup{ hostgroup_name alias } Groupe-serveurs-linux Groupe-serveurs-linux - Définir les hôtes Linux (serveurs distants) et les attribuer à un groupe d’hôtes : Fichier serveurs-linux.cfg define host{ host_name use alias address hostgroups } serveur-linux generic-server-linux serveur-linux Adresse IP +Groupe-serveurs-linux Compte Rendu-1 : Créer également un hôte pour le serveur de messagerie de l’Université de Rennes1 et l’intégrer dans un groupe d’hôtes différent du groupe Groupe-serveurs-linux. Vous allez définir un groupe d’hôtes pour regrouper les serveurs Windows. - Créer un fichier serveurs-windows.cfg (penser à le déclarer dans le fichier nagios.cfg). Fichier serveurs-windows.cfg define hostgroup{ hostgroup_name alias } 8 LEVEAU Stanislas Groupe-serveurs-windows Groupe-serveurs-windows Configuration de Nagios - Définir des hôtes Windows et les attribuer à un groupe d’hôtes : Fichier serveurs-windows.cfg define host{ host_name use alias address hostgroups } serveur-windows generic-server-windows serveur-windows Adresse IP +Groupe-serveurs-windows - Vérifier si la configuration est correcte : # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg - Redémarrer nagios : # /etc/init.d/nagios stop # /etc/init.d/nagios start - Vérifier dans l’interface de Nagios que vous visualisez bien les hôtes : http://localhost/nagios Compte Rendu-2 : A quel endroit de sa configuration Nagios contrôle-t-il l’état de l’hôte pour savoir s’il est UP ou DOWN? (Détailler l’explication avec des extraits de fichiers de configuration). Maintenant que l’outil de supervision Nagios est installé et configuré, nous allons créer des services. Suite : 3 9 ème partie LEVEAU Stanislas Configuration de Nagios
Documents pareils
Installation et Configuration de Nagios Notes
la définition gw-rtr au début de ce fichier, elle devra être
modifiée pour
ressembler à:
define host {
use
host_name
alias
address
parents
Installation et configuration de Nagios
communiquer avec ce contact. L’exemple 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
...
TP Nagios - The Home of Romain Raveaux
localhost.cfg vous avez ces périodes et choisissez celle que vous voulez utiliser 24x7 dans notre
cas)
# '24x7' timeperiod definition
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7...
Nagios 3
Test d’une remontée SNMP sur la carte réseau du serveur DNS primaire :
/etc/nagios-plugins/config/snmp_int.cfg
define command {
Installation et Configuration de Nagios Notes : -----
et allez à la fin du fichier. Créez la définition de groupe
d'hôtes suivante :
# Une liste de machines qui offrent un service SNMP, sur lesquelles