Zabbix Documentation 2.4

2.23.03.4In development:4.0Unsupported versions:1.82.02.43.2

User Tools

Site Tools


Sidebar

ru:manual:config:items:itemtypes:snmp:dynamicindex

1 Динамические индексы

Обзор

Хотя вы может быть и найдете требуемый номер индекса (например, сетевого интерфейса) из всех SNMP OID'ов, иногда вы не можете полностью положиться на номер индекса то, что номер индекса всегда останется таким же.

Индексы могут быть динамическими - они могут изменяться время от времени и, как следствие, ваш элемент данных может перестать работать.

Чтобы избежать этого, имеется возможность указать OID, который принимает во внимание возможность изменения номера индекса.

Например, если вам необходимо получить значение индекса, который относится к ifInOctets, которое соответствует интерфейсу GigabitEthernet0/1 на устройстве Cisco, используйте следующий OID:

ifInOctets["index","ifDescr","GigabitEthernet0/1"]
Синтаксис

Для OID используется специальный синтаксис:

<OID данных>["index","<базовый OID индекса>","<искомая строка>"]

ПараметрОписание
OID данныхОсновной OID, который используется для получения данных по элементу данных.
indexМетод обработки. В настоящее время поддерживается только один метод:
index – поиск индекса и присоединение его к OID'у данных
базовый OID индексаЭтот OID будет просматриваться для получения значения индекса соответствующего заданной строке.
искомая строкаСтрока используемая для точного совпадения со значением при выполнении поиска. Регистрозависимо.

Пример

Получение использования памяти процессом apache.

Если используется этот синтаксис OID:

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

номер индекса будет просматриваться следующим образом:

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

Теперь, у нас есть индекс равный 5388. Индекс будет присоединен к OID'у данных, чтобы получить интересуемое нас значение:

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

Кэширование поиска индексов

При запросе динамического индекса элемента данных, Zabbix извлекает и кэширует всю таблицу SNMP под базовым OID, даже если совпадение будет найдено ранее. Это делается на случай, если другой элемент данных в дальнейшем ссылается на тот же самый базовый OID - Zabbix будет искать индекс в кэше, вместо еще одного запроса к наблюдаемому устройству . Обратите внимание, каждый процесс поллера использует свой собственный кэш.

Во всех последующих операциях получения значений проверяется только найденный индекс. Если он не изменился, значение запрашивается. Если он изменился, кэш перестраивается - каждый поллер, который встречает измененный индекс снова проходит и кэширует таблицу индексов SNMP.