Sélectionner une page

Le Contexte

Sur le market Jeedom, plusieurs plugins de supervision sont à disposition. Pour être honnête je n’en ai essayé qu’un car étant informaticien sa réputation a tout de suite attiré mon attention. Il s’agit du plugin Nagios Check porté par Lunarok que je remercie pour son travail s’il me lit !

Ce qui m’a attiré c’est que Nagios est un système de supervision très puissant (c’est par exemple utilisé dans des datacenter). Or l’interfacer sur Jeedom c’est profiter d’un outil polyvalent, géré via une interface graphique simple (pour le paramétrage autant que pour le résultat via les widgets) et permettant de créer des algorithmes, grâce au module de scénario.

Après quand je dis simple, il y a quand même quelques difficultés que j’ai dû surmonter ! La plus grande barrière c’est que malgré la doc de Lunarok, ses articles et malgré le forum Jeedom sur le sujet, il n’y a pas vraiment de tuto ou d’exemple de mise en place. Pour le moment ceux qui en profitent ont déjà un certain bagage technique en supervision.
C’est tout l’intérêt de mon article, partager mes trouvailles avec le plus grand nombre pour agrandir la communauté autour du sujet et permettre aux novices de profiter d’une base de travail accessible.

Nagios Check sur Jeedom qu’est ce que c’est ?

Je vais essayer de faire simple, car ce n’est pas évident : C’est un plugin qui s’appuie sur la solution de supervision Nagios qui a pour but de surveiller des hôtes ou services spécifiques et de retourner un état. Nagios Check sur Jeedom reprend ces standards et permet donc de réutiliser les scripts existants. Pour chaque Check, vous trouverez :

  • Une entrée Check : Ce sont les scripts utilisés pour vérifier un état.
  • Une Option avec les paramètres adéquats, pour interroger un élément en particulier.
  • Un format de réponse qui sera retourné sous la forme :
    • 0 OK (tout va bien)
    • 1 WARNING (le seuil d’alerte est dépassé)
    • 2 CRITICAL (le service a un problème)
    • 3 UNKNOWN (impossible de connaître l’état du service)

Voilà pour la petite présentation rapide.

Lorsque je me suis mis à creuser le sujet, mon but était d’interroger un hôte en SNMP car c’est un moyen simple à mettre en œuvre et que beaucoup de périphériques sont compatibles SNMP.
Avec cette méthode, vous pouvez donc facilement interroger des imprimantes, des NAS, des serveurs (Windows ou Linux), des équipements réseau (box, switch routeur, borne Wi-Fi…).

Mise en pratique

Prérequis :

  • Un serveur Jeedom
  • Le plug-in Nagios checks installé

Mes premiers tests se sont portés sur un NAS Synology. Comme c’est mon Syno qui héberge mon serveur Jeedom (voir mon article Quelle solution matériel choisir pour installer Jeedom), il me semblait logique de commencer par là.

Si je pensais parvenir à appairer mes volets en un tour de main, j’ai vite déchanté ! J’ai en effet trouvé peu de documentations sur le sujet, je me suis donc tourné vers le forum. Grâce aux membres et après plusieurs échanges, je suis parvenu à trouver une procédure qui fonctionne, c’est pourquoi je souhaite la partager au plus grand nombre.

Tutoriel étape par étape

Etape 1 :

Une fois sur la page du plug-in Nagios Checks, je créé un nouvel objet « NAS Synology ».
Dans l’onglet Équipement, je renseigne ensuite son adresse IP.

Onglet Checks de la création d'un équipement dans NagiosChecks sur Jeedom

Etape 2 :

Je passe alors à l’onglet Checks, je clique sur Ajouter une commande et je saisis :

  • La commande Check : check_snmp
  • Les arguments : -C Communauté_SNMP -H IP_Equipement -P Version_SNMP( ici 2c) -o Identifiant_OID
    (exemple : -C public -H 192.168.0.254 -P 2c -o 1.3.6.1.4.1.6574.1.1.0)
Déclaration d'un équipement dans NagiosChecks sur Jeedom

Le plus compliqué pour moi aura été de trouver la bonne syntaxe et de comprendre à quoi correspondait les OID, comment les utiliser. Pour la syntaxe, je me suis appuyé sur la doc officielle du script « check_snmp », disponible ICI. Concernant l’utilisation des OID j’ai du me faire aider, mais ce n’est au final pas si compliqué… Un OID c’est un identifiant qui permet, d’interroger un élément de l’équipement que vous souhaitez interroger.

Par exemple pour le statut d’un disque dur sur un Synology l’OID est « 1.3.6.1.4.1.6574.2.1.1.5« . Pour interroger le disque 1, l’OID est donc « 1.3.6.1.4.1.6574.2.1.1.5.0« , pour le disque 2, « 1.3.6.1.4.1.6574.2.1.1.5.1« .

Autre exemple, pour obtenir cette fois la température d’un disque, l’OID est « 1.3.6.1.4.1.6574.2.1.1.6« . Pour obtenir la température du disque 1, l’OID est donc « 1.3.6.1.4.1.6574.2.1.1.6.0« , pour le disque 2, « 1.3.6.1.4.1.6574.2.1.1.6.1« .

Vous avez pigé le mécanisme ? SI oui, vous devriez maintenant réaliser qu’il faudra une commande par élément à interroger. Pour vous aider, voici un site qui regroupe les commandes OID par Marques. Seulement bien souvent, il faut chercher ailleurs pour obtenir une liste complète ou lorsque certains OID fournis ne fonctionnent pas. Pour ceux que j’ai trouvés et qui fonctionnent, je les partage ci-dessous. Si j’en trouve d’autres dont j’ai besoin ou si vous voulez partager les votres, n’hésitez pas je les ajouterais.

MatérielType du checkOID
NAS SynologyStatut1.3.6.1.4.1.6574.1.1.0
Température1.3.6.1.4.1.6574.1.2.0
MAJ1.3.6.1.4.1.6574.1.5.4.0
Statut Disk 11.3.6.1.4.1.6574.2.1.1.5.0
Température Disk 11.3.6.1.4.1.6574.2.1.1.6.0
Statut Disk 21.3.6.1.4.1.6574.2.1.1.5.1
Température Disk 21.3.6.1.4.1.6574.2.1.1.6.1
Copieur CANONCompteur Total1.3.6.1.2.1.43.10.2.1.4.1.1
Toner Black1.3.6.1.2.1.43.11.1.1.9.1.1
Toner Cyan1.3.6.1.2.1.43.11.1.1.9.1.2
Toner Magenta1.3.6.1.2.1.43.11.1.1.9.1.3
Toner Yellow1.3.6.1.2.1.43.11.1.1.9.1.4
Copieur KONIKA MINOLTACompteur Total1.3.6.1.4.1.18334.1.1.1.5.7.2.1.1.0
Compteur Couleur1.3.6.1.4.1.18334.1.1.1.5.7.2.2.1.5.2.2
Compteur Black1.3.6.1.4.1.18334.1.1.1.5.7.2.2.1.5.1.2
Compteur – Copy Couleur1.3.6.1.4.1.18334.1.1.1.5.7.2.2.1.5.2.1
Compteur – Copy Black1.3.6.1.4.1.18334.1.1.1.5.7.2.2.1.5.2.2
Compteur – Scan Total1.3.6.1.4.1.18334.1.1.1.5.7.2.3.1.5.1
Imprimante SAMSUNGToner Black1.3.6.1.2.1.43.11.1.1.9.1.4
Toner Cyan1.3.6.1.2.1.43.11.1.1.9.1.1
Toner Magenta1.3.6.1.2.1.43.11.1.1.9.1.2
Toner Yellow1.3.6.1.2.1.43.11.1.1.9.1.3
Statut1.3.6.1.2.1.25.3.5.1.2.1
Location1.3.6.1.2.1.1.6.0
Total printed1.3.6.1.2.1.43.10.2.1.4.1.1
Toner Black1.3.6.1.2.1.43.11.1.1.9.1.1