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 :

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
SNMP : collectez les compteurs SNMP de vos ressources réseau dans Constellation
Editer la page sur GitHub
Étiqueté avec :                

Sur le forum :

  1. xeys says:

    Bonjour,
    je le package SNMP ne fonctionne pas sous linux :

    [Controller/ControlCenter:admin] 19:32:23 : Starting 'SNMP' on skynet
    [Server/PackageMiddleware] 19:32:23 : 'skynet' getting '/packages/SNMP.zip' (Local path: /opt/constellation-server/packages/SNMP.zip)
    [skynet/Sentinel] 19:32:23 : Unzipping SNMP
    [skynet/Sentinel] 19:32:23 : Downloading SNMP (URI:http://127.0.0.1:8088/packages/SNMP.zip)
    [skynet/Sentinel] 19:32:23 : Unable to start the package : the process file (/opt/constellation-sentinel/Packages/SNMP/SNMP.exe) was not found. Check the PackageM
    anifest !
    
    root@skynet:/opt/constellation-sentinel/Packages/SNMP# ls
    Constellation.Common.dll  Microsoft.AspNet.SignalR.Client.dll  Newtonsoft.Json.xml        Snmp.exe          Snmp.XML
    Constellation.Common.xml  Microsoft.AspNet.SignalR.Client.xml  PackageInfo.xml            Snmp.exe.config
    icon.png                  Newtonsoft.Json.dll                  SnmpConfiguration.csd.xsd  SnmpSharpNet.dll
    

    Je pense que c’est juste un problème de casse entre le nom du package (SNMP) et le nom du fichier (Snmp.exe).

  2. 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

  3. 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 :slight_smile:
    Merci

  4. Bonjour Sebastien,
    Je te remercie je vais tester sa :slight_smile:
    Bonne journée

  5. 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

  6. 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 voir

    A+

  7. 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 :slight_smile:

    Merci

  8. 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+

  9. merci seb pour ces info.

    je vais attendre surement une MAj du package pour mon EXSI.

    Bonne journée et merci des précision :slight_smile:

Continuez la discussion sur le forum Constellation

Participants