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
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ériel | Type du check | OID |
NAS Synology | Statut | 1.3.6.1.4.1.6574.1.1.0 |
Température | 1.3.6.1.4.1.6574.1.2.0 | |
MAJ | 1.3.6.1.4.1.6574.1.5.4.0 | |
Statut Disk 1 | 1.3.6.1.4.1.6574.2.1.1.5.0 | |
Température Disk 1 | 1.3.6.1.4.1.6574.2.1.1.6.0 | |
Statut Disk 2 | 1.3.6.1.4.1.6574.2.1.1.5.1 | |
Température Disk 2 | 1.3.6.1.4.1.6574.2.1.1.6.1 | |
Copieur CANON | Compteur Total | 1.3.6.1.2.1.43.10.2.1.4.1.1 |
Toner Black | 1.3.6.1.2.1.43.11.1.1.9.1.1 | |
Toner Cyan | 1.3.6.1.2.1.43.11.1.1.9.1.2 | |
Toner Magenta | 1.3.6.1.2.1.43.11.1.1.9.1.3 | |
Toner Yellow | 1.3.6.1.2.1.43.11.1.1.9.1.4 | |
Copieur KONIKA MINOLTA | Compteur Total | 1.3.6.1.4.1.18334.1.1.1.5.7.2.1.1.0 |
Compteur Couleur | 1.3.6.1.4.1.18334.1.1.1.5.7.2.2.1.5.2.2 | |
Compteur Black | 1.3.6.1.4.1.18334.1.1.1.5.7.2.2.1.5.1.2 | |
Compteur – Copy Couleur | 1.3.6.1.4.1.18334.1.1.1.5.7.2.2.1.5.2.1 | |
Compteur – Copy Black | 1.3.6.1.4.1.18334.1.1.1.5.7.2.2.1.5.2.2 | |
Compteur – Scan Total | 1.3.6.1.4.1.18334.1.1.1.5.7.2.3.1.5.1 | |
Imprimante SAMSUNG | Toner Black | 1.3.6.1.2.1.43.11.1.1.9.1.4 |
Toner Cyan | 1.3.6.1.2.1.43.11.1.1.9.1.1 | |
Toner Magenta | 1.3.6.1.2.1.43.11.1.1.9.1.2 | |
Toner Yellow | 1.3.6.1.2.1.43.11.1.1.9.1.3 | |
Statut | 1.3.6.1.2.1.25.3.5.1.2.1 | |
Location | 1.3.6.1.2.1.1.6.0 | |
Total printed | 1.3.6.1.2.1.43.10.2.1.4.1.1 | |
Toner Black | 1.3.6.1.2.1.43.11.1.1.9.1.1 |