ИБП STARK COUNTRY 1000 ONLINE для котла, дачи - подключаем к Raspberry PI, мониторим через Zabbix, получаем уведомления при сбоях на email

ИБП STARK COUNTRY 1000 ONLINE для котла, дачи - подключаем к Raspberry PI, мониторим через Zabbix, получаем уведомления при сбоях на email

t.me/freebsd2022 (https://t.me/freebsd2022) 30.12.2023

Бесперебойник STARK COUNTRY 1000 ONLINE для котла, дачи - подключаем к Raspberry PI, мониторим через Zabbix, получаем уведомления при сбоях на email.

(!) Человек часто делает ошибки. Более того, он всю жизнь только и занимается тем, что делает ошибки. Не ошибается тот, кто ничего не делает. Главное вовремя заметить ошибку и исправить ее. (Ги де Мопассан)

(!!) Статья не является рекламой. Описан реальный пример использования.

Цель статьи - описать реальный пример мониторинга UPS, который используется для котла на даче. В статье рассмотрим подключение UPS к Raspberry PI по USB, а также настройку мониторинга Zabbix (в т.ч. на удалённом сервере) для этого UPS. Покажем примеры графиков и уведомлений.

Zabbix - Stark1000 voltage graph


STARK COUNTRY 1000 ONLINE 16А

Задача сводится к шагам:

1. подключение UPS STARK COUNTRY 1000 ONLINE к Raspberry PI

2. настройка ПО на малине (nut)

3. подключаем малину к удалённому серверу по ВПН с реконектом

4. настройка мониторинга UPS в Zabbix на удалённом сервере

5. графики, примеры уведомлений


Сначала несколько вводных, вопросы-ответы:

  • почему именно этот UPS используем? Только по той причине, что он был несколько лет назад (на момент монтажа оборудования) одним из самых доступных по цене (порядка 15-20КРуб + каждый АКБ по 8-10КРуб); сейчас такой комплект будет стоить раза в 1.5-2 дороже. Также важное свойство этого аппарата - онлайн-переключение и синусоида на выходе. Даже хорошие APC Smart-UPS не дают синус на выходе
  • почему Raspberry PI? Примерно по той же причине - была под рукой при монтаже, низкое энергопотребление, можно запитать от того же UPS. Данные по малине:
# cat /proc/cpuinfo|grep Model
Model      : Raspberry Pi 3 Model B Rev 1.2
# cat /etc/os-release|grep PRETTY_NAME
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
  • почему Zabbix? Потому что ПО хорошо мониторит железо/ОС, поддерживает много устройств, есть простые графики и уведомления по email/смс/telegram
  • почему Zabbix установлен на удалённом сервере? Естественно по причине того, что мониторить устройства надо с максимально стабильного канала. Если за городом пропадает связь/электричество, там же (рядом) ставить Zabbix нелогично
  • какой софт используем? Небольшой список:

Nut https://networkupstools.org/

Zabbix https://www.zabbix.com/ru (у нас старая версия 2.4.8)

raspbian https://www.raspberrypi.com/software/operating-systems/ (у нас buster 5.10.52-v7+ #1441 SMP Tue Aug 3 18:10:09 BST 2021 armv7l GNU/Linux)


Шаг 1 - подключаем UPS к малине по USB

UPS STARK COUNTRY 1000 ONLINE
Raspberry Pi 3 Model B

Шаг 2 - настраиваем взаимодействие малины с UPS. Нам нужен nut, поставим его. После подключения UPS по USB проверяем его видимость в системе (Device 095):

root@:/etc/zabbix/zabbix_agentd.d# lsusb
Bus 001 Device 095: ID 0665:5161 Cypress Semiconductor USB to Serial
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Полезно посмотреть список поддерживаемых устройств:

# more /usr/share/nut/driver.list|grep blazer_usb
... список довольно значительный ...
# more /usr/share/nut/driver.list|grep '0665:5161'
"Sweex" "ups"  "2"   "INTELLIGENT UPS 1500VA P220"  "USB"  "blazer_usb (USB ID 0665:5161)" # http://www.sweex.com/en/notebook-pc-accessoires/ups/PP220/

По последней команде находим драйвер blazer_usb и пишем в конфиг:

/etc/nut# more ups.conf
MODE=standalone
[stark1000]
driver = blazer_usb
port = auto
desc = "Stark1000"
ondelay = 7

Остальные настройки nut также опустим, пока не нужны. Нам важно запомнить, как будем обращаться к UPS - stark1000@localhost (обратим внимание на ups.vendorid=0665). Тест соединения:

# upsc Stark1000@localhost
Init SSL without certificate database
battery.charge: 100
battery.voltage: 27.24
battery.voltage.high: 26.00
battery.voltage.low: 20.80
battery.voltage.nominal: 24.0
device.mfr:
device.model: OLHV1K0L
device.type: ups
driver.name: blazer_usb
driver.parameter.ondelay: 7
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.internal: 0.12
input.current.nominal: 4.0
input.frequency: 50.0
input.frequency.nominal: 50
input.voltage: 229.2
input.voltage.fault: 229.0
input.voltage.nominal: 220
output.voltage: 219.4
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 420
ups.firmware: 02345.00
ups.load: 1
ups.mfr:
ups.model: OLHV1K0L
ups.productid: 5161
ups.status: OL
ups.temperature: 28.2
ups.type: online
ups.vendorid: 0665

Что можно еще проверить:

# upscmd -l Stark1000@localhost
Instant commands supported on UPS [Stark1000]:

beeper.toggle - Toggle the UPS beeper
load.off - Turn off the load immediately
load.on - Turn on the load immediately
shutdown.return - Turn off the load and return when power is back
shutdown.stayoff - Turn off the load and remain off
shutdown.stop - Stop a shutdown in progress
test.battery.start - Start a battery test
test.battery.start.deep - Start a deep battery test
test.battery.start.quick - Start a quick battery test
test.battery.stop - Stop the battery test

Проверка доступа udev к устройству:

# upsdrvctl start
Network UPS Tools - UPS driver controller 2.7.4
Network UPS Tools - Megatec/Q1 protocol USB driver 0.12 (2.7.4)
Supported UPS detected with megatec protocol
Vendor information read in 1 tries
No values provided for battery high/low voltages in ups.conf
Using 'guestimation' (low: 20.800000, high: 26.000000)!
Battery runtime will not be calculated (runtimecal not set)
Broadcast message from nut@localhost (somewhere) (Sat Dec 30 02:20:21 20
Communications with UPS stark1000@localhost established

Шаг 3 - описан в статье https://telegra.ph/Primery-ispolzovaniya-na-praktike-mpd5-pod-FreeBSD---Multi-link-PPP-daemon-04-22 про mpd5. Суть его в том, что по ВПН малина подключается в одну сеть с сервером Zabbix, тогда снятие параметров малины упрощается. Также используется реконект, если у малины моргнет канал, или будет сбой по питанию.

Шаг 4 - в Zabbix agent на Raspberry PI используем следующие настройки:

/etc/zabbix# more zabbix_agentd.conf|grep UserParameter
#    Format: UserParameter=<key>,<shell command>
# UserParameter=
UserParameter=UPSStatus,apcaccess | awk '/^(STATUS).*:/ { print $3 }'
UserParameter=UPSBcharge,apcaccess | awk '/^(BCHARGE).*:/ { print $3 }'
UserParameter=UPSTimeleft,apcaccess | awk '/^(TIMELEFT).*:/ { print $3 }'
UserParameter=UPSALL,apcaccess
UserParameter=upsmon[*],/etc/zabbix/sh/ups_status.sh $1 $2
UserParameter=raspberry_pi[*],/etc/zabbix/sh/raspberry_pi.sh $1

То есть снимаем с UPS параметры - заряд, частоту, загрузку, температуру и вольтаж:

Zabbix - UPS parameters

Шаг 5 - опишем важное для нашего случая (рассказывать про подключение мониторинга нового linux-сервера в zabbix не будем). Штатно подключаем наш сервер, на графиках будут видны перечисленные в шаге 4 параметры:

Voltage
Charge

При отключениях питания получаем штатные уведомления Zabbix, например, на почту на телефоне в виде писем Problem/OK:

mail Problem/OK from Zabbix

Также видим интервал пропадания питания на графике:

No power interval on UPS

Долгих аптамов! С наступающим НГ2024!

uptime


Report Page