СКАЧАТЬ: И так у нас есть данные ответа от ИБП
Пример Получение данных:
Код: Выделить всё
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 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"
[ + ] 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
ИБП Основные данные
Розетки
Статистика ИБП
Элементы данных
Состояние ИБП №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%
Триггеры
Внимание/Предупреждение 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
Графики
Текущая Нагрузка Ампер 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
Веб-сценарии
Проверка Web NUT 1 5m 3 Нет Нет ИБП-Состояние Активировано
Проверка Web NUT удаленных ИБП 1 5m 3 Нет Нет ИБП-Состояние Активировано
Варианты связки NUT с Zabbix
Шаблон для мониторинга состояния ИБП с помощью Network UPS Tools (NUT) в Zabbix на pikabu
share.zabbix шаблоны NUT
шаблоны