Мониторинг ИБП IPPON Back Basic 650 Euro с помощью NUT, Telegraf и InfluxDB в Grafana

Мониторинг ИБП IPPON Back Basic 650 Euro с помощью NUT, Telegraf и InfluxDB в Grafana

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

Как установить и настроить Telegraf, InfluxDB и Grafana можно посмотреть тут.

Подключаем ИБП к серверу, далее

apt install nut

Добавим директиву, указывающую, что ИБП подключен к данному компьютеру, а не к удаленному

nano /etc/nut/nut.conf

Изменим на standalone

MODE=standalone

Добавим в конце файла nano /etc/nut/ups.conf

[ippon]
    driver = blazer_usb
    port = auto
    desc = "IPPON BACK Basic 650"

Настройка адресов и портов прослушивания подключений к NUT, дописываем строки в конец файла nano /etc/nut/upsd.conf или создаем новый с таким содержимым

LISTEN 127.0.0.1 3493

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

Настройка профиля пользователя для доступа к NUT Добавим в nano /etc/nut/upsd.users

[upsmon]
    password = 123456
    actions = SET FSD
    instcmds = ALL
    upsmon master

Дописываем строки в конец файла nano /etc/nut/upsmon.conf

MONITOR ippon@localhost 1 upsmon 123456 master

Перезагружаем NUT

service nut-server restart
service nut-client restart

Проверка ИБП

upsc ippon@localhost

Настраиваем Telegraf в nano /etc/telegraf/telegraf.conf добавляем

[[inputs.upsd]]
    ## A running NUT server to connect to.
    server = "127.0.0.1"
    port = 3493
    username = "upsmon"
    password = "123456"

    ## Force parsing numbers as floats
    ## It is highly recommended to enable this setting to parse numbers
    ## consistently as floats to avoid database conflicts where some numbers are
    ## parsed as integers and others as floats.
    force_float = true

    ## Collect additional fields if they are available for the UPS
    ## The fields need to be specified as NUT variable names, see
    ## https://networkupstools.org/docs/developer-guide.chunked/apas02.html
    ## Wildcards are accepted.
    # additional_fields = []

Перезагружаем Telegraf

systemctl reload telegraf

Все теперь Telegraf будет передавать данные ИБП в InfluxDB Осталось только создать панель мониторинга в Grafana

Пример запроса из скриншота выше "Зарядка батареи ИБП"

from(bucket: "pve")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["ups_name"] == "ippon")
  |> filter(fn: (r) => r["_field"] == "battery_charge_percent")
  |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
  |> yield(name: "last")

Коды состояний ИБП отображаются в поле ups.status и могут принимать значения

  • OL — система работает от сети;
  • OB — система работает от батареи;
  • LB — система работает от разряженной батареи.

Похожие статьи