Я встречал довольно много коммутаторов в которых SNMP индексы могут сдвигаться, например в зависимости от количества добавленных VLAN, то есть первый порт уже будет не ifIndex.1, а к примеру ifIndex.5. На Mikrotik RB2011UiAS-RM порт sfp1 это ifIndex.1, а ether1 уже ifIndex.2. В Huawei коммутаторах и OLT видел вообще заоблачные цифры и плюс ко всему они тоже сдвигались. По этому чтобы не создавать для одной и той же модели устройства отдельные шаблоны, у Zabbix для этого есть решение.
Синтаксис элемента данных SNMP для динамический индексов:
<OID данных>["index","<OID индекса>","<искомая строка>"]
Приведу пример на одном из BDCOM P3310C, допустим порт устройства называется GigaEthernet0/1, убедимся в этом посмотрев описание портов:
snmpwalk -v2c -c public ixnfo.com ifDescr
У меня отобразилось:
IF-MIB::ifDescr.9 = STRING: GigaEthernet0/1
IF-MIB::ifDescr.10 = STRING: GigaEthernet0/2
IF-MIB::ifDescr.11 = STRING: GigaEthernet0/3
…
Теперь, чтобы получить трафик порта используем вместо SNMP OID ifInOctets.9 или ifHCInOctets.9 следующую строку:
ifHCInOctets["index","ifDescr","GigaEthernet0/1"]
Все остальное настраивается как обычно, например для скорости не забываем указать обработки «Пользовательский множитель 8» и «Изменение в секунду».
Аналогичным образом можно получать и другие данные.
Каждый Zabbix поллер использует свой кэш, по этому на устройство не будет идти лишняя нагрузка, так как после первого запроса, SNMP индекс будет браться из кэша.
Смотрите другие мои статьи на тему Zabbix.