Comment créer son propre plugin Nagios à l'aide du script Shell Bash

Comment créer son propre plugin Nagios à l'aide du script Shell Bash

Nagios est un système de surveillance des open source populaire qui peut être utilisé pour surveiller la disponibilité et les performances de diverses ressources, telles que les serveurs, les réseaux et les services. Une façon d'étendre les capacités de Nagios est de créer des plugins personnalisés à l'aide de scripts bash. Voici un aperçu général des étapes liées à la création d'un plugin Nagios à l'aide d'un script bash:

Il est important de noter qu'un plugin Nagios doit être conçu pour s'exécuter rapidement et efficacement, car il sera exécuté à intervalles réguliers. Cela signifie que le plugin devrait éviter d'effectuer des tâches inutiles ou longues et chronométreuse et doit renvoyer la sortie le plus rapidement possible.

Il existe quelques meilleures pratiques à garder à l'esprit lors de la création d'un plugin Nagios:

  • Utilisez une sortie claire et concise: La sortie du plugin doit être facile à comprendre et fournir des informations claires sur l'état de la ressource surveillée. Évitez d'utiliser un langage complexe ou rempli de jargon et essayez de garder la sortie aussi courte que possible.
  • Retourner les codes d'état appropriés: Le plugin doit renvoyer le code d'état correct en fonction de l'état de la ressource surveillée. Par exemple, si la ressource fonctionne correctement, le plugin doit renvoyer un code d'état de 0 (succès). S'il y a un problème avec la ressource, le plugin doit renvoyer un code d'état de 1 (avertissement) ou 2 (critique) en fonction de la gravité du problème.
  • Retourner les données de performances: Le cas échéant, le plugin doit renvoyer les données de performance sous forme de nom = valeur [uom]; [Warn]; [Crit]; [min]; [max]. Cela permet à Nagios de suivre les performances de la ressource au fil du temps et d'alerter l'utilisateur si elle tombe en dehors des seuils acceptables.
  • Utilisez Check_nrpe lorsque cela est possible: Si le plugin s'exécute sur un serveur distant, il est généralement plus efficace d'utiliser l'utilitaire Check_nrpe pour exécuter le plugin plutôt que de l'exécuter directement sur SSH. Cela évite les frais généraux de l'établissement d'une connexion SSH pour chaque exécution du plugin.

En suivant ces meilleures pratiques, vous pouvez créer des plugins Nagios efficaces et efficaces qui vous aideront à surveiller les ressources qui sont importantes pour votre organisation.

Étape 1: Déterminez l'objectif du plugin

La première étape de la création d'un plugin Nagios consiste à déterminer pour quoi le plugin sera utilisé. Sera-t-il utilisé pour vérifier l'état d'un service, surveiller les performances d'un serveur ou effectuer une autre tâche? Cela vous aidera à concevoir le plugin et à écrire le code nécessaire.

Étape 2: Écrivez un script shell

Une fois que vous saurez à quoi le plugin sera utilisé, vous pouvez commencer à écrire le script bash. Le script doit inclure la logique nécessaire pour effectuer la tâche que le plugin est conçue pour faire. Il devrait également inclure la sortie dans le format attendu par Nagios, qui consiste en un code d'état (E.g., 0 pour réussir, 1 pour l'avertissement, 2 pour la critique), un message et des données de performance facultatives.

sudo vim check_disk_uses.shot  

Ajouter le script ci-dessous.

#!/ usr / bin / env bash ### ===================================================== ===========================. Point ### ### utilise: ./ check_disk_uses.sh / ### ### ./ check_disk_uses.sh / mnt ### ### ./ check_disk_uses.sh / dev / sda1 ### ### ==================================================== ================================ ### ## ## =========== ==============================================. ========= ### ### Fonctions ### ### ===========================================. ======================================. # Calculer le disque utilise used_disk_space = "df -h $ mont_point | grep -v filesystem | awk" print $ 5 '| SED 'S /% // G "if (($ used_disk_space> = 0 && $ used_disk_space = 81 && $ usage_disk_space = 91 && $ usage_disk_space <=100)); then echo "CRITICAL - $USED_DISK_SPACE% of disk space used." exit 2 else echo "UNKNOWN - $USED_DISK_SPACE% of disk space used." exit 3 fi ### ======================================================================= ### ### SCRIPT EXECUTION STARTS HERE ### ### ======================================================================= ### if [[ -z "$1" ]] then echo "Missing parameters! Syntax: ./'basename $0' mount_point/disk" exit 3 else MOUNT_POINT=$1 fi calculate_disk_uses ### ======================================================================= ### ### END OF SCRIPT ### ### ======================================================================= ###
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#!/ usr / bin / env bash ### ===================================================== ============================. Point ###### Utilisations: ./ check_disk_uses.sh / ###### ./ check_disk_uses.sh / mnt ###### ./ check_disk_uses.sh / dev / sda1 ###### ==================================================== ================================ ### ## ## =========== ==============================================. ========= ###### Fonctions ##### # ==========================================. ======================================. # Calculer le disque utilise used_disk_space = 'df -h $ mont_point | Système de fichiers grep -v | awk 'print $ 5' | sed 's /% // g' 'if (($ usage_disk_space> = 0 && $ usage_disk_space<=80)); then echo "OK - $USED_DISK_SPACE% of disk space used." exit 0 elif (($USED_DISK_SPACE>= 81 && $ used_disk_space<=90)); then echo "WARNING - $USED_DISK_SPACE% of disk space used." exit 1 elif (($USED_DISK_SPACE>= 91 && $ used_disk_space <=100)); then echo "CRITICAL - $USED_DISK_SPACE% of disk space used." exit 2 else echo "UNKNOWN - $USED_DISK_SPACE% of disk space used." exit 3 fi ### ======================================================================= ###### SCRIPT EXECUTION STARTS HERE ###### ======================================================================= ### if [[ -z "$1" ]] then echo "Missing parameters! Syntax: ./'basename $0' mount_point/disk" exit 3else MOUNT_POINT=$1fi calculate_disk_uses ### ======================================================================= ###### END OF SCRIPT ###### ======================================================================= ###

Enregistrez votre script et vérifiez en l'exécutant manuellement

Étape 3: Testez le script

Avant d'utiliser le script comme plugin Nagios, il est important de le tester pour s'assurer qu'il fonctionne correctement et produit la sortie attendue. Vous pouvez tester le script en l'exécutant à partir de la ligne de commande et en vérifiant qu'il produit la sortie correcte.

bash check_disk_uses.sh /  

Cela devrait fonctionner correctement, avant de le configurer avec le serveur Nagios.

Étape 4: Installez le plugin

NRPE est l'exécution du plugin distant Nagios qui s'exécute sur les machines clients, accepte les demandes du serveur Nagios, traite cette demande et renvoie le résultat au serveur Nagios.

  1. Si vous n'avez pas d'installation du NRPE sur votre système. Utilisez les commandes suivantes pour installer le client NRPE sur vos systèmes basés sur Debian.
    Mise à jour Sudo Apt  sudo apt install nagios-nrpe-server  

    Les commandes ci-dessus sont destinées aux systèmes basés sur Debian. Pour installer NRPE sur le système basé sur Redhat, visitez ce tutoriel.

  2. Une fois le script testé et fonctionne correctement, vous pouvez l'installer en tant que plugin Nagios en le copiant dans le «/ Usr / local / nagios / libexec» Répertoire sur le serveur Nagios.
    sudo mv check_disk_uses.sh / usr / lib / nagios / plugins / check_disk_uses.shot  sudo chmod + x / usr / lib / nagios / plugins / check_disk_uses.shot  
  3. Ensuite, modifiez le fichier de configuration NRPE «/ Etc / nagios / nrpe.CFG " et ajoutez votre commande pour surveiller certains disques de votre système. Commande [check_disk_uses] = / usr / lib / nagios / plugins / check_disk_uses.sh / dev / sda1
    1Commande [check_disk_uses] = / usr / lib / nagios / plugins / check_disk_uses.sh / dev / sda1

Vous pouvez appeler le 'check_disk_us " commande du serveur Nagios à l'aide du 'check_nrpe' commander et récupérer les résultats.

Étape 5: tester avec check_nrpe Commande

Maintenant, exécutez la commande ci-dessous à partir de votre serveur Nagios, où 192.168.dix.100 est l'IP du système client NRPE.

./ check_nrpe -h 192.168.dix.100 -c check_disk_uses  OK - 22% de l'espace disque utilisé. 

Étape 6: Configurez Nagios pour utiliser ce plugin

Après avoir installé le plugin, vous devrez configurer Nagios pour l'utiliser. Cela implique la création d'une définition de commande dans le fichier de configuration Nagios (E.g., / usr / local / nagios / etc / objets / commandes.CFG) et créer une définition de service pour spécifier comment et quand le plugin doit être exécuté.

  1. Modifiez d'abord le «/ Etc / nagios / objets / commandes.CFG " Fichier de configuration et définir la commande ci-dessous: Définissez la commande Command_name Check_Disk_USES Command_line $ user1 $ / check_nrpe -h $ hostaddress $ -c check_disk_uses
    1234Définir la commande command_name check_disk_uses Command_line $ user1 $ / check_nrpe -h $ hostaddress $ -c check_disk_uses

  2. Créez ensuite un nouveau service trouver pour gérer ce service: Définissez le service Utilisez Generic-Service host_name 192.168.dix.100 Service_Description Service Check_Command Check_Disk_USES
    123456Définir le service Utiliser Generic-Service Host_name 192.168.dix.100 Service_Description Service Check_Command Check_Disk_USES

  3. Afin de vérifier les fichiers de configuration, exécutez le 'nagios -v' commande comme:
    / usr / local / nagios / bin / nagios -v / usr / local / nagios / etc / nagios.CFG  

    Si une erreur est affichée, corrigez-le avant de redémarrer le service Nagios.

  4. Enfin, redémarrez le service Nagios pour appliquer les modifications.
    Service Nagios redémarrer  

Conclusion

Ceci est un aperçu général avec un exemple réel du processus impliqué dans la création d'un plugin Nagios à l'aide d'un script bash. Il peut y avoir des étapes ou des considérations supplémentaires en fonction des exigences spécifiques de votre plugin.