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
