Однажды делал шаблон Zabbix для рисования графиков трафика с портов GPON плат на Huawei SmartAX MA5683T.
Из Linux посмотрел индексы интерфейсов командой:
snmpwalk -v2c -c public 192.168.0.101 ifDesc
Получил ответ что-то в виде (где 4194336768 индекс нулевого порта GPON платы):
IF-MIB::ifDescr.4194336768 = STRING: Huawei-MA5600-V800R008-GPON_UNI
…
Соответственно по этому индексу должен считываться и трафик, поэтому выполнил команду:
snmpwalk -v2c -c public 192.168.0.101 ifInOctets.4194336768
Но в итоге получил ответ:
.1.3.6.1.2.1.2.2.1.13.4194336768: Unknown Object Identifier (Index out of range: 4194336768 (ifIndex))
Решить проблему помогло добавления ключа -Ir в команду:
snmpwalk -v2c -Ir -c public 192.168.0.101 ifInOctets.4194336768
В ответ получил то что нужно:
IF-MIB::ifInOctets.4194336768 = Counter32: 2686914701
Ошибку можно решить добавив в файл конфигурации /etc/snmp/snmp.conf:
noRangeCheck yes
Либо можно написать скрипт:
snmpwalk -v2c -Ir -c public 192.168.0.101 ifInOctets.4194336768 | sed -e 's/.*Counter32: //g'
В конце команды редактором SED я отрезал лишний текст чтобы в результате была только цифра.
В Zabbix потом изменим элемент данных, где:
Тип: Внешняя проверка
Ключ: ИмяСкрипта.sh
Тип информации: Числовой (с плавающей точкой)
Хранение значения: Дельта (скорость в секунду)
Смотрите также мою статью:
Список SNMP OID и MIB для интерфейсов
Лучше в файл /etc/snmp/snmp.conf дописать строку:
noRangeCheck 1