Мониторинг ИБП APC в Dude

Железо
Есть замечательная программа для мониторинга сети Dude, мониторит большое количество устройств, поддерживает все возможные протоколы и т.д. и т.п. Только с ее настройками иногда приходится повозиться. Например, ИБП по SNMP отдает свои параметры, такие как вольтаж, температура, информация с внешних датчиков. Только вот мануалы подкачали, найти что к чему относится тяжело. Методом научного тыка были найдены некоторые полезные параметры. Ими и поделюсь.

Нам нужно на выходе получить такую картинку:



Добавляем устройство, подключаем snmp, у девайса правой кнопкой — «вид» — «метка»:

[Device.Name] [Device.FirstAddress]
[device_performance()][Device.ServicesDown] Vin=[oid("iso.org.dod.internet.private.enterprises.318.1.1.1.3.2.1.0")] V PDU=[oid("1.3.6.1.4.1.318.1.1.1.4.2.3.0")]% Tbat=[oid("1.3.6.1.4.1.318.1.1.1.2.2.2.0")] C


Или просто смотреть внешний температурный датчик

[Device.Name]
[device_performance()][Device.ServicesDown] 
T=[oid("1.3.6.1.4.1.318.1.1.10.2.3.2.1.4.1")] C


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

Дополнительные функции для анализа snmp данных

device_performance
if( string_size(cpu_mem_disk()) > 0, concatenate(cpu_mem_disk(), " "), "" 


cpu_mem_disk 
concatenate( if(cpu_usage_available(), 
concatenate("cpu: ", cpu_usage(), "% "), ""), if(mem_usage() > 0, 
concatenate("mem: ", round(mem_usage()), "% "), ""), 
if(virtual_mem_usage() > 0, 
concatenate("virt: ", round(virtual_mem_usage()), "% "), ""), 
if(hdd_usage() > 0, 
concatenate("disk: ", round(hdd_usage()), "% "), "") ) 


cpu_usage 
average( oid_column("iso.org.dod.internet.mgmt.mib-2.host.hrDevice.hrProcessorTable.hrProcessorEntry.hrProcessorLoad") )


mem_usage 
oid(concatenate("iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.", 
array_element( oid_column("iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageIndex", 600), 
array_find( oid_column("iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageType", 600), 
"iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTypes.hrStorageRam" )))) * 100 / mem_size()


mem_size 
oid(concatenate("iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageSize.", 
array_element( oid_column("iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageIndex", 600), 
array_find( oid_column("iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageType", 600),
 "iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTypes.hrStorageRam" )))) 


hdd_size 
oid(concatenate("iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageSize.", 
array_element( oid_column("iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageIndex", 600), 
array_find( oid_column("iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageType", 600), 
"iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTypes.hrStorageFixedDisk" ))))

7 комментариев