1 Index dynamiques

Aperçu

Bien que vous puissiez trouver le numéro d’index requis (par exemple, celui d’une interface réseau) parmi les OID SNMP, il arrive que vous ne puissiez pas vous fier entièrement au fait que ce numéro d’index reste toujours identique.

Les numéros d’index peuvent être dynamiques : ils peuvent changer au fil du temps et, par conséquent, votre élément peut cesser de fonctionner.

Pour éviter ce scénario, il est possible de définir un OID qui prend en compte la possibilité qu’un numéro d’index change.

Par exemple, si vous devez récupérer la valeur d’index à ajouter à ifInOctets qui correspond à l’interface GigabitEthernet0/1 sur un appareil Cisco, utilisez l’OID suivant :

ifInOctets["index","ifDescr","GigabitEthernet0/1"]
La syntaxe

Une syntaxe spéciale est utilisée pour l'OID :

<OID des données>["index","<OID de base de l'index>","<chaîne à rechercher>"]

Paramètre Description
OID des données OID principal à utiliser pour la récupération des données dans l'élément.
index Méthode de traitement. Actuellement, une seule méthode est prise en charge :
index - rechercher l'index et l'ajouter à l'OID des données
OID de base de l'index Cet OID sera recherché pour obtenir la valeur d'index correspondant à la chaîne.
chaîne à rechercher La chaîne à utiliser pour une correspondance exacte avec une valeur lors de la recherche. Sensible à la casse.

Exemple

Obtention de l'utilisation mémoire du processus apache.

Si vous utilisez cette syntaxe OID :

HOST-RESOURCES-MIB::hrSWRunPerfMem["index","HOST-RESOURCES-MIB::hrSWRunPath", "/usr/sbin/apache2"]

le numéro d'index sera recherché ici :

...
HOST-RESOURCES-MIB::hrSWRunPath.5376 = STRING: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5377 = STRING: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5388 = STRING: "/usr/sbin/apache2"
HOST-RESOURCES-MIB::hrSWRunPath.5389 = STRING: "/sbin/sshd"
...

Nous avons maintenant l'index, 5388. L'index sera ajouté à l'OID de données afin de recevoir la valeur qui nous intéresse :

HOST-RESOURCES-MIB::hrSWRunPerfMem.5388 = INTEGER: 31468 KBytes

Mise en cache de la recherche d'index

Lorsqu'un élément d'index dynamique est demandé, Zabbix récupère et met en cache l'ensemble de la table SNMP sous l'OID de base pour l'index, même si une correspondance pouvait être trouvée plus tôt. Cela est fait au cas où un autre élément ferait référence plus tard au même OID de base - Zabbix rechercherait alors l'index dans le cache, au lieu d'interroger à nouveau l'hôte supervisé. Notez que chaque processus poller utilise un cache distinct.

Dans toutes les opérations ultérieures de récupération de valeur, seul l'index trouvé est vérifié. S'il n'a pas changé, la valeur est demandée. S'il a changé, le cache est reconstruit - chaque poller qui rencontre un index modifié parcourt à nouveau la table SNMP d'index.