3.9 KiB
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.
