Мониторинг UPS CyberPower через Zabbix

В данной статье описано, как настроить Zabbix для получения данных из ИБП CyberPower, подключенном по USB.

Все команды выполняются от root (после sudo su) на ОС Ubuntu Server 24.04.

Первым делом, надо скачать PowerPanel с официального сайта. Он там не очень новый, но отлично заработал на Ubuntu 24.04. Для скачивания можно воспользоваться wget.

# wget https://ссылка

И затем установить его

# dpkg -i имя_файла

После этого станет доступна команда для работы с ИБП.

# pwrstat

При вызове этой команды появится список ключей.

Для просмотра состояния (напряжения, нагрузки и пр.) можно воспользоваться параметром status

# pwrstat -status

The UPS information shows as following:

Properties:
Model Name................... VP1000ELCD
Firmware Number.............. BF01914BB91.x
Rating Voltage............... 230 V
Rating Power................. 550 Watt

Current UPS status:
State........................ Normal
Power Supply by.............. Utility Power
Utility Voltage.............. 234 V
Output Voltage............... 234 V
Battery Capacity............. 100 %
Remaining Runtime............ 36 min.
Load......................... 77 Watt(14 %)
Line Interaction............. None
Test Result.................. Passed at 2026/01/02 21:56:34
Last Power Event............. None

Для просмотра настроек при возникновении проблем, можно воспользоваться параметром config

# pwrstat -config

Daemon Configuration:

Alarm .............................................. On
Hibernate .......................................... Off
Cloud .............................................. Off

Action for Power Failure:

Delay time since Power failure ............. 60 sec.
Run script command ......................... On
Path of script command ..................... /etc/pwrstatd-powerfail.sh
Duration of command running ................ 0 sec.
Enable shutdown system ..................... On

Action for Battery Low:

Remaining runtime threshold ................ 300 sec.
Battery capacity threshold ................. 35 %.
Run script command ......................... On
Path of command ............................ /etc/pwrstatd-lowbatt.sh
Duration of command running ................ 0 sec.
Enable shutdown system ..................... On

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

Дополнительную информацию по этой программе можно получить в статье: https://wiki.archlinux.org/title/CyberPower_UPS

Второй шаг – настроить Zabbix-Agent2.

# nano /etc/zabbix/zabbix_agent2.d/plugins.d/cyberpower.conf

Содержимое

UserParameter=ups.model,sudo pwrstat -status | grep "Model Name" | sed 's/.*\.\{2,\} *//'
UserParameter=ups.firmware,sudopwrstat -status | grep "Firmware Number" | sed 's/.*\.\{2,\} *//'
UserParameter=ups.rating_voltage,sudo pwrstat -status | grep "Rating Voltage" | sed 's/.*\.\{2,\} *//'
UserParameter=ups.rating_power,sudo pwrstat -status | grep "Rating Power" | sed 's/.*\.\{2,\} *//'
UserParameter=ups.state,sudo pwrstat -status | grep "State" | sed 's/.*\.\{2,\} *//'
UserParameter=ups.power_supply,sudo pwrstat -status | grep "Power Supply by" | sed 's/.*\.\{2,\} *//'
UserParameter=ups.input,sudo pwrstat -status | grep "Utility Voltage" | grep -o '[0-9]\+\(\.[0-9]\+\)\?' | head -n 1
UserParameter=ups.output,sudo pwrstat -status | grep "Output Voltage" | grep -o '[0-9]\+\(\.[0-9]\+\)\?' | head -n 1
UserParameter=ups.battery,sudo pwrstat -status | grep "Battery Capacity" | grep -o '[0-9]\+\(\.[0-9]\+\)\?' | head -n 1
UserParameter=ups.runtime,sudo pwrstat -status | grep "Remaining Runtime" | grep -o '[0-9]\+\(\.[0-9]\+\)\?' | head -n 1
UserParameter=ups.load,sudo pwrstat -status | grep "Load" | grep -o '[0-9]\+\(\.[0-9]\+\)\?' | head -n 1
UserParameter=ups.load_perc,sudo pwrstat -status | sed -n '/Load/{s/.*(\([0-9]\+\) %).*/\1/;p}'
UserParameter=ups.line_interaction,sudo pwrstat -status | grep "Line Interaction" | sed 's/.*\.\{2,\} *//'
UserParameter=ups.test_result,sudo pwrstat -status | grep "Test Result" | sed 's/.*\.\{2,\} *//'
UserParameter=ups.last_power_event,sudo pwrstat -status | grep "Last Power Event" | sed 's/.*\.\{2,\} *//'

После этого необходимо перезапустить сервис

# service zabbix-agent2 restart

Нужно дать пользователю zabbix доступ к PowerPanel

# visudo

В конце дописать

zabbix ALL=(ALL) NOPASSWD:/usr/sbin/pwrstat

Теперь можно проверить правильность работы параметров. Вот примеры команд и примеры вывода после этих команд

# zabbix_agent2 -t ups.input

Вывод

ups.input [s|238]

Команда

# zabbix_agent2 -t ups.model

Вывод

ups.model [s|VP1000ELCD]

Шаг третий, настройка Zabbix сервера. Скачиваем шаблон по ссылке и импортируем его в Zabbix.

И теперь подключаем шаблон.

После чего можно настраивать графики по своему желанию.

В подготовке данной статьи использовались:
Ubuntu Server 24.04
Zabbix 7.4
PowerPanel 1.4.1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *