SNMP
Fonction | Interroge un périphérique (généralement un périphérique réseau) pour obtenir des données SNMP en demandant un OID. Permet de rechercher des OID. |
|---|---|
Alarme | Temps de transfert, valeurs définies par l'utilisateur, valeurs diff et valeurs de chaîne |
Le protocole SNMP (Simple Network Management Protocol) est de loin le protocole dominant dans la gestion de réseau. Outre le fait qu'il s'agit de la principale norme Internet pour la gestion de réseau, sa relative simplicité est l'une des principales raisons de son acceptation généralisée. La mise en œuvre de la gestion SNMP dans un périphérique en réseau est beaucoup plus simple que la plupart des autres approches standard ou non standard de la gestion de réseau.
Le gestionnaire SNMP ou l'application de gestion utilise une syntaxe de nommage bien définie pour spécifier les variables à l'agent SNMP. Les noms d'objets dans cette syntaxe sont appelés identifiants d'objets (Object ID ou OID).
Les OID sont des séries de chiffres qui identifient de manière unique un objet pour un agent SNMP. Les OID sont organisés selon une structure hiérarchique en arbre inversé. L'arbre OID commence par la racine et se développe en branches. Chaque point de l'arbre OID est appelé nœud et chaque nœud aura une ou plusieurs branches, ou se terminera par un nœud feuille. Le format OID est une séquence de chiffres séparés par des points.
Les types de variables SNMP suivants sont pris en charge pour les valeurs :
ASN_COUNTER | Entier non négatif de 32 bits qui ne peut qu'augmenter |
ASN_GAUGE | Entier 32 bits |
ASN_INTEGER | Entier 32 bits (-232 à 232) rfc 1442 |
ASN_INTEGER64 | Entier 64 bits (-264 à 264) rfc 1442 |
ASN_OPAQUE | flottant et double pris en charge |
ASN_UNSIGNED64 | 64 bits non signé |
ASN_COUNTER64 | 64 bits non signé |
ASN_TIMETICKS | non signé |
Toutes ces valeurs et la différence par rapport à la dernière mesure sont converties en flottant, puis transférées au server.
Les valeurs différentielles des types ci-dessus sont automatiquement divisées par le temps écoulé depuis les dernières mesures ((valeur actuelle - valeur précédente) / (temps actuel en secondes - temps précédent en secondes)). Cela signifie que nous obtenons toujours un taux par seconde pour ces valeurs différentielles.
ASN_BIT_STR |
ASN_OCTET_STR |
Ces valeurs sont des chaînes de caractères et peuvent contenir tous les caractères imprimables.
Fonctionnalités SNMP
Navigateur MIB en ligne pour la sélection d'OID
Fichiers MIB infinis, emplacement : /usr/share/snmp/mibs sur chaque SKOOR Engine Collector
Unité de mesure configurable
Valeurs différentielles automatiques
Prise en charge des PDU version 1, 2c et v3
Prise en charge du cryptage v3
Alarme de couche n
Sélection de l'interface MIB2 par nom
Référence des noms OID aux numéros OID
Nombre de tentatives et délais d'attente réglables
Valeurs supprimables (réduit la taille de la base de données)
Chaînes (référence d'un numéro à du texte)
Analyse des nombres à partir du texte OID (première valeur uniquement)
Détails SNMP
Paramètres SNMP
La section Entrée d'authentification s'affiche uniquement lorsque la version 3 du protocole SNMP est sélectionnée.
Paramètre | Description |
|---|---|
Port UDP | Sélectionnez le port UDP (la valeur par défaut est 161). |
Nouvelles tentatives | Nombre de tentatives en cas d'échec de la requête. La valeur par défaut est 2 tentatives. |
Délai | Sélectionnez le délai d'expiration pour la requête. Sur la plupart des appareils, les requêtes SNMP sont traitées avec une faible priorité, utilisez donc un délai d'expiration suffisamment long. La valeur par défaut est 2 s. |
Version | Sélectionnez la version SNMP servie par le démon snmp distant. Les choix suivants sont disponibles : Version 1 |
Niveau de sécurité | Le niveau de sécurité définit la manière dont la requête SNMP est envoyée. Ce choix n'est disponible que lorsque SNMP v3 est utilisé. Les options suivantes sont disponibles : |
Nom d'utilisateur | Pour l'authentification, visible uniquement lorsque SNMP v3 est utilisé. |
Mot de passe d'authentification | Mot de passe pour l'authentification, visible uniquement lorsque le protocole SNMP avec authentification est utilisé. |
Protocole d'authentification | Protocole d'authentification, visible uniquement lorsque SNMP avec authentification est utilisé. Les options actuellement disponibles sont MD5 ou SHA. La valeur par défaut est MD5. |
Mot de passe de confidentialité | Pour le chiffrement, visible uniquement lorsque le protocole SNMP avec authentification et chiffrement est utilisé. |
Protocole de confidentialité | Pour le chiffrement, visible uniquement lorsque le protocole SNMP avec authentification et chiffrement est utilisé. Les options actuellement disponibles sont DES et AES. La valeur par défaut est DES. |
Communauté | La plupart des périphériques réseau autorisent différents niveaux d'accès SNMP, par exemple : LECTURE UNIQUEMENT ou LECTURE/ÉCRITURE. Chacun de ces niveaux d'accès dispose généralement d'une chaîne de communauté différente. Pour lire les données, seule la communauté LECTURE doit être connue, qui est généralement : public. |
OID de requête | Insérez l'OID de la base d'informations de gestion (MIB) pour la demande. Si l'OID est inconnu, il peut être consulté sur le périphérique de tâches à l'aide du navigateur en ligne. Des OID supplémentaires peuvent être demandés à partir d'une seule tâche SNMP en cliquant sur le bouton « + » à côté du bouton Parcourir. Si plusieurs OID sont saisis, la sortie de tous les OID est ajoutée dans le même fichier de sortie, l'un après l'autre. |
Débordement | Laissez ce paramètre sur Auto. Il gérera le calcul de la valeur Diff si le compteur est réinitialisé à 0. Cela évite les valeurs Diff négatives. |
Supprimer le temps de transfert | Par défaut, le temps nécessaire au transfert des données SNMP est enregistré dans la base de données. Si cette information n'est pas pertinente, cochez cette case pour économiser de l'espace dans la base de données. |
Supprimer la valeur | Cochez les types de sortie SNMP qui ne doivent pas être pris en compte. Si la case Supprimer le message d'information est cochée, la sortie de chaîne SNMP ne sera pas envoyée au server. La valeur de retour sera définie sur Valeur non valide uniquement si la valeur ou la valeur Diff est souhaitée et qu'il n'est pas possible d'extraire une valeur de la chaîne. Les cases à cocher Supprimer la valeur, Supprimer la valeur différentielle et |
Mapper la chaîne à la valeur | Définissez une correspondance entre les objets chaîne SNMP et les valeurs numériques. Une valeur de chaîne peut être extraite directement en tant que valeur de chaîne ou en définissant un mappage de chaîne au format 1=foo,2=bar,0=*, ce qui signifie que la chaîne foo sera convertie en valeur numérique 1, la chaîne bar en valeur numérique 2 et (facultatif) tout le reste en valeur 0. Les espaces ne sont pas autorisés dans cette définition. Si aucun mappage de chaîne n'est défini ou si l'affectation échoue (aucun opérateur par défaut défini), la chaîne est analysée pour trouver la première occurrence de caractères numériques et le résultat est transféré au server comme demandé (valeur et/ou valeur différentielle). |
Définir l'unité | Voir la section Unité/diviseur SNMP ci-dessous. |
La liste déroulante Balises permet de saisir des variables prédéfinies dans les champs ci-dessus, par exemple $NAME$ pour le nom du travail.
Parcourir en ligne
Pour trouver un OID SNMP spécifique sur l'agent SNMP distant et l'utiliser comme requête SNMP, cliquez sur le bouton Parcourir en ligne. Il est utile de connaître l'emplacement approximatif dans l'arborescence afin de limiter le temps de navigation, le trafic réseau et la taille de la sortie. Saisissez la chaîne de communauté correcte pour l'agent SNMP et sélectionnez la version SNMP dans la section Connexion. Les MIB les plus fréquemment utilisées peuvent être sélectionnées dans le menu déroulant, à partir de Racine, qui ne doit être sélectionnée que si l'emplacement de l'objet requis est totalement inconnu :
Lancez le processus à l'aide du bouton Démarrer l'analyse :
L'analyse peut prendre un certain temps, selon le nombre d'objets sous l'OID racine sélectionné. Cliquez sur Actualiser jusqu'à ce que l'état du téléchargement indique Terminé :
Le compteur Téléchargement indique le nombre d'OID trouvés. Pour les afficher, sélectionnez Afficher l'arborescence ou Afficher à plat. Pour sélectionner un OID, il suffit de cliquer sur le lien OID.
Exemple 1 - Arborescence avec type et valeur
Exemple 2 - Vue plate avec valeur
Si la sortie de l'arborescence analysée n'affiche pas d'informations textuelles, mais uniquement des OID sous la forme
1.3.6.1.4.1.13424.11.1.1.25
alors la MIB pour le périphérique analysé n'est probablement pas installée. Pour rechercher des MIB SNMP, consultez le site Web du fabricant du périphérique ou recherchez les MIB accessibles au public sur la page d'accueil de MIB Depot.
Résolution de nom générique SNMP
Certains serveurs SNMP ne font pas toujours correspondre le même OID à la même valeur. La lecture de l'utilisation du disque à partir d'une MIB hôte peut fonctionner jusqu'à ce qu'un nouveau disque soit ajouté à ce système. Il est possible que l'index (qui dans l'exemple ci-dessous est .2) change.
Pour éviter cela, SKOOR Engine peut utiliser un OID de résolution défini par l'utilisateur pour le mappage des noms aux index. Pour ce faire, nous remplaçons l'index par une chaîne à faire correspondre à l'OID de résolution avec le motif entre deux caractères $. Avant d'effectuer la requête, SKOOR Engine remplacera la chaîne $string$ par l'index correspondant trouvé. Voici un exemple d'OID dont on souhaiterait lire la valeur :
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.2
Au lieu de saisir cette chaîne en tant qu'OID de requête, recherchez d'abord la chaîne de description SNMP du disque qui est stockée sous l'OID suivant :
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr
Sa valeur est : C:\ Étiquette : Numéro de série dc133042
Remplacez maintenant le chiffre 2 par la valeur ci-dessus entourée de deux caractères $ :
iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label : Numéro de série dc133042$
Dès que la deuxième chaîne $ est saisie, une nouvelle ligne intitulée « Resolve OID » (Résoudre l'OID) apparaît sous la ligne « Request OID1 » (Demander l'OID1). Saisissez ici la description OID ci-dessus :
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr
$C:\ Label : Numéro de série dc133042$ sera remplacé par 2.
Valeur par défaut SNMP
Si la résolution du nom OID échoue (voir la section ci-dessus), il est possible de définir un index par défaut. Dans l'exemple ci-dessus, on écrirait l'index par défaut après l'OID de la requête, séparé par un espace :
iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label: Serial Number dc133042$ 2
Unité/diviseur SNMP
La sortie SNMP dans l'exemple de la section ci-dessus est :
hrStorageDescr.2 C:\ Label: Serial Number dc133042 hrStorageAllocationUnits.2 4096 Bytes hrStorageSize.2 2120572 hrStorageUsed.2 1839613
Pour obtenir le résultat de la capacité de stockage utilisée en Go, il faut définir le diviseur correct.
Windows Explorer nous donne les informations suivantes sur le système de fichiers du lecteur C:\ :
Volume: 8283MB, 8.08GB Total Size, Freespace 1.07GB
Il faut donc multiplier hrStorageUsed.2 par 4096 pour obtenir la valeur en octets, puis diviser par 1024 trois fois pour obtenir la valeur en Go.
1839613 x 4096 / 1024 / 1024 / 1024 = 7,01 Go utilisés (ce qui correspond aux chiffres de l'Explorateur)
Pour définir le diviseur de l'SKOOR Engine, combinez 1024 x 1024 x 1024 / 4096 = 262144
Appuyez sur le bouton Unité pour définir le nom de la valeur, son unité et son diviseur :
Le résultat dans la section des valeurs après l'exécution de la tâche SNMP sera de 7,01 Go.
Pour obtenir le pourcentage utilisé, utilisez cette formule : hrStorageUsed / hrStorageSize x 100, le diviseur serait donc 21205,72.
Tâches SNMP avec plusieurs OID
Il est possible d'évaluer plusieurs OID dans le même travail SNMP. Toutes les requêtes SNMP doivent être valides pour le périphérique auquel le travail SNMP est associé (il n'est pas possible de définir des requêtes pour différents périphériques dans un seul travail SNMP). Les OID supplémentaires sont activés en cliquant sur le bouton plus à côté du bouton Parcourir en ligne. Une fois les OID supplémentaires ajoutés, des champs Résultats supplémentaires apparaissent dans la section Résultats ci-dessous :
Chaque OID dispose d'une section de sortie configurable séparément, de sa propre chaîne de correspondance entre la chaîne et la valeur et d'un bouton Unité. Le temps de transfert peut être supprimé globalement.
L'exemple utilise « Résoudre les OID » pour chacun des 3 OID. Voir la section « Résolution de nom générique SNMP » ci-dessus pour plus de détails.
Les premier et deuxième OID demandent les compteurs ifInOctets et ifOutOctets à partir d'une interface d'un périphérique réseau. Pour ces compteurs, la valeur absolue n'est pas pertinente, ce qui est intéressant, c'est le changement dans le temps. Les champs Résultat pour ces 2 OID suppriment donc les valeurs elles-mêmes et toutes les valeurs de chaîne (qui ne sont de toute façon pas renvoyées par cet OID).
La définition de l'unité pour le premier résultat OID affiche les unités de valeur et de chaîne grisées en conséquence :
Un diviseur est spécifié pour convertir la sortie en kBit/s.
octet/s → kBit/s
kbit = octet / 1000 * 8
kbit = octet / (1000 / 8)
kbit = octet / 125
Le troisième OID demande l'ifOperStatus de l'interface réseau, qui est renvoyé sous forme de chaîne (pas sous forme d'objet chaîne en soi, mais la sortie est par exemple : up(1)) par l'agent SNMP. Cela peut être observé en utilisant le bouton Parcourir en ligne avec l'OID .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifOperStatus comme racine :
Étant donné que les valeurs numériques sont traitées plus rapidement par le SKOOR Engine, il est généralement préférable de convertir la chaîne connue en valeur numérique à l'aide du champ Map string to value (Mapper la chaîne à la valeur) :
Cela signifie que le résultat envoyé au server sera une valeur et non plus une chaîne, ce qui permet de supprimer les valeurs de chaîne et les valeurs diff.
La définition de l'unité pour le troisième résultat OID est spécifiée comme suit :
Les résultats sont ensuite affichés dans la section Valeurs :
Si l'un des OID définis génère une erreur, le message d'erreur de cet OID s'affiche et l'ensemble du travail échoue. Tous les OID suivants ne sont pas traités si un OID échoue :
Valeurs SNMP et limites d'alarme
Valeur / Limite d'alarme | Description |
|---|---|
Valeur1-n | Valeur numérique personnalisée définie par le bouton Unité de résultat des OID. |
Diff valeur1-n | Valeur numérique personnalisée définie par le bouton « Unité de résultat » des OID. |
Valeur de chaîne 1-n | Valeur de chaîne personnalisée définie par le bouton Unité de résultat des OID. |
Code d'erreur | Code d'erreur générique de la tâche (voir la section Codes d'erreur des tâches) |
Exemples SNMP
Exemple 1 - Sélection de l'interface SNMP mib-2 par description
Il est possible de sélectionner automatiquement le numéro d'interface par sa description. Cela peut être utile si le nombre d'interfaces d'un routeur est susceptible de changer. Il doit alors être possible de sélectionner l'interface par sa description.
Nous voulons rechercher l'OID
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.<interface id>
pour le nombre d'octets qui ont transité vers l'intérieur via l'interface VLAN 10. Pour ce faire, nous recherchons d'abord la description de l'interface sous .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr :
et nous constatons que la description est :
em0_vlan10
Remplacez maintenant l'index numérique après ifInOctets par la chaîne $em0_vlan10$ et utilisez-la comme OID de requête :
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.$em0_vlan10$
Comme OID de résolution, utilisez
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr
La recherche d'une chaîne de description correspondante est sensible à la casse. La tâche mémorisera le dernier index. Si le numéro a changé, elle analysera à nouveau les descriptions.



















