Хочется добавить мониторинг состояния батарей на APC SmartUPS (к примеру, SURT3000XLI). SNMP он не умеет. Подключается к компу через rs232. Как быть в этом случае? Может есть софтень какая-нибудь, или может какой-то checker подходящий для zabbix?
Ad Widget
Collapse
Как можно мониторить состояние UPS через com?
Collapse
X
-
Кому интересно - отвечаю.
Ставим пакет apcupsd, настраиваем мониторинг упсов. Создаем скрипты парсящие вывод apcaccess и выдающие нужную информацию.
Поднимаем SNMP, прописываем там запуск внешних скриптов:
extend apcbcharge /root/apcbcharge.sh
Список параметров забираем по
snmpwalk -v2c -c <password> <IP> NET-SNMP-EXTEND-MIB::nsExtendObjectsComment
-
Или скриптом (apcupcd):
Ну а дальше, что вам надо:Code:#!/usr/bin/perl my @All = (); if (open (APC, "/sbin/apcaccess |")) { @All = <APC>; close (APC); } else { print "0"; exit 0; } foreach (@All) { $voltage = $1 if (/LINEV\s*:\s*([\d\.]+)\s*Volts/); $charge = $1 if (/BCHARGE\s*:\s*([\d\.]+)\s*Percent/); $load = $1 if (/LOADPCT\s*:\s*([\d\.]+)\s*Percent/); }
print $voltage;
............Zabbix Servers - 1
Zabbix Proxy - 145
Monitored Servers: ~ 1400Comment
-
у меня это вот так:
Но теперь встал другой вопрос - SNMP возвращает тип данных STRING, а нужно чтобы тип возращаемых данных был Float:Code:#!/bin/sh apcaccess | grep BCHARGE | cut -d " " -f 4 exit 0
snmpwalk -v2c -c <pass> <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull.\"apcbcharge\"
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."apcbcharge" = STRING: 100.0
Как это сделать?Comment
-
Comment
-
У меня так
Установлен apcupsd
В zabbix_agentd.conf добавлен пользовательский параметр:
UserParameter=ups[*],cat /var/lib/apcupsd/apcupsd.status |grep -i "^$1" | awk '{print $$3}'
Настроены элементы данных с ключем - ups[itemp] - температура, ups[linev] - вх.напряжение и т.д.Comment
-
Установлен NUT 2.4.3
В zabbix_agentd.conf добавлен пользовательский параметр:
Настроены элементы данных с ключами:Code:UserParameter=ups[*],upsc $1 $2
Пользовательский макрос {$UPSNAME} определен на уровне узла сети и определяет имя Упса "myupsname", сконфигурированного согласно документации NUT.Code:ups[{$UPSNAME},battery.charge] ups[{$UPSNAME},ups.status] и другие.
Доступные опрашиваемые параметры (например "battery.charge") для конкретного Упса можно получить, выполнив на хосте с установленным NUT команду:
, где myupsname - это имя Упса.Code:upsc myupsname
Пример результатов доступных параметров:
На всякий случай: кроме того, эти параметры можно легко забирать по TCP с другого хоста.Code:battery.charge: 100 battery.voltage: 268.80 battery.voltage.high: 269 battery.voltage.low: 180 battery.voltage.nominal: 240.0 beeper.status: enabled device.mfr: Sinapse device.model: MS II device.type: ups driver.name: blazer_ser driver.parameter.pollinterval: 2 driver.parameter.port: /dev/ttyu0 driver.version: 2.4.3 driver.version.internal: 1.51 input.current.nominal: 26.0 input.frequency: 50.0 input.frequency.nominal: 50 input.voltage: 241.3 input.voltage.fault: 190.0 input.voltage.nominal: 230 output.voltage: 230.9 ups.delay.shutdown: 30 ups.delay.start: 180 ups.firmware: MS3006AG ups.load: 16 ups.mfr: Sinapse ups.model: MS II ups.status: OL ups.temperature: 25.0 ups.type: online
Если будет вдохновение - оформлю это все на Вики с шаблонами и картинками.Code:upsc [email protected]
Comment
-
UserParameter в zabbix_agent Windows
Доброго времени суток.
Есть лог, который генерирует apcupsd каждые 60 секунд.
Я хочу добавить параметр UserParameter в zabbix_agent Windows, который будет передавать нужные мне данные на сервер zabbix.
Файл имеет синтаксис:
MODEL : Back-UPS ES 525
STATUS : ONLINE
LINEV : 222.2 Volts
Мне надо брать данные за ":". Прошу помощи.
Comment
Comment