Понадобилось однажды исследовать SNMP OID и написать шаблон Zabbix для ETP4860-B1A2 (SMU11B).
Пример проверки SNMP OID:
snmpwalk -v2c -c public ixnfo.com OID
В настройках устройства можно скачать Mib File, для этого откроем System Settings — SNMP, Mib File — Export.
После этого будет скачан архив с двумя файлами HUAWEI-MIB.mib и emap_snmp.mib, которые я положил на сервере с Zabbix в директорию /usr/share/snmp/mibs/
Теперь опишу несколько OID которые я транслировал из MIB и которые мне понадобились для мониторинга.
Некоторые OID требуют указания индекса выпрямителя (устройство ETP4860 имеет два слота под выпрямители), индексы выпрямителей у каждого устройства разные, по этому в шаблоне Zabbix я добавил к OID макрос {$ETP4860_INDEX_ixnfo.com} и указал его в каждом узле сети, чтобы шаблон был один для всех, а макрос можно было изменять.
При трансляции MIB в OID, были ошибки в файле MIB, которые мне пришлось исправить и OID успешно начали транслироваться.
Приведу пример OID выпрямителя с индексом (28677), результат множим на 0.1:
snmptranslate -IR -On EMAP-MIB::hwRectOutputVoltage
.1.3.6.1.4.1.2011.6.164.1.3.2.2.1.3
snmpwalk -v2c -c public 10.10.10.5 .1.3.6.1.4.1.2011.6.164.1.3.2.2.1.3
SNMPv2-SMI::enterprises.2011.6.164.1.3.2.2.1.3.28677 = Gauge32: 550
snmptranslate -IR -On EMAP-MIB::hwRectACVoltage
.1.3.6.1.4.1.2011.6.164.1.3.2.2.1.6
snmpwalk -v2c -c public 10.10.10.5 .1.3.6.1.4.1.2011.6.164.1.3.2.2.1.6
SNMPv2-SMI::enterprises.2011.6.164.1.3.2.2.1.6.28677 = Gauge32: 2313
snmptranslate -IR -On EMAP-MIB::hwRectifierTemperature
.1.3.6.1.4.1.2011.6.164.1.3.2.2.1.8
snmpwalk -v2c -c public 10.10.10.5 .1.3.6.1.4.1.2011.6.164.1.3.2.2.1.8
SNMPv2-SMI::enterprises.2011.6.164.1.3.2.2.1.8.28677 = INTEGER: 230
.1.3.6.1.4.1.2011.6.164.1.3.2.2.1.99.X (hwRectOperStatus, normal(1),fault(2),protect(3),commFail(4),switchOff(5),invalid(6),noConfig(7),alarmResume(254),other(255))
Опишу следующие OID, они уже без индекса устройства.
Какие значения указаны для плавающей и быстрой зарядки:
.1.3.6.1.4.1.2011.6.164.1.4.1.8 (hwSetBattsFloatVoltage *0.1)
.1.3.6.1.4.1.2011.6.164.1.4.1.9 (hwSetBattsBoostVoltage *0.1)
Статус заряда, значение обычно 1 float или 2 boost, 3 discharge — не на всех прошивках отображается:
.1.3.6.1.4.1.2011.6.164.1.4.2.3 hwBattsChargeStatus —
floatCharge(1),boostCharge(2),disCharge(3),hibernating(4),offline(7),unknown(255)
Когда нет коммуникации с батареей, позволяет отследить когда включается быстрая зарядка, чтобы точно подстроить правильное напряжение для Lifepo4 аккумулятора, ведь если быстрая зарядка с повышенным напряжением будет включаться при полностью заряженном аккумуляторе, то будет разбаланс напряжения по ячейкам аккумулятора и может отключиться BMS.
Текущий ток зарядки/разрядки батареи:
.1.3.6.1.4.1.2011.6.164.1.4.2.1 (hwBattsTotalCurrent)
Можно сделать Zabbix триггер, например когда работает от батареи > 12 часов (обычно OLT потребляет около 0.5-1.5А, значение будет отрицательным при разрядке):
max(/templateIXNFO.COM/hwBattsTotalCurrent,12h)<0
Сколько емкости батареи в % и в часах осталось и какая емкость (А) указана в настройках:
.1.3.6.1.4.1.2011.6.164.1.4.2.10 hwTotalRemainingCapacityPercent
.1.3.6.1.4.1.2011.6.164.1.4.2.2 (hwBattsPreDischargeTime, Backup Time in hours)
.1.3.6.1.4.1.2011.6.164.1.4.2.8 (hwBattsRatedCapacity)
.1.3.6.1.4.1.2011.6.164.1.4.1.13 (hwSetBattsRatedCapacity)
.1.3.6.1.4.1.2011.6.164.1.4.4.2.1.2.5 (hwBattStringCurrent)
.1.3.6.1.4.1.2011.6.164.1.4.2.9 (hwBattsRemainCapacity, A)
Текущая мощность AC/DC в Ватт:
.1.3.6.1.4.1.2011.6.164.1.3.1.11 (hwRectsTotalACInputPower, in Watt)
.1.3.6.1.4.1.2011.6.164.1.3.1.9 (hwRectsTotalDCPower, in Watt)
.1.3.6.1.4.1.2011.6.164.1.6.1.5.0 (hwDcsTotalPower, in Watt)
Какое напряжение по умолчанию указано для выпрямителя:
.1.3.6.1.4.1.2011.6.164.1.3.1.5 (hwRectsRatedVoltage) 53.5
Какое напряжение поступает на батарею (напряжение будет подниматься по мере заряда батареи до указанного в hwRectOutputVoltage):
.1.3.6.1.4.1.2011.6.164.1.3.1.6 (hwModifyRectsOutputVoltage)
Еще несколько OID:
1.3.6.1.4.1.2011.6.164.1.4.2.4 (hwBattsCurrLimitStatus, 1-not limited, 2-limited or unknown)
1.3.6.1.4.1.2011.6.164.1.6.2.1.1.99 (hwDcOutputOperStatus, normal(1), voltHigh(2), voltLow(3), alarmResume(254), other(255))
1.3.6.1.4.1.2011.6.164.1.3.1.3.0 (hwRectsTotalCurrent)
1.3.6.1.4.1.2011.6.164.1.5.1.3.0 (hwAcsTotalCurrent)
1.3.6.1.4.1.2011.6.164.1.5.2.1.1.99.1 (hwAcInputOperStatus, normal(1), acOff(2), acAbsent(3), voltHigh(4), voltLow(5), alarmResume(254), other(255))
.1.3.6.1.4.1.2011.6.164.1.3.1.10 (hwRectsLoadUsage)
.1.3.6.1.4.1.2011.6.164.1.1.2.99.1.2 (hwActiveAlarmText)
.1.3.6.1.4.1.2011.6.164.1.4.1.12 (hwCtrlBattsBoostFloat) floatCharge(1),boostCharge(2)
.1.3.6.1.4.1.2011.6.164.1.4.1.10 (hwSetBattsCurrLimitCoefficient, *0.01)
Смотрите также мои статьи:
Как перевести SNMP MIB в OID