1. Description

1.1. Check Nagios, éxécuter des checks Nagios dans Jeedom

Ce plugin permet d’obtenir le résultat de checks Nagios. Nagios est un logiciel de supervision disposant de scripts qui couvrent un très large domaine d’utilisations.

Les scripts peuvent être éxécutés en local ou via SSH (via check_by_ssh)

On peut par exemple récupérer l’état de disques durs, d’un RAID, de services …​


2. Configuration

2.1. Configuration du plugin

Le plugin ne comporte pas de configuration générale.

Configuration équipement

Il faut ajouter un équipement par "unité" à superviser (comprendre pi, serveur …​)

Pour superviser un équipement distant il faut remplir les options de l’équipement suivantes (uniquement les distants) :

  • Adresse IP

  • Port SSH

  • Identifiant

  • Emplacement de la clef (uniquement les connexions par clef SSH sont supportées)

  • Chemin des check Nagios sur la cible (en local ils sont intégrés)

Configuration commandes

Ensuite on ajoute une commande par élément à supervisier (état RAID, mysql, logs …​) qui corresponderont chacune à une commande à lancer (un check_***)

Chaque commande permet de paramétrer sa fréquence (5mn, 15mn ou 30mn)

On peut sélectionner si la commande est à éxécuter par SSH (dans ce cas, les options de l’équipement doivent être saisies)

On peut également avoir que le check soit éxécuter avec sudo

On peut également sélectionne la création automatique de commandes liées qui donnent le retour d’affichage, le résultat et les métriques

Dans la case commande on saisit le nom du check à lancer

Dans la case des options on saisit les options de ce check (voir les exemples)

Action sur résultat ou notification

C’est standard dans le core de Jeedom désormais. Il suffit d’aller dans les options avancées de chaque commande souhaitée et on peut définir des actions (messages ou activations, comme on veut) sur valeur pendant un certain temps

Résultat de commande dans un scénario

Il est possible de récupérer la sortie Label du check dans un scénario en utilisant en bloc code :

$status = $cmd→getConfiguration('status');

Par exemple comme sur ce screenshot.

Exemple execCmd avec options

3. Cas d’usage

3.1. Cas d’usage, exemples d’implémentation

Voici quelques exemples d’utilisation.

Vérification du log d’erreurs Web

La commande est : check_log

Les arguments par exemple : -F /usr/share/nginx/www/jeedom/log/nginx-error.log -O /tmp/nginx.tmp -q ?

Vérification du log cron_execution de Jeedom

La commande est : check_log

Les arguments par exemple : -F /usr/share/nginx/www/jeedom/log/cron_execution -O /tmp/cron_exec.tmp -q PHP

Vérification des logs plugins

La commande est : /check_logserror.sh

Les arguments par exemple : -D /usr/share/nginx/www/jeedom/log

Vérification de la sauvegarde Market

La commande est : /check_cloudbackup.php

Les arguments par exemple :

Vérification de la présence d’un fichier de sauvegarde récent

La commande est : /check_backup.sh

Les arguments par exemple : -D /usr/share/nginx/www/jeedom/backup

Vérification de l’uptime

La commande est : /check_uptime.pl

Les arguments par exemple : -c 30

Vérification de la mémoire

La commande est : check_mem

Les arguments par exemple : aucun

Vérification de l’utilisation CPU

La commande est : check_load

Les arguments par exemple : -w 5,5,5 -c 10,10,10

Vérification de la présence d’un service

Un des checks à disposition est check_procs. Un usage basique est de lui donner le nombre de process qui doivent être existant et le label à chercher.

Voici quelques exemples de configuration :

Conf procs

Dans cet exemple, le service ne remontera qu’en warning, donc visible sur le widget mais sans remontée automatique d’alerte par Jeedom (mais biensur, c’est faisable avec un scénario)

Comme pour tout check, pour plus de possibilités et d’arguments, n’hésitez pas à passer la commande ""/usr/lib/nagios/plugins/check_procs -h" pour avoir l’aide

Vérification du RAID d’un serveur distant

Un exemple avec l’utilisation d’un check distant et un utilisant sudo

Voici l’exemple en image :

Conf procs

Dans cet exemple, il y a deux check différents :

  • le premier vérifie l’état SMART de chaque disque (en utilisant sudo en même temps)

  • le deuxième vérifie l’état global du RAID logiciel

Ces deux checks ont été copiés dans un répertoire du serveur qui les éxécute, sans que nagios-plugins soit installé dessus

Vérification d’un NAS Synology

Par défaut, le paquet nagios-plugins n’a pas de check pour les NAS Synology. Mais comme dit, on peut ajouter tout script au format Nagios (le format Nagios n’impose pas un langage mais une norme de sortie 0/1/2/3 suivant OK/WARN/CRIT/UNK)

Exemple, le script disponible ici :

On le télécharge, on le copie dans le répertoire de /usr/lib/nagios/plugins/ de notre Jeedom (via WinSCP par exemple) sans oublier de le rendre éxécutable (chmod +x)

Il faut également install snmp : sudo apt-get install snmp

Essayer ensuite en SSH la commande :

/usr/lib/nagios/plugins/check_snmp_synology -2 public -h adresse_syno -v

En remplacant -2 par la version SNMP, public par la communauté et biensur adresse_syno par l’adresse du NAS

Dans l’équipement on ajoute une commande et on saisit :

  • le nom souhaité

  • on ne coche ni sudo ni ssh

  • check_snmp_synology dans la boite check

  • pour les options : -2 public -h adresse_syno (comme plus haut mettre les valeurs qu’il faut)

Comme pour tout check, pour plus de possibilités et d’arguments, n’hésitez pas à passer la commande ""/usr/lib/nagios/plugins/check_snmp_synology -h" pour avoir l’aide


4. FAQ

Est-ce que le plugin s’appuie sur des API tiers ?

Non, le plugin éxécute des commandes locales ou par SSH.


5. Troubleshoting

Je n’ai pas d’informations qui remontent

Il faut bien créer un équipement et remplir les informations de la commande qu’on souhaite utiliser.