Zabbix+Powermeter: Помониторим потребляемую мощность (и температуру, just for fun)


Исходные данные — имеем Zabbix на домашнем лабораторном сервере и «WiFi Измеритель мощности электроэнергии (ваттметр) HN-PM1/3F» — он меряет по трем фазам мощность, потребляемую домом, напряжение, и заодно мониторит температуру в доме и на улице. Данные хранит в своей базе, выкладывает на narodmon.ru, но нам этого мало, сделаем мониторинг своим Zabbix, пусть будет.

Для начала берем у автора прошивку с поддержкой SNMP, прошиваем, проверяем.

aleks@ZabbixItAll:~$ snmpwalk -c public -v1 192.168.0.95
iso.3.6.1.2.1.1.1.0 = STRING: «PowerMeter»
iso.3.6.1.2.1.1.3.0 = Timeticks: (13552361) 1 day, 13:38:43.61
iso.3.6.1.2.1.1.8.0 = Timeticks: (1400) 0:00:14.00
iso.3.6.1.2.1.99.1.1.1.4.1 = INTEGER: 139
iso.3.6.1.2.1.99.1.1.1.4.2 = INTEGER: 230
iso.3.6.1.2.1.99.1.1.1.4.99 = INTEGER: 14296
iso.3.6.1.2.1.230.1.1.1.2 = INTEGER: 2269
iso.3.6.1.2.1.230.1.1.1.7 = INTEGER: 228
iso.3.6.1.2.1.230.1.3.1.2.1 = INTEGER: 2291
iso.3.6.1.2.1.230.1.3.1.2.2 = INTEGER: 2237
iso.3.6.1.2.1.230.1.3.1.2.3 = INTEGER: 2265
iso.3.6.1.2.1.230.1.3.1.4.1 = INTEGER: 154
iso.3.6.1.2.1.230.1.3.1.4.2 = INTEGER: 66
iso.3.6.1.2.1.230.1.3.1.4.3 = INTEGER: 448
End of MIB
aleks@ZabbixItAll:~$

Отлично, SNMP на железке работает и даже отдает какие то цифры. С сайта изготовителя берем расшифровку. Понимаем, что она немножко не соответствует нашему выводу, но не пугаемся, допилим напильником по необходимости.

Теперь Zabbix. Идем в Configuration/Hosts и видим, что Powermeter у меня уже в списке (хвала Discovery). Открываем Hosts/Powermeter/Items, жмем CreateItem. Начнем, пожалуй, с комнатной температуры. Для этого заполняем как-то так:

  • Name: YourName
  • Type: SNMPv1 agent
  • Key: я вписал цифры от балды
  • Host interface:очевидно, адрес и порт хоста
  • SNMP OID: iso.3.6.1.2.1.99.1.1.1.4.2 (это как нам сказал snmpwalk)
  • SNPM community:public
  • Type of information:Numeric (float)
  • остальное по вкусу.

Так-как температура дома всяко не 230 градусов — в preprocessing вводим множитель 0.1

По необходимости то же самое повторяем для второго термодатчика, его SNMP OID: iso.3.6.1.2.1.99.1.1.1.4.1, он у меня меряет температуру на улице.

Для проверки жмем Check Now в закладке Item, быстренько идем в Monitoring/LatestData и наслаждаемся — 23 градуса дома. Красота же!

Теперь нам нужен график. Идем в Configuration/Hosts/Powermeter/Graphs, жмем Create Graph, дальше все просто —

На предпросмотре графика видим, что было до установки множителя в preprocessing:

Аналогично (через клонирование) поступаем с напряжением:

Аналогично поступаем с потребляемой мощностью (только убираем множитель, там данные отдаются корректно):