====== Nagios ======


===== 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. =====


vi /usr/local/nagios/etc/objects/serveur-linux-mail.cfg

define hostgroup{
hostgroup_name Groupe-serveurs-linux-mail
alias Groupe-serveurs-linux-mail
}


define host{
host_name Serveur Mail univ
use generic-server-linux,pnp-host
alias Serveur Linux
address 216.8.179.23
hostgroups +Groupe-serveurs-linux-mail

}

Interface Web









===== 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). =====



La commande check_host_alive, présent dans le fichier commands.cfg, permet de savoir si l'hôte est actif ou non.

define command{
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% $
}


=====
Compte Rendu-3 : Contrôler le service FTP sur le port 21 pendant la période de temps « horaires de bureau ».
Le contrôle s’effectuera toutes les deux minutes en période normale et toutes les minutes s’il y a un changement d’état.
Les notifications seront envoyées au bout de la 1ére tentative puis toutes les 15 minutes.
Utiliser le template existant : generic-service-formation. =====


vi /usr/local/nagios/etc/objects/template.cfg

define service{
name generic-service-formation
service_description generic-service-formation
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
event_handler_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
max_check_attempts 3
normal_check_interval 2 # 2 minutes entre deux états normaux
retry_check_interval 1 # 1 minute si état différent
check_period workhours #horaires de travail
notification_interval 15 # 15 minutes d’intervalles
notification_period workhours # horaires de travail
notification_options w,u,c,r
notifications_enabled 1 # activation des notifications
contact_groups admins
register 0
}

===== Compte Rendu-4 : Créer également les commandes pour être alerté par un Warning si il reste 10% d’espace disque disponible sur la partition / et Critical si il reste 5% d’espace disque disponible (check_disk). Même chose pour la Swap (check_swap). =====


vi /usr/local/nagios/etc/objects/template.cfg

Il est préférable de réaliser de passer un état warning sur une swap à 50 % et un état critique à 25 % d’espace libre, car le temps d’intervention est ainsi rallongé, entre 10 et 5 le temps d’intervention serait trop court.

command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 10% -c 5% -p /dev/sda8
command[check_swap]=/usr/lib/nagios/plugins/check_swap -w 50% -c 25%





===== Compte Rendu-5 : Créer également un service pour superviser l’espace disque de la partition / et de la swap. Avant de vous lancer dans la configuration des services, penser à tester manuellement les services à superviser (exple : ./check_nrpe -H "Adresse IP" –c check_disk). =====


vi /usr/local/nagios/etc/objects/serveut-linux.cfg

define service{
hostgroup_name Groupe-serveurs-linux
service_description Disk
use generic-service-formation
check_command check_nrpe!check_disk
}

define service{
hostgroup_name Groupe-serveurs-linux
service_description Swap
use generic-service-formation
check_command check_nrpe!check_swap
}

===== Compte Rendu-6 : Quels sont les éléments manquants pour que cette commande fonctionne ? =====

===== Compte Rendu-7 : Quelle est la commande check_nt utilisée dans le fichier commands.cfg? =====


vi /usr/local/nagios/etc/objects/commands.cfg


define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s root
}

Comme le précise le template, il manque l’option –p pour le port et –s pour le password :

./check_nt -H 192.168.64.5 -v CLIENTVERSION -p 12489 -s root


NSClient++ 0,4,1,73 2012-12-17






===== Compte Rendu-8 : Créer également un service pour superviser la Charge CPU et la taille disque (sur disque C:) =====


# Supervise le temps d’allumage depuis la dernière extinction

define service {
use generic-service-formation
hostgroup_name Groupe-serveurs-windows-nsclient
service_description UPTIME - NSCLIENT
check_command check_nt!UPTIME!
}

# Supervise l’espace du dique c warning à 90 % et critique à 95 %

define service {
use generic-service-formation
hostgroup_name Groupe-serveurs-windows-nsclient
service_description ESPACE C: - NSCLIENT
check_command check_nt!USEDDISKSPACE!-l c -w 90 -c 95
}

# Supervise l’éta du pocessus explorer.exe

define service {
use generic-service-formation
hostgroup_name Groupe-serveurs-windows-nsclient
service_description Explorer.exe - NSCLIENT
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}

# Supervise la charge du CPU

define service {
use generic-service-formation
hostgroup_name Groupe-serveurs-windows-nsclient
service_description CPU - NSCLIENT
check_command check_nt!CPULOAD!-l 5,80,90
}

# Supervise l’espace mémoire

define service {
use generic-service-formation
hostgroup_name Groupe-serveurs-windows-nsclient
service_description RAM - NSCLIENT
check_command check_nt!MEMUSE!-w 80 -c 90
}

===== Compte Rendu-9 : Créer une commande check_http_page_web (fichier commands.cfg) avec les bons arguments pour contrôler un mot dans une page html sur un port que l’on définira. =====


vi /usr/local/nagios/etc/objects/commands.cfg

# Définition command 'check_http_page_web'

define command{
command_name check_http_page_web
command_line $USER1$/check_http -I $HOSTADDRESS$ -p $ARG1$ -r $ARG2$
}

===== Compte Rendu-10 : Créer le service PAGE-WEB sur le serveur Nagios
- En utilisant la commande définie ci-dessus, créer un service qui permet de contrôler l’existence du mot WEB dans la page html sur le port 80.
Si le contrôle trouve le mot WEB dans la page il retourne OK sinon CRITICAL. =====


Ajout d’un groupe complémentaire à l’ host qui hébergue le serveur web :

vi /usr/local/nagios/etc/objects/serveur-linux.cfg

define host{
host_name Nagios-srv-linux
use generic-server-linux,pnp-host
alias Serveur Linux
address 192.168.64.4
hostgroups +Groupe-serveurs-linux, Groupe-serveurs-web
}

Définition du service :

vi /usr/local/nagios/etc/objects/pages-web.cfg


define service{
hostgroup_name Groupe-serveurs-web
service_description Serveur Web Nagios
use generic-service-formation
check_command check_http!80!Web
event_handler apache2_restart
}











===== Compte rendu-11 : Expliquer le fonctionnement sous forme de schéma de tout le processus pour redémarrer le service HTTP en cas de défaillance. =====
















[1420791253] SERVICE EVENT HANDLER: Nagios-srv-linux;Serveur Web Nagios;CRITICAL;SOFT;1;apache2_restart

















===== Compte Rendu-12 : Utiliser le template check_mk-cpu.loads développé par Romuald FRONTEAU (à rechercher sur internet) pour grapher le service Current Load du serveur Nagios.
- Faire une capture d’écran du graphique obtenu. =====


Graph pour la charge CPU du serveur Nagios :



Injection du template, pour grapher la charge cpu des serveurs distants :





===== Compte rendu-13 : Quelle modification avez-vous apportez dans le fichier snmpd.conf pour que la commande snmpwalk ci-dessus fonctionne et pourquoi? =====


# Listen for connections from the local system only
#agentAddress udp:127.0.0.1:161

Ecoute de toutes les interfaces
 
# Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161

Déclarartion de la Communauté : Communauté Nagios
 
rocommunity communauteNagios

===== Compte rendu-14 : Créer les commandes et les services pour contrôler chacune des partitions, la charge CPU …de serveur-linux en utilisant les plugins perl check_snmp* de Manubulon.
Nommer vos services *-snmp pour les différencier des autres services. =====


Edition du fichier commands.cfg :

vi /usr/local/nagios/etc/objects/commands.cfg

define command {
command_name check_snmp_storage
command_line $USER10$/check_snmp_storage.pl -H $HOSTADDRESS$ -C $USER11$ -m / -w $ARG1$ -c $ARG2$ -v $ARG3$
}

Définition des nouvelles variables dans le fichier resources.cfg :

vi /usr/local/nagios/etc/resources.cfg

$USER10$=/usr/src/nagios_plugins
$USER11$=communauteNagios

Création des nouveaux services :


vi /usr/local/nagios/etc/objects/serveur-linux-snmp.cfg

# service de check cpu

define service{
hostgroup_name Groupe-serveurs-linux
service_description Load-SNMP
use generic-service-formation
check_command check_snmp_load!3,3,2!4,4,3!netsl
}


# service de check disk

define service{
hostgroup_name Groupe-serveurs-linux
service_description Disk-SNMP
use generic-service-formation,pnp-service
check_command check_snmp_storage!80%!90%!1
}
=====
Compte rendu-15 : A quoi sert la commande check-host-alive ici ? =====


===== Compte rendu-16 : Maintenant que vous savez mettre en place un système de Traps sous Linux,
Serveur Linux :
Vous allez mettre en place un système d’alerte lorsque qu’on vient interroger le client snmp d’un serveur Linux avec une mauvaise communauté :
Exemple : à partir du serveur Nagios faire un ./check_snmp –H serveur-linux –C mauvaise communauté…(communauté différente de celle définie dans le snmpd.conf du serveur-linux)
Le serveur serveur-linux va générer une Trap de type Authentication Failure à cause de la mauvaise communauté.
Vous devez compiler la MIB correspondante et créer un service sous Nagios pour en être alerté.
Aide : la MIB dont vous aurez besoin est SNMPv2-MIB =====


Compilation de la MIB :

snmpttconvertmib --in=/var/lib/mibs/ietf/SNMPv2-MIB --out=/etc/snmp/snmptt.conf.Nagios --exec='/usr/local/nagios/libexec/submit_check_result $R TRAP 1'

Modification du fichier équipement smptt.conf.Nagios :

Afin de passer en niveau 2 (critique) l'authentification faillure.

EXEC /usr/local/nagios/libexec/submit_check_result $R Mauvaise-communaute 2 "An authenticationFailure trap signifies that the SNMP $*"

Création du template :

define service{
name Service-bad-communaute
use generic-service
service_description Mauvaise-communaute
is_volatile 1
check_command check-host-alive
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
passive_checks_enabled 1
check_period 24x7
notification_interval 31536000
contact_groups admins
register 0
}







Création du service :

define service{
host_name Nagios-srv-linux
use Service-bad-communaute
contact_groups admins
}

Redémarrer les services snmpd et nagios

Test :

Visualisation de la remontée su service dans l'interface nagios



Envoie d'une trap avec une mauvaise communauté :

snmpwalk -v 1 -c toto 192.168.64.4

Visualisation de l'authentifiaction Faillure grâce à la commande tcpdump

tcpdump -i eth0 port 162
10:36:28.484446 IP Nagios-srv-linux.43534 > Nagios.snmp-trap: C=communauteNagios Trap(31) E:8072.3.2.10 192.168.64.4 authenticationFailure 134291
10:36:28.484514 IP Nagios-srv-linux.59217 > Nagios.snmp-trap: C=communauteNagios V2Trap(82) system.sysUpTime.0=134291 S:1.1.4.1.0=S:1.1.5.5 S:1.1.4.3.0=E:8072.3.2.10
10:36:28.484554 IP Nagios-srv-linux.39170 > Nagios.snmp-trap: C=communauteNagios Inform(82) system.sysUpTime.0=134291 S:1.1.4.1.0=S:1.1.5.5 S:1.1.4.3.0=E:8072.3.2.10
10:36:29.485953 IP Nagios-srv-linux.43534 > Nagios.snmp-trap: C=communauteNagios Trap(31) E:8072.3.2.10 192.168.64.4 authenticationFailure 134391
10:36:29.486020 IP Nagios-srv-linux.59217 > Nagios.snmp-trap: C=communauteNagios V2Trap(82) system.sysUpTime.0=134391 S:1.1.4.1.0=S:1.1.5.5 S:1.1.4.3.0=E:8072.3.2.10
10:36:29.486059 IP Nagios-srv-linux.39170 > Nagios.snmp-trap: C=communauteNagios Inform(82) system.sysUpTime.0=134391 S:1.1.4.1.0=S:1.1.5.5 S:1.1.4.3.0=E:8072.3.2.10
10:36:29.486316 IP Nagios-srv-linux.39170 > Nagios.snmp-trap: C=communauteNagios Inform(82) system.sysUpTime.0=134291 S:1.1.4.1.0=S:1.1.5.5 S:1.1.4.3.0=E:8072.3.2.10
10:36:30.487123 IP Nagios-srv-linux.43534 > Nagios.snmp-trap: C=communauteNagios Trap(31) E:8072.3.2.10 192.168.64.4 authenticationFailure 134491
10:36:30.487199 IP Nagios-srv-linux.59217 > Nagios.snmp-trap: C=communauteNagios V2Trap(82) system.sysUpTime.0=134491 S:1.1.4.1.0=S:1.1.5.5 S:1.1.4.3.0=E:8072.3.2.10
10:36:30.487239 IP Nagios-srv-linux.39170 > Nagios.snmp-trap: C=communauteNagios Inform(82) system.sysUpTime.0=134491 S:1.1.4.1.0=S:1.1.5.5 S:1.1.4.3.0=E:8072.3.2.10
10:36:30.487618 IP Nagios-srv-linux.39170 > Nagios.snmp-trap: C=communauteNagios Inform(82) system.sysUpTime.0=134291 S:1.1.4.1.0=S:1.1.5.5 S:1.1.4.3.0=E:8072.3.2.10
10:36:30.487632 IP Nagios-srv-linux.39170 > Nagios.snmp-trap: C=communauteNagios Inform(82) system.sysUpTime.0=134391 S:1.1.4.1.0=S:1.1.5.5 S:1.1.4.3.0=E:8072.3.2.10
10:36:31.488670 IP Nagios-srv-linux.43534 > Nagios.snmp-trap: C=communauteNagios Trap(31) E:8072.3.2.10 192.168.64.4 authenticationFailure 134591

Visualtion de l'état critique du service, cette éatat restera 1 minute, le temps du reschedulde du service



===== Compte rendu-17 : Expliquer le fonctionnement du filtre simple et le résultat obtenu après avoir filtré les logs provenant de l’exécution du cron sur le client Ntp (cron qui permet de forcer la synchronisation de l’heure)? =====

$template ntp, “/home/nagios/log/%HOSTNAME%/ntp”
#Cette ligne définis le dossier de stockage des log NTP donc /home/nagios/log/[nom-serveur]/ntp
:msg, contains, "step time server" -?ntp
#Cette ligne permet d’enregistrer uniquement les lignes de log qui contiennent le string “step time server”




























































====== TP9 : Installation d’une interface graphique ======


source : http://eric.coquard.free.fr/atelier/supervision/distribution/centreon-install_25_MariaDB.html


apt-get install php5-sqlite

cd /usr/src/

wget http://eric.coquard.free.fr/resources/scripts-centreon-2.5/centreon_251_maria.sh

wget http://eric.coquard.free.fr/resources/scripts-centreon-2.5/centreon_engine.tmpl

chmod +x centreon_251_maria.sh

./centreon_251_maria.sh

Ouvrir un navigateur web : http://Ip-adresse/centreon

Cliquer sur next



Saisir les chemins ci-dessous, puis Next :

Centreon Engine directory: /usr/local/centreon-engine
Centreon Engine Stats binary: /usr/local/centreon-engine/bin/centenginestats
Centreon Engine var lib directory: /var/lib/centreon-engine
Centreon Engine Connector path: /usr/local/centreon-connector
Centreon Engine Library (*.so) directory: /usr/local/centreon-engine/lib/centreon-engine


Idem pour le Broker :

Centreon Broker etc directory: /usr/local/centreon-broker/etc
Centreon Broker module (cbmod.so): /usr/local/centreon-broker/lib/cbmod.so
Centreon Broker log directory: /var/log/centreon-broker
Retention file directory: /var/lib/centreon-broker
Centreon Broker lib (*.so) directory: /usr/local/centreon-broker/lib/centreon-broker




Entrer des identtification d'authentification :




Indiquer les informations d'authentification du SGBD

le mot de passe par défaut du script de début est centreon


Confirmation de la bonne installation, cliquer sur Next



Redémarrer les service

service apache2 restart

service centcore start

[ ok ] Starting Centcore: centcore.

service centreontrapd start

[ ok ] Starting CentreonTrapd: centreontrapd.


Se loguer :




Créer la configuration pour les fichiers nécessaires au fonctionnement du broker et du moteur de supervision



Redémarrer le moteur de supervision

service cbd start

[ ok ] Starting cbd_central-broker: cbd.
[ ok ] Starting cbd_central-rrd: cbd.

Vérification du fonctionnement du génération des traps

 
nagios/livrable.txt · Dernière modification: 2019/05/11 14:35 (modification externe)     Haut de page