SNMP
Fonction | Interroger un périphérique (généralement un type de périphérique réseau) pour obtenir des données SNMP en demandant un OID. Permet de parcourir les OID. |
---|---|
Alarme | Temps de transfert, valeurs définies par l'utilisateur, valeurs différentielles et valeurs de chaîne. |
Le protocole SNMP (Simple Network Management Protocol) est de loin le protocole dominant en matière de gestion de réseau. L'une des principales raisons de son acceptation généralisée, outre le fait qu'il s'agit de la principale norme Internet pour la gestion des réseaux, est sa relative simplicité. La mise en œuvre de la gestion SNMP dans un appareil 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 dénomination bien définie pour spécifier les variables à l'agent SNMP. Les noms d'objets dans cette syntaxe sont appelés identificateurs d'objets (Object IDs ou OIDs).
Les OID sont des séries de nombres qui identifient de manière unique un objet pour un agent SNMP. Les OID sont disposés dans une structure hiérarchique en forme d'arbre inversé. L'arbre des 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 de l'OID est une séquence de nombres 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 de 32 bits |
ASN_INTEGER | Entier de 32 bits (-232 à232) rfc 1442 |
ASN_INTEGER64 | Entier de 64 bits (-264 jusqu'à264) rfc 1442 |
ASN_OPAQUE | flotteur et double supportés |
ASN_UNSIGNED64 | 64 bits non signés |
ASN_COUNTER64 | 64 bits non signés |
ASN_TIMETICKS | non signé |
Toutes ces valeurs et la différence par rapport à la dernière mesure sont converties en valeurs flottantes et sont ensuite transférées au serveur.
Les valeurs différentielles des types ci-dessus sont automatiquement divisées par le temps écoulé depuis les dernières mesures ((currentValue - previousValue) / (currentTimeSeconds - previousTimeSeconds)). Cela signifie que nous obtenons toujours un taux par seconde pour ces valeurs de différence.
ASN_BIT_STR |
ASN_OCTET_STR |
Ces valeurs sont des chaînes et peuvent contenir n'importe quel caractère imprimable.
Fonctionnalités SNMP
Navigateur de MIB en ligne pour la sélection d'OID
Fichiers MIB infinis, emplacement : /usr/share/snmp/mibs sur chaque collecteur SKOOR Engine Collector
Unité de mesure configurable
Valeurs différentielles automatiques
Prise en charge des PDU version 1, 2c et v3
Support de l'encryptage v3
Alarme de la couche n
Sélection d'interface MIB2 par nom
Référence des noms d'OID aux numéros d'OID
Tentatives et délais d'attente réglables
Valeurs supprimables (réduit la taille de la base de données)
Chaînes de caractères (référence d'un numéro à un texte)
Analyse des nombres à partir d'un texte OID (première valeur uniquement)
Détails SNMP
Paramètres SNMP
La section d'entrée Authentification n'est affichée que lorsque la version 3 du SNMP est sélectionnée.
Paramètre | Description de l'authentification |
---|---|
Port UDP | Sélectionnez le port UDP (161 par défaut). |
Tentatives | Nombre de tentatives en cas d'échec de la demande. La valeur par défaut est de 2 tentatives. |
Délai d'attente | Sélectionnez le délai d'attente pour la demande. Sur la plupart des appareils, les requêtes SNMP sont traitées avec une faible priorité ; il convient donc d'utiliser un délai suffisamment long. La valeur par défaut est de 2 secondes. |
Version | Sélectionnez la version SNMP utilisée 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é. |
Phrase de passe d'authentification | Phrase de passe pour l'authentification, visible uniquement lorsque SNMP avec authentification est utilisé. |
Protocole d'authentification | Protocole d'authentification, uniquement visible lorsque SNMP avec authentification est utilisé. Les options actuellement disponibles sont MD5 ou SHA. La valeur par défaut est MD5. |
Phrase de passe de confidentialité | Pour le cryptage, visible uniquement lorsque SNMP avec authentification et cryptage est utilisé. |
Protocole de confidentialité | Pour le cryptage, visible uniquement lorsque SNMP avec authentification et cryptage est utilisé. Les options actuellement disponibles sont DES et AES. La valeur par défaut est DES. |
Communauté | La plupart des appareils réseau autorisent différents niveaux d'accès SNMP, par exemple : READ ONLY (lecture seule) ou READ/WRITE (lecture/écriture) : READ ONLY (lecture seule) ou READ/WRITE (lecture/écriture). Chacun de ces niveaux d'accès a généralement une chaîne de communauté différente. Pour lire des données, seule la communauté READ doit être connue, qui est généralement : public. |
Demande d'OID | Insérer l'OID de la base d'informations de gestion (MIB) pour la demande. Si l'OID est inconnu, il peut être consulté sur l'appareil jobs avec le navigateur en ligne. Des OID supplémentaires peuvent être demandés à partir d'un seul job SNMP en cliquant sur le bouton "+" à côté du bouton " Browse". Si plus d'un OID est saisi, 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. Le calcul de la valeur différentielle sera effectué si le compteur est remis à 0. Cela permet d'éviter les valeurs différentielles négatives. |
Suppression du 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 à cocher Supprimer le message d'information est activée, la sortie de type chaîne SNMP ne sera pas envoyée au serveur. La valeur de retour sera définie sur Invalid value uniquement si une valeur ou une valeur différente est souhaitée et qu'il n'est pas possible d'extraire une valeur de la chaîne. Les cases à cocher Suppression de la valeur, Suppression de la valeur différentielle et |
Mapper la chaîne à la valeur | Définissent une correspondance entre les objets de type 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 du 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 aucune table de conversion n'est définie ou si l'affectation échoue (aucun opérateur par défaut n'est défini), la chaîne est analysée à la recherche de la première occurrence de caractères numériques et le résultat est transféré au serveur comme demandé (valeur et/ou valeur différentielle). |
Définir l'unité | Voir la section SNMP Unit/Divisor ci-dessous. |
La liste déroulante Tags 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 la durée de la recherche, 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, en commençant par Root, qui ne doit être sélectionné que si l'emplacement de l'objet requis est totalement inconnu :
Lancez le processus en cliquant sur le bouton Start scan (Démarrer l'analyse):
L'analyse peut prendre un certain temps, en fonction du nombre d'objets situés sous l'OID racine sélectionné. Cliquez sur Actualiser jusqu'à ce que l'état de téléchargement indique Terminé:
Le compteur de téléchargement indique le nombre d'OID trouvés. Pour les afficher, sélectionnez Show tree ou Show flat. Pour sélectionner un OID, il suffit de cliquer sur le lien de l'OID.
Exemple 1 - Arborescence avec type et valeur
Exemple 2 - Vue à plat avec la valeur
Si la sortie de l'arbre scanné ne montre pas d'informations textuelles mais seulement des OID de la forme
1.3.6.1.4.1.13424.11.1.1.25
le MIB de l'appareil analysé n'est probablement pas installé. Pour rechercher des MIB SNMP, consultez le site web du fabricant de l'appareil ou la page d'accueil de MIB Depot pour les MIB disponibles publiquement.
Résolution des noms génériques 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 de la MIB d'un 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 du nom à l'index. Pour ce faire, nous remplaçons l'index par une chaîne de caractères à comparer à l'OID Resolve avec le motif entre deux caractères $. Avant d'exécuter la requête, SKOOR Engine remplacera la $string$ par l'index correspondant trouvé. Voici un exemple d'OID dont on aimerait lire une valeur :
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.2
Au lieu de saisir cette chaîne comme 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 la suivante : C:\NLabel : 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:\NLabel : Numéro de série dc133042$
Dès que la deuxième chaîne $ est saisie, une nouvelle ligne intitulée Resolve OID apparaît sous la ligne Request OID1. Saisissez ici la description de l'OID ci-dessus :
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr
$C:\ Label : Serial Number dc133042$ sera remplacé par 2.
Valeur par défaut SNMP
Si la résolution du nom de l'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 caractère d'espacement :
iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label : Numéro de série dc133042$ 2
Unité/diviseur SNMP
La sortie SNMP dans l'exemple de la section ci-dessus est la suivante :
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.
L'explorateur Windows nous indique ce qui suit à propos du 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 d'Explorer)
Pour définir le diviseur de 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 du travail SNMP sera de 7,01 Go.
Pour obtenir le % utilisé, utilisez la formule suivante : hrStorageUsed / hrStorageSize x 100, le diviseur étant donc 21205.72.
Jobs SNMP avec plusieurs OID
Il est possible d'évaluer plusieurs OID au sein d'un même job SNMP. Toutes les requêtes SNMP doivent être valides pour l'appareil auquel le job SNMP est rattaché (il n'est pas possible de définir des requêtes pour différents appareils dans un job SNMP). Des OID supplémentaires sont activés en cliquant sur le bouton plus à côté du bouton Parcourir en ligne. Lorsque des OID supplémentaires sont ajoutés, des champs de résultats supplémentaires apparaissent dans la section Résultats ci-dessous :
Chaque OID dispose d'une section de sortie configurable séparément et de sa propre définition de chaîne de caractères à valeur et de son propre bouton Unité. Le temps de transfert peut être supprimé globalement.
L'exemple utilise Resolve OIDs pour chacun des 3 OID. Voir la section Résolution des noms génériques SNMP ci-dessus pour plus de détails.
Les premier et deuxième OIDs demandent les compteurs ifInOctets et ifOutOctets 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 avec le temps, donc les champs Result pour ces 2 OIDs suppriment les valeurs elles-mêmes et toutes les valeurs de chaîne (qui ne sont pas retournées de toute façon par cet OID).
La définition de l'unité pour le premier résultat de l'OID a les unités de valeur et de valeur 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'état ifOperStatus de l'interface réseau, qui est renvoyé par l'agent SNMP sous la forme d'une chaîne (et non d'un objet chaîne à proprement parler, mais la sortie est par exemple : up(1)). Ceci peut être vu en utilisant le bouton Browse online avec l'OID .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifOperStatus comme Root:
Les valeurs numériques étant traitées plus rapidement par 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:
Cela signifie que le résultat envoyé au serveur sera une valeur et non plus une chaîne, de sorte que l'on peut 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 produit une erreur, le message d'erreur de cet OID est affiché et l'ensemble du travail échoue. Tous les OID suivants ne sont pas traités en cas d'échec d'un OID :
Valeurs SNMP et seuils d'alarme
Valeur / Limite d'alarme | Description de la valeur |
---|---|
Valeur1-n | Valeur numérique personnalisée définie par le bouton OIDs Result Unit. |
Valeur Diff1-n | Valeur numérique personnalisée définie par le bouton OIDs Result Unit. |
Chaîne valeur1-n | Valeur de chaîne personnalisée définie par le bouton OIDs Result Unit. |
Code d'erreur | Code d'erreur générique du travail (voir la section Codes d'erreur du travail). |
Exemples SNMP
Exemple 1 - Sélection d'une 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. Dans ce cas, il doit ê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 connaître le nombre d'octets qui ont transité vers l'intérieur par l'interface du VLAN 10. Pour ce faire, nous recherchons d'abord la description de l'interface ci-dessous .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr:
et nous constatons que la description est la suivante :
em0_vlan10
Remplacez maintenant l'index numérique après ifInOctets par la chaîne $em0_vlan10$ et utilisez-la comme OID de la requête :
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.$em0_vlan10$.
En tant qu'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. Le job se souviendra du dernier index. Si le numéro a changé, il balayera à nouveau les descriptions.