Files
tp_nagios/nagios.md
2021-03-23 15:09:44 +01:00

3.9 KiB

Nagios

Ressources:

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%