ИБП LINUX через NUT LLD Zabbix

Питание: Измерение распределение блоки питания
Источники Бесперебойного Питания ИБП
Измерительный блок распределения питания БРП
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 894
Стаж: 5 лет 11 месяцев
Откуда: Вологодская область
Поблагодарили: 42 раза
Контактная информация:

ИБП LINUX через NUT LLD Zabbix

Сообщение Артём Мамзиков »

Предыдущая запись по Установке и Настройке NUT

СКАЧАТЬ:
nut-zabbix-lld.zip
nut-zabbix-lld.zip
(26.75 КБ) 4 скачивания
И так у нас есть данные ответа от ИБП
Пример Получение данных:

Код: Выделить всё

upsc entel-lpb-u20bs2@localhost
или

Код: Выделить всё

upsc entel-lpb-u20bs2@192.168.175.111:3551
Ответ:
Init SSL without certificate database
battery.charge: 100
battery.voltage: 54.70
battery.voltage.high: 52.00
battery.voltage.low: 41.60
battery.voltage.nominal: 48.0
device.mfr: ENTEL
device.model: LPB-U20CS2
device.type: ups
driver.name: blazer_usb
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: 8.0
input.frequency: 50.0
input.frequency.nominal: 50
input.voltage: 236.6
input.voltage.fault: 236.6
input.voltage.nominal: 230
output.voltage: 236.4
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.firmware: 01811.02
ups.load: 8
ups.mfr: ENTEL
ups.model: LPB-U20CS2
ups.productid: 5161
ups.status: OL
ups.temperature: 23.6
ups.type: offline / line interactive
ups.vendorid: 0665

Создадим скрипт обработки
Для заббикс обнаружение

Код: Выделить всё

/usr/local/share/zabbix/externalscripts/nut-lld.sh 192.168.175.111 10050 entel-lpb-u20bs2 127.0.0.1 3551 discoverynut
Ответ:
[
{"{#ID177}":"177:INIT SSL WITHOUT CERTIFICATE DATABASE", "{#ATRUPS}":"INIT SSL WITHOUT CERTIFICATE DATABASE"},
{"{#ID87}":"87:BATTERY.CHARGE", "{#ATRUPS}":"BATTERY.CHARGE"},
{"{#ID91}":"91:BATTERY.VOLTAGE", "{#ATRUPS}":"BATTERY.VOLTAGE"},
{"{#ID111}":"111:BATTERY.VOLTAGE.HIGH", "{#ATRUPS}":"BATTERY.VOLTAGE.HIGH"},
{"{#ID112}":"112:BATTERY.VOLTAGE.LOW", "{#ATRUPS}":"BATTERY.VOLTAGE.LOW"},
{"{#ID95}":"95:BATTERY.VOLTAGE.NOMINAL", "{#ATRUPS}":"BATTERY.VOLTAGE.NOMINAL"},
{"{#ID172}":"172:DEVICE.MFR", "{#ATRUPS}":"DEVICE.MFR"},
{"{#ID173}":"173:DEVICE.MODEL", "{#ATRUPS}":"DEVICE.MODEL"},
{"{#ID174}":"174:DEVICE.TYPE", "{#ATRUPS}":"DEVICE.TYPE"},
{"{#ID165}":"165:DRIVER.NAME", "{#ATRUPS}":"DRIVER.NAME"},
{"{#ID168}":"168:DRIVER.PARAMETER.POLLINTERVAL", "{#ATRUPS}":"DRIVER.PARAMETER.POLLINTERVAL"},
{"{#ID169}":"169:DRIVER.PARAMETER.PORT", "{#ATRUPS}":"DRIVER.PARAMETER.PORT"},
{"{#ID170}":"170:DRIVER.PARAMETER.SYNCHRONOUS", "{#ATRUPS}":"DRIVER.PARAMETER.SYNCHRONOUS"},
{"{#ID166}":"166:DRIVER.VERSION", "{#ATRUPS}":"DRIVER.VERSION"},
{"{#ID167}":"167:DRIVER.VERSION.INTERNAL", "{#ATRUPS}":"DRIVER.VERSION.INTERNAL"},
{"{#ID58}":"58:INPUT.CURRENT.NOMINAL", "{#ATRUPS}":"INPUT.CURRENT.NOMINAL"},
{"{#ID64}":"64:INPUT.FREQUENCY", "{#ATRUPS}":"INPUT.FREQUENCY"},
{"{#ID67}":"67:INPUT.FREQUENCY.NOMINAL", "{#ATRUPS}":"INPUT.FREQUENCY.NOMINAL"},
{"{#ID38}":"38:INPUT.VOLTAGE", "{#ATRUPS}":"INPUT.VOLTAGE"},
{"{#ID80}":"80:INPUT.VOLTAGE.FAULT", "{#ATRUPS}":"INPUT.VOLTAGE.FAULT"},
{"{#ID47}":"47:INPUT.VOLTAGE.NOMINAL", "{#ATRUPS}":"INPUT.VOLTAGE.NOMINAL"},
{"{#ID81}":"81:OUTPUT.VOLTAGE", "{#ATRUPS}":"OUTPUT.VOLTAGE"},
{"{#ID33}":"33:UPS.BEEPER.STATUS", "{#ATRUPS}":"UPS.BEEPER.STATUS"},
{"{#ID21}":"21:UPS.DELAY.SHUTDOWN", "{#ATRUPS}":"UPS.DELAY.SHUTDOWN"},
{"{#ID19}":"19:UPS.DELAY.START", "{#ATRUPS}":"UPS.DELAY.START"},
{"{#ID12}":"12:UPS.FIRMWARE", "{#ATRUPS}":"UPS.FIRMWARE"},
{"{#ID15}":"15:UPS.LOAD", "{#ATRUPS}":"UPS.LOAD"},
{"{#ID7}":"7:UPS.MFR", "{#ATRUPS}":"UPS.MFR"},
{"{#ID6}":"6:UPS.MODEL", "{#ATRUPS}":"UPS.MODEL"},
{"{#ID11}":"11:UPS.PRODUCTID", "{#ATRUPS}":"UPS.PRODUCTID"},
{"{#ID2}":"2:UPS.STATUS", "{#ATRUPS}":"UPS.STATUS"},
{"{#ID14}":"14:UPS.TEMPERATURE", "{#ATRUPS}":"UPS.TEMPERATURE"},
{"{#ID34}":"34:UPS.TYPE", "{#ATRUPS}":"UPS.TYPE"},
{"{#ID10}":"10:UPS.VENDORID", "{#ATRUPS}":"UPS.VENDORID"}
]

Просмотр запущен ли процесс для заббикса upsd

Код: Выделить всё

ps -ef|grep -E "nut|ups"
nut 22973 1 0 09:07 ? 00:00:00 /lib/nut/blazer_usb -a entel-lpb-u20bs2
nut 22982 1 0 09:07 ? 00:00:00 /lib/nut/upsd
nut 23043 23042 0 09:07 ? 00:00:00 /lib/nut/upsmon
root 23042 1 0 09:07 ? 00:00:00 /lib/nut/upsmon
root 24429 9498 0 09:13 pts/0 00:00:00 systemctl status ups-monitor.service

Код: Выделить всё

service --status-all|grep -E "nut|ups"
[ - ] apcupsd
[ + ] nut-client
[ + ] nut-server
[ + ] ups-monitor

Поиск процесса

Код: Выделить всё

zabbix_get -s 192.168.175.111 -k 'proc.num[,,,nut]'
Преобразования
OL - On line (mains is present) Включен/Онлайн/На линии (сеть присутствует)
OB - On battery (mains is not present) Включен аккумулятор (сети нет)
LB - Low battery Разряжена аккумуляторная батарея
RB - The battery needs to be replaced Аккумуляторную батарею необходимо заменить
CHRG - The battery is charging Аккумуляторная батарея заряжается
DISCHRG - The battery is discharging (inverter is providing load power) Батарея разряжается (инвертор обеспечивает питание нагрузки)
BYPASS - UPS bypass circuit is active echo no battery protection is available схема байпаса ИБП активна, защита от аккумуляторной батареи недоступна
CAL - UPS is currently performing runtime calibration (on battery) ИБП в данный момент выполняет калибровку во время работы (от батареи)
OFF - UPS is offline and is not supplying power to the load ИБП отключен и не подает питание на нагрузку
OVER - UPS is overloaded ИБП перегружен
TRIM - UPS is trimming incoming voltage (called "buck" in some hardware) ИБП обрезает входящее напряжение (в некоторых аппаратных средствах это называется "понижением")
BOOST - UPS is boosting incoming voltage ИБП повышает входящее напряжение
* - unknown state неизвестное состояние


Скрипт nut-lld.sh

Код: Выделить всё

#!/bin/bash
# 2023.11.02 Артём Андреевич Мамзиков
# URL https://diyit.ru/viewtopic.php?t=2223
# Скрипт мониторинга ИБП/UPS NUT с LLD для Zabbix

# Авто обнаружение ИБП

# Объявим входные переменные(variable) и если входная переменная пустая задаем дефолтные настройки для некоторых переменных
IP=$1
PORT=${2:-10050}
NAMENUTUPS=$3
IPNUT=${4:-127.0.0.1}
PORTNUT=${5:-3551}
BLOCSCRIPT=$6

IFS=$'\n'
# (IFS оболочка считает, что пробел является границей слов делает пробелы между слов $* - отбрасывает символы и границы слов \n – это escape-последовательность для новой строки (переводится в новую строку)

if [[ $BLOCSCRIPT = "discoverynut" ]]; then
# Запускаем команду: upsc Имя-ИБП@localhost:3551
get=$(zabbix_get -s $IP -p $PORT -k system.run["upsc $NAMENUTUPS@$IPNUT:$PORTNUT"]|sed 's|:.*||'|sed 's| *$||')
# Разберем построчно циклом
for atrnut in $get ; do
# Верхний регистр для макроса lld
atrnutup=$(echo $atrnut|tr [:lower:] [:upper:])
# Разбираем по элементам
case $atrnutup in
	# ИБП Оповещения
	UPS.ALARM)
	NUM="1"
	;;
	# ИБП Статус
	UPS.STATUS)
	NUM="2"
	;;
	# Внутреннее время работы ИБП
	UPS.TIME)
	NUM="3"
	;;
	# Внутренняя дата часов ИБП
	UPS.DATE)
	NUM="4"
	;;
	# Эффективность работы ИБП
	UPS.EFFICIENCY)
        NUM="5"
        ;;
	# Модель ИБП
        UPS.MODEL)
        NUM="6"
        ;;
	# Производитель ИБП
        UPS.MFR)
        NUM="7"
        ;;
	# Дата изготовления ИБП
        UPS.MFR.DATE)
        NUM="8"
        ;;
	# Серийный номер ИБП
        UPS.SERIAL)
        NUM="9"
        ;;
	# Идентификатор поставщика для USB-устройств
        UPS.VENDORID)
        NUM="10"
        ;;
	# Идентификатор продукта для USB-устройств
        UPS.PRODUCTID)
        NUM="11"
        ;;
	# Прошивка ИБП
        UPS.FIRMWARE)
        NUM="12"
        ;;
	# Встроенное ПО вспомогательного устройства
        UPS.FIRMWARE.AUX)
        NUM="13"
        ;;
	# Температура ИБП (градусы C)
        UPS.TEMPERATURE)
        NUM="14"
        ;;
	# Нагрузка на ИБП (в процентах от полной)
        UPS.LOAD)
        NUM="15"
        ;;
	# Нагрузка на ИБП, приводящая к экономии энергии (в процентах)
        UPS.LOAD.ENERGYSAVE)
        NUM="16"
        ;;
	# Нагрузка при переключении ИБП в режим перегрузки (в процентах)
        UPS.LOAD.HIGH)
        NUM="17"
        ;;
	# Идентификатор системы ИБП
        UPS.ID)
        NUM="18"
        ;;
	# Интервал ожидания перед (повторным) запуском загрузки (секунды)
        UPS.DELAY.START)
        NUM="19"
        ;;
	# Интервал ожидания перед перезагрузкой ИБП (секунды)
        UPS.DELAY.REBOOT)
        NUM="20"
        ;;
	# Интервал ожидания после завершения работы с помощью команды delay (секунды)
        UPS.DELAY.SHUTDOWN)
        NUM="21"
        ;;
	# Время до начала загрузки (секунды)
        UPS.TIMER.START)
        NUM="22"
        ;;
	# Время до перезагрузки загрузки (секунды)
        UPS.TIMER.REBOOT)
        NUM="23"
        ;;
	# Время до выключения нагрузки (секунды)
        UPS.TIMER.SHUTDOWN)
        NUM="24"
        ;;
	# Интервал между самотестированием (секунды)
        UPS.TEST.INTERVAL)
        NUM="25"
        ;;
	# Результаты последнего самотестирования
        UPS.TEST.RESULT)
        NUM="26"
        ;;
	# Язык для использования на передней панели
        UPS.DISPLAY.LANGUAGE)
        NUM="27"
        ;;
	# Внешние контактные датчики ИБП
        UPS.CONTACTS)
        NUM="28"
        ;;
	# Текущее значение кажущейся мощности (ВА)
        UPS.POWER)
        NUM="29"
        ;;
	# Номинальная мощность ИБП (ВА)
        UPS.POWER.NOMINAL)
        NUM="30"
        ;;
	# Текущее значение реальной мощности (Вт)
        UPS.REALPOWER)
        NUM="31"
        ;;
	# Реальная номинальная мощность ИБП (Вт)
        UPS.REALPOWER.NOMINAL)
        NUM="32"
        ;;
	# Состояние звукового сигнала ИБП
        UPS.BEEPER.STATUS)
        NUM="33"
        ;;
	# Тип ИБП
        UPS.TYPE)
        NUM="34"
        ;;
	# ИБП запускается при (повторном) подключении к сети
        UPS.START.AUTO)
        NUM="35"
        ;;
	# Позволяет запускать ИБП от аккумулятора
        UPS.START.BATTERY)
        NUM="36"
        ;;
	# ИБП перезагружается, когда питание возвращается во время задержки выключения
        UPS.START.REBOOT)
        NUM="37"
        ;;
	# Входное напряжение (В)
        INPUT.VOLTAGE)
        NUM="38"
        ;;
	# Расширенный диапазон входного напряжения
        INPUT.VOLTAGE.EXTENDED)
        NUM="39"
        ;;
	# Максимальное видимое входящее напряжение (В)
        INPUT.VOLTAGE.MAXIMUM)
        NUM="40"
        ;;
	# Минимальное видимое входящее напряжение (В)
        INPUT.VOLTAGE.MINIMUM)
        NUM="41"
        ;;
	# Состояние напряжения относительно пороговых значений
        INPUT.VOLTAGE.STATUS)
        NUM="42"
        ;;
	# Низкий порог предупреждения о низком входном напряжении (В)
        INPUT.VOLTAGE.LOW.WARNING)
        NUM="43"
        ;;
	# Низкий критический порог входного напряжения (В)
        INPUT.VOLTAGE.LOW.CRITICAL)
        NUM="44"
        ;;
	# Высокий порог предупреждения о входном напряжении (В)
        INPUT.VOLTAGE.HIGH.WARNING)
        NUM="45"
        ;;
	# Высокое критическое пороговое значение входного напряжения (В)
        INPUT.VOLTAGE.HIGH.CRITICAL)
        NUM="46"
        ;;
	# Номинальное входное напряжение (В)
        INPUT.VOLTAGE.NOMINAL)
        NUM="47"
        ;;
	# Причина последнего перехода на аккумулятор
        INPUT.TRANSFER.REASON)
        NUM="48"
        ;;
	# Точка передачи низкого напряжения (В)
        INPUT.TRANSFER.LOW)
        NUM="49"
        ;;
	# Точка передачи высокого напряжения (В)
        INPUT.TRANSFER.HIGH)
        NUM="50"
        ;;
	# Наименьшая настраиваемая точка передачи низкого напряжения (В)
        INPUT.TRANSFER.LOW.MIN)
        NUM="51"
        ;;
	# Наибольшая настраиваемая точка передачи низкого напряжения (В)
        INPUT.TRANSFER.LOW.MAX)
        NUM="52"
        ;;
	# Наименьшая настраиваемая точка передачи высокого напряжения (В)
        INPUT.TRANSFER.HIGH.MIN)
        NUM="53"
        ;;
	# Наибольшая настраиваемая точка передачи высокого напряжения (В)
        INPUT.TRANSFER.HIGH.MAX)
        NUM="54"
        ;;
	# Чувствительность к входной мощности
        INPUT.SENSITIVITY)
        NUM="55"
        ;;
	# Качество входной мощности
        INPUT.QUALITY)
        NUM="56"
        ;;
	# Входной ток (А)
        "INPUT.CURRENT")
        NUM="57"
        ;;
	# Номинальный входной ток (А)
        INPUT.CURRENT.NOMINAL)
        NUM="58"
        ;;
	# Текущее состояние относительно пороговых значений
        INPUT.CURRENT.STATUS)
        NUM="59"
        ;;
	# Низкий порог предупреждения о входном токе (A)
        INPUT.CURRENT.LOW.WARNING)
        NUM="60"
        ;;
	# Низкий критический порог входного тока (А)
        INPUT.CURRENT.LOW.CRITICAL)
        NUM="61"
        ;;
	# Высокий порог предупреждения о входном токе (A)
        INPUT.CURRENT.HIGH.WARNING)
        NUM="62"
        ;;
	# Высокий критический порог входного тока (А)
        INPUT.CURRENT.HIGH.CRITICAL)
        NUM="63"
        ;;
	# Частота входной линии (Гц)
        "INPUT.FREQUENCY")
        NUM="64"
        ;;
	# Расширенный диапазон входных частот
        INPUT.FREQUENCY.EXTENDED)
        NUM="65"
        ;;
	# Статус частоты
        INPUT.FREQUENCY.STATUS)
        NUM="66"
        ;;
	# Номинальная частота входной линии (Гц)
        INPUT.FREQUENCY.NOMINAL)
        NUM="67"
        ;;
	# Минимальная частота входной линии (Гц)
        INPUT.FREQUENCY.LOW)
        NUM="68"
        ;;
	# Максимальная частота входной линии (Гц)
        INPUT.FREQUENCY.HIGH)
        NUM="69"
        ;;
	# Точка передачи с повышением низкого напряжения (В)
        INPUT.TRANSFER.BOOST.LOW)
        NUM="70"
        ;;
	# Точка передачи с повышением высокого напряжения (В)
        INPUT.TRANSFER.BOOST.HIGH)
        NUM="71"
        ;;
	# Точка передачи регулировки низкого напряжения (В)
        INPUT.TRANSFER.TRIM.LOW)
        NUM="72"
        ;;
	# Точка передачи обрезки высокого напряжения (В)
        INPUT.TRANSFER.TRIM.HIGH)
        NUM="73"
        ;;
	# Задержка перед подключением к электросети
	INPUT.TRANSFER.DELAY)
        NUM="74"
        ;;
	# Нагрузка на вход (ePDU) (в процентах от полной)
        INPUT.LOAD)
        NUM="75"
        ;;
	# Текущее суммарное значение всех фаз (ePDU) реальная мощность (Вт)
        INPUT.REALPOWER)
        NUM="76"
        ;;
	# Текущее суммарное значение кажущейся мощности всех фаз (ePDU) (ВА)
        INPUT.POWER)
        NUM="77"
        ;;
	# Текущий входной источник питания
        INPUT.SOURCE)
        NUM="78"
        ;;
	# Предпочтительный входной источник питания
        INPUT.SOURCE.PREFERRED)
        NUM="79"
        ;;
	# Неисправность входного напряжения
        INPUT.VOLTAGE.FAULT)
        NUM="80"
        ;;
	# Выходное напряжение (В)
        OUTPUT.VOLTAGE)
        NUM="81"
        ;;
	# Номинальное выходное напряжение (В)
        OUTPUT.VOLTAGE.NOMINAL)
        NUM="82"
        ;;
	# Выходная частота (Гц)
        "OUTPUT.FREQUENCY")
        NUM="83"
        ;;
	# Номинальная выходная частота (Гц)
        OUTPUT.FREQUENCY.NOMINAL)
        NUM="84"
        ;;
	# Выходной ток (А)
        "OUTPUT.CURRENT")
        NUM="85"
        ;;
	# Номинальный выходной ток (А)
        OUTPUT.CURRENT.NOMINAL)
        NUM="86"
        ;;
	# Заряд батареи (в процентах от полной)
        "BATTERY.CHARGE")
        NUM="87"
        ;;
	# Оставшийся уровень заряда батареи при переключении ИБП в режим LB (в процентах)
        BATTERY.CHARGE.LOW)
        NUM="88"
        ;;
	# Минимальный уровень заряда батареи для перезапуска после выключения питания (в процентах
        BATTERY.CHARGE.RESTART)
        NUM="89"
        ;;
	# Уровень заряда батареи при переключении ИБП в режим предупреждения (в процентах)
        BATTERY.CHARGE.WARNING)
        NUM="90"
        ;;
	# Напряжение батареи (В)
        #BATTERY.VOLTAGE)
        #NUM="91"
        #;;
	# Ток батареи (А)
        BATTERY.CURRENT)
        NUM="92"
        ;;
	# Емкость аккумулятора (Ач)
        BATTERY.CAPACITY)
        NUM="93"
        ;;
	# Температура батареи (градусы C)
        BATTERY.TEMPERATURE)
        NUM="94"
        ;;
	# Номинальное напряжение батареи (В)
        #BATTERY.VOLTAGE.NOMINAL)
        #NUM="95"
        #;;
	# Время автономной работы (секунды)
        BATTERY.RUNTIME)
        NUM="96"
        ;;
	# Оставшееся время автономной работы при переключении ИБП в режим LB (секунды)
        BATTERY.RUNTIME.LOW)
        NUM="97"
        ;;
	# Порог срабатывания батареи
        BATTERY.RUNTIME.LOATTERY.ALARM.THRESHOLD)
        NUM="98"
        ;;
	# Дата замены батареи
        BATTERY.DATE)
        NUM="99"
        ;;
	# Дата изготовления батареи
        BATTERY.MFR.DATE)
        NUM="100"
        ;;
	# Количество аккумуляторных батарей
        "BATTERY.PACKS")
        NUM="101"
        ;;
	# Количество неисправных аккумуляторных батарей
        BATTERY.PACKS.BAD)
        NUM="102"
        ;;
	# Химический состав батареи
        BATTERY.TYPE)
        NUM="103"
        ;;
	# Предотвращайте глубокую разрядку аккумулятора
        BATTERY.PROTECTION)
        NUM="104"
        ;;
	# Выключается при работе от батареи и отсутствии /низкой нагрузке
        "BATTERY.ENERGYSAVE")
        NUM="105"
        ;;
	# Выключите ИБП, если батарея включена, а уровень нагрузки ниже (в процентах)
        BATTERY.ENERGYSAVE.LOAD)
        NUM="106"
        ;;
	# Задержка перед выключением ИБП при включенной батарее и низком уровне нагрузки (мин)
        BATTERY.ENERGYSAVE.DELAY)
        NUM="107"
        ;;
	# Выключите ИБП при включенной батарее и снижении уровня нагрузки (Вт)
        BATTERY.ENERGYSAVE.REALPOWER)
        NUM="108"
        ;;
	# Состояние зарядного устройства аккумулятора
        BATTERY.CHARGER.STATUS)
        NUM="109"
        ;;
	# Напряжение АКБ
        "BATTERY.VOLTAGE")
        NUM="110"
        ;;
	# Верхнее напряжение АКБ
        BATTERY.VOLTAGE.HIGH)
        NUM="111"
        ;;
	# Нижнее напряжение АКБ
        BATTERY.VOLTAGE.LOW)
        NUM="112"
        ;;
	# Номинальное напряжение АКБ
	BATTERY.VOLTAGE.NOMINAL)
        NUM="113"
        ;;
	# Температура окружающей среды (градусы C)
        "AMBIENT.TEMPERATURE")
        NUM="114"
        ;;
	# Активен сигнал тревоги о температуре окружающей среды
        AMBIENT.TEMPERATURE.ALARM)
        NUM="115"
        ;;
	# Состояние температуры окружающей среды относительно настроенных пороговых значений
        AMBIENT.TEMPERATURE.STATUS)
        NUM="116"
        ;;
	# Максимально допустимая температура окружающей среды (градусы C)
        AMBIENT.TEMPERATURE.ALARM.MAXIMUM)
        NUM="117"
        ;;
	# Минимально допустимая температура окружающей среды (градусы C)
        AMBIENT.TEMPERATURE.ALARM.MINIMUM)
        NUM="118"
        ;;
	# Включить сигнализацию о температуре окружающей среды
        AMBIENT.TEMPERATURE.ALARM.ENABLE)
        NUM="119"
        ;;
	# Низкий температурный порог (градусы C)
        AMBIENT.TEMPERATURE.LOW)
        NUM="120"
        ;;
	# Предупреждение о низком температурном пороге (градусы C)
        AMBIENT.TEMPERATURE.LOW.WARNING)
        NUM="121"
        ;;
	# Температурный порог низкий критический (градусы C)
        AMBIENT.TEMPERATURE.LOW.CRITICAL)
        NUM="122"
        ;;
	# Высокий температурный порог (градусы C)
        AMBIENT.TEMPERATURE.HIGH)
        NUM="123"
        ;;
	# Предупреждение о высоком температурном пороге (градусы C)
        AMBIENT.TEMPERATURE.HIGH.WARNING)
        NUM="124"
        ;;
	# Температурный порог высокий критический (градусы C)
        AMBIENT.TEMPERATURE.HIGH.CRITICAL)
        NUM="125"
        ;;
	# Влажность окружающей среды (в процентах)
        "AMBIENT.HUMIDITY")
        NUM="126"
        ;;
	# Активен сигнал тревоги о влажности окружающей среды
        AMBIENT.HUMIDITY.ALARM)
        NUM="127"
        ;;
	# Состояние влажности окружающей среды относительно настроенных пороговых значений
        AMBIENT.HUMIDITY.STATUS)
        NUM="128"
        ;;
	# Максимально допустимая влажность окружающей среды (в процентах)
        AMBIENT.HUMIDITY.ALARM.MAXIMUM)
        NUM="129"
        ;;
	# Минимально допустимая влажность окружающей среды (в процентах)
        AMBIENT.HUMIDITY.ALARM.MINIMUM)
        NUM="130"
        ;;
	# Включить сигнализацию о влажности окружающей среды
        AMBIENT.HUMIDITY.ALARM.ENABLE)
        NUM="131"
        ;;
	# Низкий порог влажности окружающей среды (в процентах)
        "AMBIENT.HUMIDITY.LOW")
        NUM="132"
        ;;
	# Предупреждение о низком пороговом значении влажности окружающей среды (в процентах)
        AMBIENT.HUMIDITY.LOW.WARNING)
        NUM="133"
        ;;
	# Порог влажности окружающей среды низкий критический (в процентах)
        AMBIENT.HUMIDITY.LOW.CRITICAL)
        NUM="134"
        ;;
	# Высокий порог влажности окружающей среды (в процентах)
        "AMBIENT.HUMIDITY.HIGH")
        NUM="135"
        ;;
	# Предупреждение о высоком пороговом значении влажности окружающей среды (в процентах)
        AMBIENT.HUMIDITY.HIGH.WARNING)
        NUM="136"
        ;;
	# Порог влажности окружающей среды высокий критический (в процентах)
        AMBIENT.HUMIDITY.HIGH.CRITICAL)
        NUM="137"
        ;;
	# Наличие датчика окружающей среды
        AMBIENT.PRESENT)
        NUM="138"
        ;;
	# Состояние датчика сухого контакта 1
        AMBIENT.CONTACTS.1.STATUS)
        NUM="139"
        ;;
	# Состояние датчика сухого контакта 2
        AMBIENT.CONTACTS.2.STATUS)
        NUM="140"
        ;;
	# Идентификатор системы выпуска
        OUTLET.ID)
        NUM="141"
        ;;
	# Описание розетки
        OUTLET.DESC)
        NUM="142"
        ;;
	# Управление выходным выключателем
        OUTLET.SWITCH)
        NUM="143"
        ;;
	# Состояние выключателя розетки
        OUTLET.STATUS)
        NUM="144"
        ;;
	# Возможность выключения розетки
        OUTLET.SWITCHABLE)
        NUM="145"
        ;;
	# Оставшийся уровень заряда батареи для отключения питания от данной розетки (в процентах)
        OUTLET.AUTOSWITCH.CHARGE.LOW)
        NUM="146"
        ;;
	# Интервал ожидания перед отключением этой розетки (секунды)
        OUTLET.DELAY.SHUTDOWN)
        NUM="147"
        ;;
	# Интервал ожидания перед перезапуском этой розетки (секунды
        OUTLET.DELAY.START)
        NUM="148"
        ;;
	# Идентификатор системы выпуска
        OUTLET.1.ID)
        NUM="149"
        ;;
	# Описание розетки
        OUTLET.1.DESC)
        NUM="150"
        ;;
	# Управление выходным выключателем
        OUTLET.1.SWITCH)
        NUM="151"
        ;;
	# Состояние выключателя розетки
        OUTLET.1.STATUS)
        NUM="152"
        ;;
	# Возможность выключения розетки
        OUTLET.1.SWITCHABLE)
        NUM="153"
        ;;
	# Оставшийся уровень заряда батареи для отключения питания от данной розетки (в процентах)
        OUTLET.1.AUTOSWITCH.CHARGE.LOW)
        NUM="154"
        ;;
	# Интервал ожидания перед отключением этой розетки (секунды)
        OUTLET.1.DELAY.SHUTDOWN)
        NUM="155"
        ;;
	# Интервал ожидания перед перезапуском этой розетки (секунды)
        OUTLET.1.DELAY.START)
        NUM="156"
        ;;
	# Идентификатор системы выпуска
        OUTLET.2.ID)
        NUM="157"
        ;;
	# Описание розетки
        OUTLET.2.DESC)
        NUM="158"
        ;;
	# Управление выходным выключателем
        OUTLET.2.SWITCH)
        NUM="159"
        ;;
	# Состояние выключателя розетки
        OUTLET.2.STATUS)
        NUM="160"
        ;;
	# Возможность выключения розетки
        OUTLET.2.SWITCHABLE)
        NUM="161"
        ;;
	# Оставшийся уровень заряда батареи для отключения питания от данной розетки (в процентах)
        OUTLET.2.AUTOSWITCH.CHARGE.LOW)
        NUM="162"
        ;;
	# Интервал ожидания перед отключением этой розетки (секунды)
        OUTLET.2.DELAY.SHUTDOWN)
        NUM="163"
        ;;
	# Интервал ожидания перед перезапуском этой розетки (секунды)
        OUTLET.2.DELAY.START)
        NUM="164"
        ;;
	# Имя драйвера
        DRIVER.NAME)
        NUM="165"
        ;;
	# Версия драйвера - NUT реализ
        "DRIVER.VERSION")
        NUM="166"
        ;;
	# Внутренняя версия драйвера
        DRIVER.VERSION.INTERNAL)
        NUM="167"
        ;;
	# Интервал опроса параметров драйвера
        DRIVER.PARAMETER.POLLINTERVAL)
        NUM="168"
        ;;
	# Драйвер параметра Порта
        DRIVER.PARAMETER.PORT)
        NUM="169"
        ;;
	# Cинхронный параметр драйвера
        DRIVER.PARAMETER.SYNCHRONOUS)
        NUM="170"
        ;;
	# Номер детали устройства
        DEVICE.PART)
        NUM="171"
        ;;
	# Устройство mfr
        DEVICE.MFR)
        NUM="172"
        ;;
	# Модель устройства
        DEVICE.MODEL)
        NUM="173"
        ;;
	# Тип устройства
        DEVICE.TYPE)
        NUM="174"
        ;;
	# Информация о сервере
        SERVER.INFO)
        NUM="175"
        ;;
	# Серверная версия
        SERVER.VERSION)
        NUM="176"
        ;;
	# Логин пароль передается в открытом виде без использования SSL
        "INIT SSL WITHOUT CERTIFICATE DATABASE")
        NUM="177"
        ;;
	#
#        )
#        NUM="178"
#        ;;
esac
	NUTITEM=$NUTITEM"$SEP\n{\"{#ID$NUM}\":\"$NUM:$atrnutup\", \"{#ATRUPS}\":\"$atrnutup\"}"
	SEP=", "
	NUM=""
done
echo -e "["$NUTITEM"\n]"
fi

if [[ $BLOCSCRIPT = "info" ]]; then
# Запускаем команду: upsc Имя-ИБП@localhost:3551
getnut=$(zabbix_get -s $IP -p $PORT -k system.run["upsc $NAMENUTUPS@$IPNUT:$PORTNUT"])
echo "${getnut}"
fi

Описание
На основе NUT (Network UPS Tools)
Через upsc Имя-ИБП@localhost
upsc entel-lpb-u20bs2@localhost
upsc entel-lpb-u20bs2@192.168.175.10:3551
порт 3493 изменен на 3551

В Узле заполнить макросы
{$HOST.LOCAL} - IP где установлена вебка
{HOST.CONN} - IP Узла
{$PORTNUTUPS} - Порт
{$WATTSNUTUPS} - Указать Ватты (взять из характеристики 1кВт=1000Вт)
{$NUMOFAKBVNUT} - Кол-во АКБ (подключено последовательно увеличение Вольт)
{$NUMOFAKBAHNUT} - Кол-во АКБ (подключено параллельно увеличение Ач)
{$NUTUPSAH} - Ач ампер-час (для 1 АКБ если последовательно)
{$NUTUPSKPD} - КПД ИБП (0.92)
{$NAMENUTUPS} - Имя-ИБП
Не используются
{$LOGINNUTUPS} - Логин
{$PASSNUTUPS} - Пароль

Пример для APC-Smart-UPS-2200 (8акб 5.8Ач 12В)
{$NUTUPSAH} 5.8
{$NUMOFAKBAHNUT} 2
{$NUMOFAKBVNUT} 4
{$WATTSNUTUPS} 2200

Веб интерфейс состояния ИБП (после установки NUT-cgi)
http://{HOST.CONN}/cgi-bin/nut/upsstats.cgi
http://{HOST.CONN}/cgi-bin/nut/upsset.cgi
http://{HOST.CONN}/cgi-bin/nut/upsimage.cgi
http://{HOST.CONN}/cgi-bin/nut/upsstats.cgi?host=192.168.305.10:3551
http://{HOST.CONN}/cgi-bin/nut/upsstats.cgi?host=192.168.305.10:3551&treemode
Локально
http://{HOST.CONN}/cgi-bin/nut/upsstats.cgi?host={HOST.CONN}:{$PORTNUTUPS}
Удаленно
http://{$HOST.LOCAL}/cgi-bin/nut/upsstats.cgi?host={HOST.CONN}:{$PORTNUTUPS}

Группы элементов данных
ИБП-Состояние
ИБП Инвентаризационные данные
ИБП Инфо о NUT
ИБП Основные данные
Розетки
Статистика ИБП
ИБП NUT-LLD-PORT
ИБП NUT-LLD-PORT

Элементы данных
Состояние ИБП №1: Проверка На пустое значение Триггеры 1 upsc.status.linefreqp 90d 90d Зависимый элемент данных ИБП-Состояние Активировано

Состояние ИБП №2 по HTTP upsstats.cgi 1m 90d HTTP агент ИБП-Состояние, ИБП Основные данные Деактивировано

Состояние ИБП №3 по SSH ssh.run["upsc {$NAMENUTUPS}@{HOST.CONN}:{$PORTNUTUPS}"] 1m 0d SSH агент ИБП-Состояние Деактивировано

Состояние ИБП №1 Триггеры 2 system.run["upsc {$NAMENUTUPS}@{HOST.CONN}:{$PORTNUTUPS}"] 1m 90d Zabbix агент ИБП-Состояние, ИБП Основные данные Активировано

Процесс nut-server Триггеры 1 proc.num[,,,nut/upsd] 4m 90d 90d Zabbix агент ИБП-Состояние Активировано

Примерное время работы от АКБ Вычисляемое Триггеры 3 ups.working.time.from.battery 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
{$NUTUPSAH} * {$NUMOFAKBAHNUT} * (last("NUT.[110:BATTERY.VOLTAGE]") / {$NUMOFAKBVNUT}) * {$NUTUPSKPD} / last("ups.watts")
{$NUTUPSAH} - Ач ампер-час для 1 АКБ
{$NUMOFAKBAHNUT} - Кол-во АКБ (подключено параллельно увеличение Ач)
{$NUMOFAKBVNUT} - Кол-во АКБ (подключено последовательно увеличение Вольт)
{$NUTUPSKPD} - КПД ИБП (0.92)

T [час] = C [А*час] * V [В] * η / P [Вт], где:
C - рассчитанная ранее суммарная емкость аккумуляторной батареи ИБП в ампер-часах;
V - напряжение одного аккумулятора в вольтах;
η - КПД инвертора ИБП (в расчёте примеров используем КПД = 0,92, более подробная информация в замечаниях);
P - рассчитанная ранее средняя мощность подключенного к ИБП оборудования в ваттах.

емкость АКБ 7Ач * 4шт = 28Ач если подключение параллельное но напряжение 12V
(на клеммах при заряде) 13.6V*4шт=54.7V подключение последовательно акб 7Ач
7Ач*1шт*(54.7.В:4шт)*0.92КПД/340Вт=0.266=26минут

зависит от износа АКБ и условий эксплуатации,
температура +1°C после отметки 40°C снижает ёмкость аккумулятора на 5%, Для максимального срока службы рекомендовано понижать нагрузку на каждые 10°C после 25°C на 20%

Пред обработка для 4х числе (но для расчетов нужно все значение)
([0-9]+).([0-9][0-9]) вывод \1.\2

Нагрузка Вт Вычисляемое Триггеры 1 ups.watts 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
{$WATTSNUTUPS} / 100 * last("NUT.[15:UPS.LOAD]")
{$WATTSNUTUPS} - Тут мы задали кол-во Ватт их характеристики ИБП

Пример
По характеристикам 2 кВА =2000 Вт
Переведем из процентов в Ватты
2000Вт:100%=20Вт для 1%
20Вт*17%=340Вт

Вт:Напряжение=Сила тока A
340:220=1.5А
Примерно: 2000:220=9.09А для 100%

Емкость Ач (Ah) обратный подсчет (Примерно) Вычисляемое ups.capacity.ah 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
last("ups.watts") * last("ups.working.time.from.battery") / ({$NUTUPSKPD} * (last("NUT.[110:BATTERY.VOLTAGE]") / {$NUMOFAKBVNUT}))

Емкость акб (Расчет не обходимой емкости АКБ)

Пример:
C[А*час] = P[Вт] * T[час] / η * V[В]
P - рассчитанная ранее средняя мощность подключенного к ИБП оборудования в ваттах.
T[час] - Время работы от АКБ
η - КПД инвертора ИБП (0,92)
V - напряжение одного аккумулятора в вольтах;

340*0,227294118/(0.92*12)
77,28000012/11.04=7,000000011
Для 22 минут
340*0.22/(0.92*12)
74.8/11.04=6,775362319 Ач (+20% запаса) зависти от температуры АКБ скорость разряда.
Завышает т.к. обычный режим работы на клеммах 13.67В, время работы больше.

Изначально указано в макросе {$NUTUPSAH} - Ач ампер-час


Емкость Ач (Ah) обратный подсчет (Примерно более 9-10часв) Вычисляемый ups.capacity 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
100 * last("ups.working.time.from.battery") * (last("ups.watts") /1000)

Емкость акб (Расчет не обходимой емкости АКБ)
100*время работы Ч*кВт
Пример:
100*0.26*0.340=8.84 Ач
Для 22 минут
100*0.22*0.340=7.48 Ач (+20% запаса) зависти от температуры АКБ скорость разряда.
Завышает т.к. обычный режим работы на клеммах 13.67В, время работы больше.

Изначально указано в макросе {$UPSAH} - Ач ампер-час

формула пригодна для длительного времени работы от акб 9-10 часов
Если время работы меньше, то необходимо вводить поправки
ток разряда большой и аккумулятор отдаёт нагрузке только некоторую часть своей ёмкости
время работы в 30 минут, то результат поделить на два,
для 2 часов уменьшить на 40%,
для 4 часов – 30%,
для 6 часов – 40%
для точно значение используем значение КПД инвертора и сопоставить данные с кривого разряда


Заряд АКБ Вычисляемый % ups.battery.charge.percentage 5m 90d 90d Вычисляемое ИБП-Состояние, ИБП Основные данные Активировано
(last("NUT.[110:BATTERY.VOLTAGE]") - (11.82 * {$NUMOFAKBVNUT})) / ((last("NUT.[110:BATTERY.VOLTAGE]") - 11.82 * {$NUMOFAKBVNUT}) / 100)

Напряжение АКБ переводим в процент

10,5-13,5V - рабочий диапазон
11.82V - 0% заряда
9,5-10V - глубокий разряд

{$NUMOFAKBVNUT} - кол-во АКБ

Пример для 4 акб (последовательно)
54.7V:4шт=13.67 (напряжение на контактах при заряде)
11.82V*4=47.28V это 0% заряда
54.7V-47.28V=7.42V (рабочий диапазон от 0% до 100%)
7.42V:100%=0.0742V это 1%

(54.7-(11.82*4)) : ((54.7-11.82*4) :100)
(54.7-47.28) : (7.42:100)
7,42:0.0742=100%


Нагрузка Ампер Вычисляемое Триггеры 1 ups.ampers 5m 90d 90d Вычисляемое ИБП-Состояние Активировано
last("ups.watts") / last("NUT.[38:INPUT.VOLTAGE]")

{$WATTSNUTUPS} - Тут мы задали кол-во Ватт их характеристики ИБП

Пример
По характеристикам 2 кВА =2000 Вт
Переведем из процентов в Ватты
2000Вт:100%=20Вт для 1%
20Вт*17%=340Вт

Вт:Напряжение=Сила тока A
340:220=1.5А Текущее
Примерно: 2000:220=9.09А для 100%
ИБП NUT-LLD-PORT-Элементы данных
ИБП NUT-LLD-PORT-Элементы данных
Триггеры

Внимание/Предупреждение OutputLoad = 0% {HOST.NAME}
Зависит от:
ИБП NUT-LLD-PORT: UPS Недоступно {HOST.NAME}
ИБП NUT-LLD-PORT: UPS Нет Значений {HOST.NAME}
ИБП NUT-LLD-PORT: Нет процесса nut-server не запущен
{UPS-NUT-lld-PORT:ups.watts.max(5)}=0 and {UPS-NUT-lld-PORT:ups.ampers.max(5)}=0 Активировано

Высокая UPS Недоступно {HOST.NAME}
Зависит от:
ИБП NUT-LLD-PORT: Нет процесса nut-server не запущен
{UPS-NUT-lld-PORT:system.run["upsc {$NAMENUTUPS}@{HOST.CONN}:{$PORTNUTUPS}"].iregexp(no-data-ups)}=1 or {UPS-NUT-lld-PORT:system.run["upsc {$NAMENUTUPS}@{HOST.CONN}:{$PORTNUTUPS}"].nodata(25m)}=1 >0 or {UPS-NUT-lld-PORT:web.test.error[Проверка Web NUT удаленных ИБП].strlen()}>0 and {UPS-NUT-lld-PORT:web.test.fail[Проверка Web NUT удаленных ИБП].min(11m)}>0 Активировано nut-server

Высокая UPS Недоступно {HOST.NAME}
Зависит от:
ИБП NUT-LLD-PORT: Нет процесса nut-server не запущен
{UPS-NUT-lld-PORT:system.run["upsc {$NAMENUTUPS}@{HOST.CONN}:{$PORTNUTUPS}"].iregexp(no-data-ups)}=1 or {UPS-NUT-lld-PORT:system.run["upsc {$NAMENUTUPS}@{HOST.CONN}:{$PORTNUTUPS}"].nodata(25m)}=1 >0 or {UPS-NUT-lld-PORT:web.test.error[Проверка Web NUT].strlen()}>0 and {UPS-NUT-lld-PORT:web.test.fail[Проверка Web NUT].min(11m)}>0 Активировано nut-server

Высокая UPS Нет Значений {HOST.NAME}
Зависит от:
ИБП NUT-LLD-PORT: UPS Недоступно {HOST.NAME}
ИБП NUT-LLD-PORT: Нет процесса nut-server не запущен
{UPS-NUT-lld-PORT:upsc.status.linefreqp.last()}=0001 Активировано

Информационная Время работы АКБ менее 5 мин на {HOST.NAME}
Зависит от:
ИБП NUT-LLD-PORT: UPS Нет Значений {HOST.NAME}
ИБП NUT-LLD-PORT: Нет процесса nut-server не запущен
{UPS-NUT-lld-PORT:ups.working.time.from.battery.last()}<=0.05 Активировано

Информационная Время работы АКБ менее 11 мин на {HOST.NAME}
Зависит от:
ИБП NUT-LLD-PORT: Время работы АКБ менее 5 мин на {HOST.NAME}
{UPS-NUT-lld-PORT:ups.working.time.from.battery.last()}<=0.10 and {UPS-NUT-lld-PORT:ups.working.time.from.battery.last()}>0.05 Активировано

Информационная Время работы АКБ менее 15 мин на {HOST.NAME}
Зависит от:
ИБП NUT-LLD-PORT: Время работы АКБ менее 11 мин на {HOST.NAME}
{UPS-NUT-lld-PORT:ups.working.time.from.battery.last()}<0.15 and {UPS-NUT-lld-PORT:ups.working.time.from.battery.last()}>0.10 Активировано

Средняя Нет процесса nut-server не запущен {UPS-NUT-lld-PORT:proc.num[,,,nut/upsd].last()}<>1 or {UPS-NUT-lld-PORT:proc.num[,,,nut/upsd].nodata(11m)}=1 Активировано nut-server
ИБП NUT-LLD-PORT-Триггеры
ИБП NUT-LLD-PORT-Триггеры

Графики
Текущая Нагрузка Ампер 900 200 Нормальный
Текущая Нагрузка Вт 900 200 Нормальный


Правила обнаружения
Обнаружение данных NUT ИБП Прототипы элементов данных 177 Прототипы триггеров 29 Прототипы графиков 9 Прототипы узлов сети nut-lld.sh[{HOST.CONN},{$HOST.PORTS}, {$NAMENUTUPS},{HOST.CONN},{$PORTNUTUPS},discoverynut] 4h Внешняя проверка Активировано

Пример:
Проверка состояния ИБП:
Через команду
upsc Имя-ИБП@localhost
upsc entel-lpb-u20bs2@localhost
upsc entel-lpb-u20bs2@192.168.175.10:3551

Через агент
system.run["upsc {$NAMENUTUPS}@127.0.0.1:3551"]
zabbix_get -s 192.168.175.10 -p 10050 -k system.run["upsc entel-lpb-u20bs2@127.0.0.1:3551"]
или
Внешняя проверка (через скрипт)
nut-lld.sh[{HOST.CONN},{$HOST.PORTS},{$NAMENUTUPS},127.0.0.1,3551,info]

/usr/local/share/zabbix/externalscripts/nut-lld.sh 192.168.XXX.XXX 10050 nameups 127.0.0.1 3551 info
ИБП NUT-LLD-PORT-Правила обнаружения
ИБП NUT-LLD-PORT-Правила обнаружения
ИБП NUT-LLD-PORT-Прототипы Элементов
ИБП NUT-LLD-PORT-Прототипы Элементов
ИБП NUT-LLD-PORT-Прототипы Триггеров
ИБП NUT-LLD-PORT-Прототипы Триггеров
ИБП NUT-LLD-PORT-Прототипы Графиков
ИБП NUT-LLD-PORT-Прототипы Графиков

Веб-сценарии
Проверка Web NUT 1 5m 3 Нет Нет ИБП-Состояние Активировано
Проверка Web NUT удаленных ИБП 1 5m 3 Нет Нет ИБП-Состояние Активировано
ИБП NUT-LLD-PORT-Веб проверка
ИБП NUT-LLD-PORT-Веб проверка

Варианты связки NUT с Zabbix
Шаблон для мониторинга состояния ИБП с помощью Network UPS Tools (NUT) в Zabbix на pikabu
share.zabbix шаблоны NUT
шаблоны
Zabbix-nut.zip
Zabbix-nut.zip
(38.71 КБ) 4 скачивания
количество слов: 2677

Вернуться в «Питание: Измерение распределение блоки питания; ИБП»