Sommaire
Le package SNMP vous permet de collecter différentes informations sur vos ressources informatique (switchs, routeurs, serveurs, imprimantes, etc…) en utilisant le Simple Network Management Protocol (SNMP).
Toutes les informations collectées sont ensuite publiées dans Constellation sous forme de StateObject que vous pouvez suivre en temps réel depuis vos pages Web, objets connectés, applications ou tout autre système connecté à votre Constellation.
Le code source de ce package est en ligne sur : https://github.com/myconstellation/constellation-packages/tree/master/Snmp
Installation
Depuis le “Online Package Repository” de votre Console Constellation, déployez le package SNMP.
Une fois le package télécharger votre repository local, sélectionnez la sentinelle sur laquelle déployer le package et spécifiez le setting « snmpConfiguration » que nous décrions dans la section suivante.
Vous pouvez également déployer ce package manuellement dans la configuration de votre Constellation, par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<package name="Snmp"> <settings> <setting key="snmpConfiguration"> <content> <snmpConfiguration queryInterval="00:00:10" multipleStateObjectsPerDevice="false"> <devices> <device host="myDevice.domain.com" /> <device host="192.168.0.1" /> <device host="192.168.0.10" community="demo" /> </devices> </snmpConfiguration> </content> </setting> </settings> </package> |
Détails du package
Les Settings
Ce package ne comporte qu’un seul setting nommé « snmpConfiguration » qui est une ConfigurationSection XML obligatoire.
Cette section XML définit la liste des hôtes SNMP à collecter. Pour chaque hôte (device), vous devez obligatoirement définir l’attribut « host » avec l’adresse IP ou DNS. Vous pouvez optionnellement spécifier le nom de la communauté SNMP (par défaut « public »).
Sur la section racine « snmpConfiguration » vous pouvez optionnellement définir ces deux attributs :
- queryInterval (TimeSpan) : l’intervalle de temps d’interrogation SNMP pour chaque hôte (par défaut à 5 secondes)
- multipleStateObjectsPerDevice (Boolean) : spécifie si l’ensemble des compteurs SNMP d’un équipement doivent être publiés en plusieurs StateObject ou dans un seul et unique StateObjet (choix par défaut).
Les StateObjects
Si l’attribut de configuration « multipleStateObjectsPerDevice = false » (par défaut), vous retrouverez un StateObject par <device> déclaré dans la section de configuration du package.
Nom | Type | Description |
<< snmpDeviceId >> | SnmpDevice | Objet principal décrivant l’intégralité de l’équipement. Contient les propriétés : Description (SystemDescription), Host (Host), la liste des interfaces réseau (Sequence<NetworkInterface>), la liste des adresses réseau (Sequence<Address>), la liste des équipements de stockage (Sequence<Storage>) ou encore la liste des processeurs (Sequence<Processor>). |
A l’inverse, si l’attribut de configuration « multipleStateObjectsPerDevice = true« , vous retrouverez plusieurs StateObjects par <device> déclaré dans la section de configuration du package.
Nom | Type | Description |
<< snmpDeviceId >>/Description | SystemDescription | Objet décrivant l’équipement : type de matériel, OS, uptime, etc… |
<< snmpDeviceId >>/Addresses/<< Address Key >> | Address | Un StateObject par adresse IP attachée au système : IP, masque réseau, adresse de broadcast, …) |
<< snmpDeviceId >>/Interfaces/<< Interface Key >> | NetworkInterface | Un StateObject par interface réseau attachée au système : type, vitesse, adresse physique, état, consommation, etc … |
<< snmpDeviceId >>/Host | System | Un StateObject décrivant l’hôte (mémoire, nombre d’utilisateur, nombre de processus, etc..) |
<< snmpDeviceId >>/Processors/<< Processor Key >> | Processor | Un StateObject par processeur indiquant la charge et l’ID. |
<< snmpDeviceId >>/Storages/<<Storage Key >> | Storage | Un StateObject par unité de stockage logique (taille libre et utilisée, type, etc..) |
Les MessageCallbacks
Le package expose 2 MessageCallbacks :
Nom | Réponse (saga) | Description |
CheckAgent | bool | Test si l’agent SNMP est fonctionnelle pour l’adresse spécifiée. |
ScanDevice | SnmpDevice | Collecte et retourne les informations SNMP pour l’adresse spécifiée |
Quelques exemples
- Création un dashboard Web ou mobile en Javascript de supervision des indicateurs clés
- Surveillance des disques dur avec envoie de notification en cas de saturation
Bonjour,
je le package SNMP ne fonctionne pas sous linux :
Je pense que c’est juste un problème de casse entre le nom du package (SNMP) et le nom du fichier (Snmp.exe).
Tout à fait, une update vient juste d’être publiée (version 1.0.1) pour fixer le manifeste du package!
Je viens juste de le tester sur un RPi3 avec succès !
Merci du feedback
Bonjour,
J’aurai voulu surveiller mon serveur sous exsi 6.5 qui héberge toute ma domotique (jeedom, nas et w10 pour constellation)
J’ai configuré esxi pour active le snmp et j’arrive à récupérer des info en ssh.
J’aimerai tout mettre dans constellation mais j’ai pas trouver de doc.
Du coup j’aimerais savoir si c’est possible tout d’abord et ensuite comment je peux faire sa
Merci
Bonjour marmoul,
Je viens de publier la documentation de ce package à l’instant : https://developer.myconstellation.io/package-library/SNMP/
Il manque encore quelque screenshots pour illustrer l’article mais toutes les informations sont là !
Bien à toi,
Bonjour Sebastien,
Je te remercie je vais tester sa
Bonne journée
je viens d’essayer pour ESXI 6.5 mais sa me retourne
[DESKTOP-GMDE9D8/SNMP] 12:17:27 : Unable to scan '192.168.1.31' : Membre 'SnmpDevice.Addresses' introuvable.
pourtant quand je lance me MC
Checkagent
sa me retourne bien true donc sa veux dire que c’est bien configuré coté ESXI non?Quand je lance cette commande en ssh sa me retourne les info:
snmpwalk -v 2c -c public 192.168.1.31
Merci
Hello,
Dans le code actuel de la version 1.0 du package, les adresses (SnmpDevice.Addresses) sont marquées comme obligatoire mais visiblement sur ton esxi il ne les trouve pas !
Testes :
snmpwalk -v 2c -c public 192.168.1.31 1.3.6.1.2.1.4.20
pour voirA+
en tapant la commande sa me retourne ceci
iso.3.6.1.2.1.4.20 = No Such Object available on this agent at this OID
du coup j’ai voulu essayer de surveiller mon jeedom et j’ai cette erreur
‘192.168.1.95’ : Membre ‘SnmpDevice.Interfaces’ introuvable.
c’est du au fait que les trame ne sois pas complete alors.
Sa fonctionne au moins sur mon syno
Merci
Oui, en SNMP chaque compteur est identifié avec un OID (ObjectID).
La version 1.0 du package SNMP exploite les OID standards “iso. org. dod. internet. mgmt”, ceux qui commencent par 1.3.6.1.2 (http://cric.grenoble.cnrs.fr/Administrateurs/Outils/MIBS/?oid=1.3.6.1.2).
Or VMWare utilise d’autre OID défini dans le MIB ici : https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1013445
De ce fait, en l’état tu ne peux pas exploiter les compteurs SNMP de ton ESX.
Pour Jeedom, si hosté sur un Linux tu peux configurer le service snmpd pour configurer un accès à de toute la grappe management (voir https://www.it-connect.fr/installation-de-snmp-sous-linux/#IV_Configuration_basique).
Perso sur mes serveurs et RPi Linux, j’ai :
`rocommunity public default -V all’
A+
merci seb pour ces info.
je vais attendre surement une MAj du package pour mon EXSI.
Bonne journée et merci des précision