commit 637d853c794609b794f2448ed851ed7c041d61f0 Author: Thomas Constans Date: Tue Mar 23 15:09:44 2021 +0100 initial commit diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..2e3fa08 --- /dev/null +++ b/Readme.md @@ -0,0 +1,41 @@ +##### TP nagios + +Cible: B2, IPI ASRBD + +Durée: 4h + +Prérequis: dernière partie du tp snmp + +Prérequis techniques: Une vm avec un agent snmp +fichier d'exemple de machine, service, etc. nagios.cfg + +Le TP est volontairement séquencé en courtes étapes afin de pouvoir faire des feedback régulier + + +### Instructions: + +## Installer nagios +1/2h + + +## Créer une machine +1/2h + +## surveiller les éléments de base + * load + * memoire + * espace disque sur / + * process nagios + +Montrer et commenter nagios.cfg + +Leur demander de faire le reste +1h30 + +### Validation: + +### À rendre: + +Réalisation technique + + diff --git a/nagios.cfg b/nagios.cfg new file mode 100644 index 0000000..b725027 --- /dev/null +++ b/nagios.cfg @@ -0,0 +1,24 @@ +# /etc/nagios/conf.d/hosts.cfg +define host { + host_name ipi_g2_24 + address 100.0.2.224 + use linux-server +} + +Définition d'un service: + +#/etc/nagios/conf.d/services.cfg +define service { + service_description cpuload + host_name ipi_g2_24 + check_command check_snmp_load!70%!80%! + use generic-service +} + + +Définition de la commande: +#/etc/nagios/conf.d/commands.cfg +define command { + command_name check_snmp_load + command_line $USER1$/check_snmp_load.pl -H $HOSTADDRESS$ -2 -C foobar -w $ARG1$ -c $ARG2$ +} \ No newline at end of file diff --git a/nagios.md b/nagios.md new file mode 100644 index 0000000..1c61dea --- /dev/null +++ b/nagios.md @@ -0,0 +1,142 @@ +#### Nagios + +### Ressources: + + * https://cours.opendoor.fr/Fichiers/B2/nagios.pdf + * https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/objectdefinitions.html#host + + + +### Installation + + +yum install epel-release + +yum install nagios nagios-plugins-all + +lancer et activer le service + +``` +systemctl start nagios.service +systemctl enable nagios.service + +systemctl enable --now nagios +``` + +définir le mot de passe d'accès à l'interface: + +``` +htpasswd /etc/nagios/passwd nagiosadmin +``` + +``` +sudo apachectl configtest && sudo systemctl restart httpd +``` + +### Post configuration + +Rajouter dans le fichier de configuration principal la directive permettant d'inclure tous les fichiers du répertoire _/etc/nagios/conf.d_ + +Créer ce répertoire + +Déplacer les scripts check_snmp que nous avons précédemment téléchargés dans /etc/nagios/scripts (penser à créer ce répertoire). + +S'assurer que ces scripts soient exécutables par tout le monde. + +### Définition d'un groupe de machine + + +Créer le fichier _/etc/nagios/conf.d/hostgroups.cfg_ dans lequel vous définirez un group nommé "my_machines" + +### Définition d'une machine +En vous aidant entre autre du fichier /etc/nagios/objects/localhost.cfg + +Créer le fichier _/etc/nagios/conf.d/hosts.cfg_ + +Dans ce fichier, rajouter la définition de votre machine avec son nom tel que renvoyé par la commande _hostname -s_ et son adresse ip locale ( _ip a_). + +Cette définition utilisera le modèle _linux-server_ + +Cette machine sera membre du groupe my_machines précédemment créé. + +Après avoir vérifié la validité de la configuration nagios et avoir redémarré le service nagios, la machine doit apparaître dans l'interface. + +### Définition d'une commande + +Lors d'un précédent tp, nous avons mis au point les lignes de commandes permettant d'utiliser les scripts check_snmp avec les bons paramètres dans le but de surveiller certains éléments de notre système. + +Pour rappel, les éléments à surveiller sont les suivants: + + * charge cpu + * charge mémoire + * espace disque disponible sur / + * nb de processus crond > 1 + * nb de processus sshd > 1 + +L'objectif est d'utiliser ces lignes de commandes comme commandes nagios + +Vous pouvez vous inspirer du fichier _/etc/nagios/objects/commands.cfg_ + +Créer le fichier _/etc/nagios/conf.d/commands.cfg_ + +Vous y définirez les commandes suivantes: + + * check_cpu + * check_mem + * check_disk + * check_process + +### Définition d'un service + +En prenant pour exemple le fichier _/etc/nagios/objects/localhost.cfg_ + +Créer le fichier _/etc/nagios/conf.d/services.cfg_ dans lequel vous définirez les services suivants: + + * cpu + * mem + * disk + * process_cron + * process_ssh + +Chacun de ces services utilisera la commande nagios précédemment définie et sera associé au group my_machines. + + +### Variables + +Il est possible d'utiliser des variables dans la définition d'une commande, cela évite de dupliquer du code. + +Notamment, l'adresse de la machine cible est stockée dans la variable $HOSTADDRESS$ + +On peut également passer des arguments aux commandes. Ceux-ci sont récupérés dans les variables $ARG1$, $ARG2, etc... + +On peut utiliser ce mécanisme pour passer les seuils d'alerte, plutôt que de les définir en dur dans la commande: + +_ce service appel la commande check_local_user avec les paramètres 20 et 50_ +``` +define service { + use local-service + host_name localhost + service_description Current Users + check_command check_local_users!20!50 +} +``` +_et voila comment la commande correspondante récupére et utilise ces arguments:_ +``` +define command { + command_name check_local_users + command_line $USER1$/check_users -w $ARG1$ -c $ARG2$ +} +``` + + + + +### Validation + +À l'issue de toutes ces opérations, après avoir redémarré nagios, vous devriez obtenir quelque chose qui ressemble à ça. + +Ce n'est pas grave s'il y a des éléments en rouge car en dehors des clous. + +![screenshotnagios|60%](résultat.png) + + diff --git a/résultat.png b/résultat.png new file mode 100644 index 0000000..48e1e7c Binary files /dev/null and b/résultat.png differ