Полный список поддерживаемых моделей можно получить, посмотрев список драйверов в файле
Код: Выделить всё
mcedit /usr/share/nut/driver.list
Network UPS Tools на github
Шаблон В отдельной теме ИБП LINUX через NUT LLD Zabbix
Примеры настройки NUT
Мозаика системного администрирования Network UPS Tools (NUT)
altlinux Настройка NUT для управления ИБП
Примеры будут для ИБП: ENTEL LPB-U20BS2-UL
имена в конфигурации будут варьироваться относительно имени модели ИБП
Network UPS Tools (NUT) - комплект программ для мониторинга ИБП.
Сервер nut-server — upsd
Службы:
1. nut.service - Основная служба NUT, которая управляет всеми аспектами мониторинга ИБП.
или
2. nut-server - Альтернативное название для nut.service, часто используется для запуска сервера.
или
3. 62-nut-usbups.rules - Файл правил udev для автоматического обнаружения USB ИБП и их конфигурации в системе.
или
4. nut-server.service - Служба, которая отвечает за управление и работу сервера NUT.
5. nut-driver-enumerator.service - Служба, которая определяет доступные драйверы для подключенных ИБП.
6. nut-driver-enumerator.path - Файл, который отслеживает изменения в системе и запускает nut-driver-enumerator.service при необходимости.
7. nut-driver@.service - Шаблон службы для запуска конкретного драйвера ИБП.
8. nut-driver.target - Целевая группа для управления зависимостями между драйверами.
Конфигурационные файлы:
1. upsd.users - Файл конфигурации, в котором задаются пользователи и их права доступа к серверу upsd.
2. upsd.conf - Основной файл конфигурации для сервера upsd, который определяет параметры работы сервера и настройки подключения.
3. ups.conf - Файл, в котором описываются параметры и настройки каждого подключенного ИБП, включая тип и используемый драйвер.
Команды:
1. upsd - Запуск сервера upsd для управления и мониторинга ИБП.
2. upsdrvctl - Утилита для управления драйверами ИБП, включая их загрузку и выгрузку.
3. upsdrvsvcctl - Команда для управления службами драйверов UPS, в основном используется для запуска и остановки.
4. nut-scanner - Утилита для сканирования и обнаружения доступных ИБП в сети.
Клиент мониторинга nut-client — upsmon
Команды:
1. upsc - Быстрый способ узнать, правильно ли работают ваши драйверы и upsd.
(клиент, для запроса текущих значений переменных на ИБП.)
2. upscmd - Команда для отправки управляющих команд на ИБП.
(клиент, для установки значений переменных ИБП или выполнения команд.)
3. upslog - Утилита для просмотра логов состояния ИБП.
4. upsrw - Команда для чтения и записи параметров ИБП.
5. upsmon - Клиент, следящий за состоянием одного или нескольких ИБП и отправляющий уведомления или выполняет команду отключения компьютера.
Его конфигурация находится в файле /etc/nut/upsmon.conf.
В составе клиента имеется также утилита upssched с файлом конфигурации /etc/nut/upssched.conf, которая помогает осуществлять отложенное исполнение команд.
В файле конфигурации можно настроить таймер, который будет запущен при наступлении одних событий (например, когда в ИБП не поступает внешнее питание, а его батарея разрядилась)
или сброшен при наступлении других событий (например, когда на ИБП вновь начало поступать внешнее питание). Когда таймер срабатывает, выполняется указанная команда.
Службы:
- ups-monitor - Служба мониторинга состояния ИБП.
- nut-client или nut-client.service - Служба для работы клиента NUT.
- nut-monitor.service - Служба для мониторинга состояния ИБП.
- ups-monitor.service - Альтернативная служба для мониторинга ИБП.
Конфигурационные файлы:
1. nut.conf - Основной файл конфигурации для клиента NUT.
2. upsmon.conf - Файл конфигурации для службы upsmon, который определяет поведение при различных состояниях ИБП.
3. upssched.conf - Конфигурационный файл для планирования действий на основе состояния ИБП.
nut-ipmi и nut-snmp:
- nut-ipmi - Поддержка IPMI-совместимых ИБП.
- nut-snmp - Поддержка SNMP-совместимых ИБП.
Клиент MS Windows
WinNUT - The Windows Network UPS Tools.
Службы=файлы
nut-monitor
Команды:
- NUT-Monitor - Графический интерфейс для мониторинга состояния ИБП.
nut-cgi
Файлы конфигурации:
- hosts.conf - Конфигурация доступных ИБП.
- upsset.conf - Настройки для управления ИБП через веб-интерфейс.
nut-ipmi
Службы:
- 52-nut-ipmipsu.rules - Правила для обнаружения IPMI-совместимых ИБП.
- lib/nut-ipmipsu - Драйвер для работы с IPMI-ИБП.
nut-snmp
- lib/snmp-ups - Драйвер для работы с SNMP-ИБП.
nut-xml
- lib/netxml-ups - Драйвер для работы с XML-ИБП.
Проверим подключение варианты проверки:
Код: Выделить всё
lsusb
Ответ:
Bus 001 Device 006: ID 0665:5161 Cypress Semiconductor USB to Serial (ENTEL LPB-U20BS2-UL-04)
где после ID идет idVendor:idProduct (0665:5161)
Код: Выделить всё
dmesg | grep generic-usb
Код: Выделить всё
dmesg | grep "UPS"
Код: Выделить всё
ls -a /dev/usb/
Код: Выделить всё
ls -a /dev/ttyS* /dev/ttyUSB*
Команда позволяет автоматически определить какой драйвер использовать:
Код: Выделить всё
nut-scanner
Код: Выделить всё
mcedit /usr/share/nut/driver.list
Код: Выделить всё
grep -i "ENTEL" /usr/share/nut/driver.list
nut: Основной пакет, содержащий необходимые компоненты для работы с NUT. Он включает в себя демоны и утилиты для управления ИБП.
nut-cgi: Веб-интерфейс для управления NUT через браузер. Позволяет пользователям мониторить и управлять ИБП через графический интерфейс.
nut-cgi-dbgsym: Пакет отладки для nut-cgi, содержащий отладочную информацию, полезную для разработчиков.
nut-client: Клиентские утилиты для взаимодействия с сервером NUT, позволяющие пользователям получать информацию о состоянии ИБП.
nut-client-dbgsym: Пакет отладки для nut-client.
nut-doc: Документация по NUT, содержащая описание функциональности, инструкций по установке и настройке.
nut-i2c: Модуль для работы с ИБП, использующими интерфейс I2C. Позволяет взаимодействовать с устройствами через этот протокол.
nut-i2c-dbgsym: Пакет отладки для nut-i2c.
nut-ipmi: Поддержка управления ИБП через интерфейс IPMI (Intelligent Platform Management Interface). Используется для мониторинга и управления серверным оборудованием.
nut-ipmi-dbgsym: Пакет отладки для nut-ipmi.
nut-modbus: Поддержка протокола Modbus для управления ИБП, использующими этот стандарт.
nut-modbus-dbgsym: Пакет отладки для nut-modbus.
nut-monitor: Утилита для мониторинга состояния ИБП и отправки уведомлений о событиях.
nut-powerman-pdu: Поддержка управления PDU (Power Distribution Unit) от компании PowerMan.
nut-powerman-pdu-dbgsym: Пакет отладки для nut-powerman-pdu.
nut-server-dbgsym: Пакет отладки для сервера NUT.
nut-snmp: Поддержка SNMP (Simple Network Management Protocol) для управления ИБП через этот протокол.
nut-snmp-dbgsym: Пакет отладки для nut-snmp.
nut-xml: Поддержка XML для взаимодействия с NUT, позволяющая обмениваться данными в формате XML.
nut-xml-dbgsym: Пакет отладки для nut-xml.
Установка NUT:
Код: Выделить всё
apt-get install nut
Полная установка всех компонентов:
Код: Выделить всё
apt-get install libupsclient4 nut nut-client nut-server nut-monitor nut-cgi nut-ipmi nut-snmp nut-xml
gtk-update-icon-cache hicolor-icon-theme libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libatk1.0-0
libatk1.0-data libcroco3 libfreeipmi16 libgail-common libgail18 libgd3 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common
libgirepository-1.0-1 libglade2-0 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libipmimonitoring5a libjbig0
liblapack3 liblua5.2-0 libneon27-gnutls librsvg2-2 librsvg2-common libsnmp-base libsnmp30 libtiff5 libupsclient4
libwebp6 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxinerama1 libxpm4 libxrandr2 nut nut-cgi nut-client
nut-ipmi nut-monitor nut-server nut-snmp nut-xml python-cairo python-gi python-glade2 python-gobject
python-gobject-2 python-gtk2 python-numpy python-nut shared-mime-info
СКАЧАТЬ: Без nut-cgi веб версии:
Код: Выделить всё
apt-get install libupsclient4 nut nut-client nut-server nut-monitor nut-ipmi nut-snmp nut-xml
Код: Выделить всё
apt-get install libupsclient4 nut-cgi
Код: Выделить всё
/usr/lib/cgi-bin/nut/upsimage.cgi
Код: Выделить всё
/usr/lib/cgi-bin/nut/upsset.cgi
Код: Выделить всё
/usr/lib/cgi-bin/nut/upsstats.cgi
Код: Выделить всё
chown -R www-data:www-data ./cgi-bin
Код: Выделить всё
chmod -R 775 ./cgi-bin
Настройки веб-клиента располагаются в файлах:
1. Файл конфигурации для веб-интерфейса.
Код: Выделить всё
mcedit /etc/nut/upsset.conf
Когда доступ ограничен, можно раскомментировать:
I_HAVE_SECURED_MY_CGI_DIRECTORY
/etc/nut/hosts.conf - Настройка как apc
Пример:
http://192.168.175.111/cgi-bin/nut/upsset.cgi
http://192.168.175.111/cgi-bin/nut/upsstats.cgi
Создание резервной копии конфигурации NUT:
Для создания резервной копии папки с файлами конфигурации если это не обходимо выполните:
Код: Выделить всё
cp -r /etc/nut /etc/nut.default
none - система выключена,
standalone - автономная система, в которой интерфейс управления ИБП подключен к тому же компьютеру, который запитан от ИБП. Других компьютеров, запитанных от ИБП нет,
netserver - система, в которой от ИБП запитано несколько компьютеров. В этом случае сервер NUT должен быть доступен по сети для остальных компьютеров,
netclient - система, запитанная от ИБП, интерфейс управления которым подключен к другому компьютеру.
В нашем случае подходит значение standalone, которое и пропишем в файл /etc/nut/nut.conf
Код: Выделить всё
mcedit /etc/nut/nut.conf
Код: Выделить всё
#MODE=none
MODE=standalone
Код: Выделить всё
chown root:nut /etc/nut/*
Код: Выделить всё
chmod 640 /etc/nut/*
способа подключения и времени выключения
Откройте файл конфигурации:
Код: Выделить всё
mcedit /etc/nut/ups.conf
Код: Выделить всё
# Имя ИБП в NUT. Именно по нему мы будем посылать команды ИБП
[entel-lpb-u20bs2]
# Используемый драйвер
driver = usbhid-ups
#driver = megatec
# Порт подключения. Что то менять в ней нужно только для специфических ИБП
port = auto
#port = /dev/bus/usb/004/001
#port = /dev/cuad0
#vendorid = 0665
#productid = 5161
# Описание ИБП
desc = "ENTEL LPB-U20BS2-UL-04"
# Время в секундах до автоматического отключения ПК
offdelay = 90
# Время автоматического включения в минутах после команды отключения ПК
ondelay = 5
Создание правил для udev:
Создайте файл с правилами:
Код: Выделить всё
mcedit /etc/udev/rules.d/90-nut-ups.rules
Код: Выделить всё
mcedit /etc/udev/rules.d/98-nut-ups.rules
Код: Выделить всё
# ENTEL LPB-U20BS2-UL-04
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0665", ATTR{idProduct}=="5161", MODE="0660", GROUP="nut"
Код: Выделить всё
service udev reload
Код: Выделить всё
service udev restart
Код: Выделить всё
udevadm control --reload-rules
Код: Выделить всё
udevadm trigger
После этого выполним команду для проверки работоспособности udev правила
upsdrvctl start
upsdrvctl -u root start
Если вывод приблизительно такой, то все настроено правильно.
Network UPS Tools - UPS driver controller 2.7.4
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
Using subdriver: MGE HID 1.3
Инструменты сетевого ИБП - контроллер драйвера ИБП 2.7.4
Инструменты сетевого ИБП - USB-драйвер протокола Megatec/Q1 0.12 (2.7.4)
Поддерживаемый ИБП, обнаруженный по протоколу megatec
Информация о поставщике прочитана за 1 попытку
В ups.conf не указаны значения высокого/низкого напряжения батареи
Используя "приблизительную оценку" (низкий уровень: 41.600000, высокий: 52.000000)!
Время автономной работы рассчитываться не будет (runtimecal не задан)
upsd -u root
Запуск мониторинга ИБП
C переменными, в файле upsmon.conf
/usr/local/ups/sbin/upsmon
web сервера
http://ваш_комьютер/cgi-bin/upsstats.cgi
Настройка адресов и портов прослушивания подключений к NUT
mcedit /etc/nut/upsd.conf
LISTEN 127.0.0.1 3493
Настройка профиля пользователя для доступа к NUT
Сколько раз настраивал NUT и никогда не создавал пользователя в системе, достаточно было указать его в upsd.users
не создавать пользователя в системе, достаточно было указать его в upsd.users
И upssched тоже можно не настраивать, достаточно в upsmon.conf прописать
SHUTDOWNCMD "/sbin/shutdown -h +0"
Настройка пользователя для доступа к NUT:
Создаем пользователя upsmonitor без права логина и домашней папки, с UID меньше 1000,
чтобы он считался служебным и его не было на экране входа пользователей в систему, и с GID'ом группы nut.
Узнаем GID группы nut:
Код: Выделить всё
cat /etc/group | grep nut:x:
Теперь подберем UID для пользователя. Либо выберем такой, какой вряд ли используется какой либо программой, например, 339, либо выполняем:
cat /etc/passwd | grep [число от 100 до 1000
Код: Выделить всё
cat /etc/passwd | grep nut
Код: Выделить всё
cat /etc/passwd | grep 116
Код: Выделить всё
cat /etc/passwd | grep 117
и если ничего не выводит, то UID свободен и его можно использовать для создания пользователя upsmonitor:
Код: Выделить всё
useradd -d /dev/null -s /usr/sbin/nologin -u 117 -g 116 -p Пароль upsmonitor
Код: Выделить всё
mcedit /etc/nut/upsd.users
Код: Выделить всё
# Имя пользователя
[upsmonitor]
# Пароль пользователя
password = password
# Права пользователя на выполнение системных действий, то есть выключения и т.д.
actions = SET
# Права на изменение доступных переменных ИБП с помощью команды upscmd
instcmds = ALL
# Использование этого пользователя как управляющего для NUT
upsmon master
Допишите строки в конец файла:
Код: Выделить всё
mcedit /etc/nut/upsmon.conf
Код: Выделить всё
# Подключаться к eaton на localhost через учетные данные пользователя upsmonitor
# MONITOR powercom1@localhost 1 upsmon-m 123456789 master
# MONITOR powercom1@192.168.99.120 1 upsmon-s 987654321 slave
MONITOR entel-lpb-u20bs2@localhost 1 upsmonitor password master
# Количество подключенных ИБП
MINSUPPLIES 1
# ЗАВЕРШЕНИЕ работы CMD "<команда>"
SHUTDOWNCMD "/sbin/shutdown -h +0"
# Путь к программе NUT, которая будет вести широковещательную рассылку
#NOTIFYCMD /sbin/upssched
# Частота опроса мониторинга в секундах во время работы от сети
POLLFREQ 5
# Частота опроса мониторинга в секундах во время работы от батареи
POLLFREQALERT 5
# Ожидание отключения дочерних процессов от NUT при завершении работы
HOSTSYNC 15
# Если NUT не может получить отклик от опроса ИБП в течении этого времени то помечает ИБП как "мертвый"
DEADTIME 15
# Специальный флаг, устраняющий проблему, когда питание восстановилось после команды выключения от ИБП к ПК
POWERDOWNFLAG /etc/killpower
# Посылает сообщение о восстановлении питания во все открытые терминалы
NOTIFYMSG ONLINE "UPS %s on line power"
# Посылает сообщение о питании от батареи во все открытые терминалы
NOTIFYMSG ONBATT "UPS %s on battery"
# Посылает сообщение о критическом уровне заряда батареи ИБП во все открытые терминалы
NOTIFYMSG LOWBATT "UPS %s battery is low"
# Посылает сообщение о принудительном выключении во все открытые терминалы
NOTIFYMSG FSD "UPS %s: forced shutdown in progress"
# Посылает сообщение о подключении к ИБП во все открытые терминалы
NOTIFYMSG COMMOK "Communications with UPS %s established"
# Посылает сообщение о потере соединения с ИБП во все открытые терминалы, например, при случайном отключении USB шнура
NOTIFYMSG COMMBAD "Communications with UPS %s lost"
# Посылает сообщение во все открытые терминалы о принудительном выводе из сеансов всех пользователей и выключении ПК после окончания установленного таймера ожидания восстановления питания
NOTIFYMSG SHUTDOWN "Auto logout and shutdown proceeding"
# Посылает сообщение во все открытые терминалы о необходимости замены батареи ИБП
NOTIFYMSG REPLBATT "UPS %s battery needs to be replaced"
# Посылает сообщение во все открытые терминалы об отсутствии доступа к ИБП
NOTIFYMSG NOCOMM "UPS %s is unavailable"
# Посылает сообщение во все открытые терминалы о завершении процесса программы мониторинга NUT upsmon
NOTIFYMSG NOPARENT "upsmon parent process died - shutdown impossible"
# Выполнение действий по наступлению события, указанного после NOTIFYFLAG.
# SYSLOG это отправка сообщения о событии в логи ПК, в файл /var/log/syslog
# WALL это отправка сообщения о событии во все открытые терминалы
# EXEC это выполнение команды, определенной в файле /etc/nut/upsshed.conf, при наступлении события
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG FSD SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC
NOTIFYFLAG NOPARENT SYSLOG+WALL+EXEC
# Время вывода сообщения о необходимости замены батареи ИБП в секундах (12 часов)
RBWARNTIME 43200
# Если NUT не может связаться с настроенными ИБП, то посылает событие NOCOMM каждые 300 секунд
NOCOMMWARNTIME 300
# Последний интервал ожидания перед выключением системы
FINALDELAY 5
Если вы видите сообщение "Фатальная ошибка: настроено недостаточное питание!"
Сумма значений мощности........: 0
Минимальное значение (MINSUPPLIES): 1
Отредактируйте свой upsmon.conf и измените значения.
Коды состояния ИБП:
- OL - Система работает от сети.
- OB - Система работает от батареи.
- LB - Разряжена аккумуляторная батарея.
- RB - Аккумуляторную батарею необходимо заменить.
- CHRG - Аккумуляторная батарея заряжается
- DISCHRG - Батарея разряжается (инвертор обеспечивает питание нагрузки)
- BYPASS - Схема байпаса ИБП активна, защита от аккумуляторной батареи недоступна
- CAL - UPS is currently performing runtime calibration (on battery) ИБП в данный момент выполняет калибровку во время работы (от батареи)
- OFF - ИБП отключен и не подает питание на нагрузку
- OVER - ИБП перегружен
- TRIM - ИБП обрезает входящее напряжение (в некоторых аппаратных средствах это называется "понижением")
- BOOST - ИБП повышает входящее напряжение
- * - Неизвестное состояние
2. Важно контролировать состояние ИБП и его параметры через клиентские команды и конфигурации.
3. Настройка уведомлений и действий при изменении состояния ИБП позволяет обеспечить надежность работы системы.
22. Настройка планировщика задач NUT upssched:
Код: Выделить всё
mcedit /etc/nut/upssched.conf
Код: Выделить всё
# Скрипт, откуда будут выполнятся команды по событиям
CMDSCRIPT /etc/nut/cmd.sh
#CMDSCRIPT /bin/upssched-cmd
PIPEFN /var/run/nut/upssched/upssched.pipe
#PIPEFN /tmp/upspipe
LOCKFN /var/run/nut/upssched/upssched.lock
#LOCKFN /tmp/upslock
AT ONBATT * EXECUTE powerout
AT LOWBATT * EXECUTE shutdowncritical
AT ONLINE * CANCEL-TIMER shutdownnow
Код: Выделить всё
mcedit /etc/nut/cmd.sh
Код: Выделить всё
chmod +x /etc/nut/cmd.sh
Код: Выделить всё
#!/bin/sh
# logger посылает указанный текст в syslog
case $1 in
commbad)
logger "UPS communications failure"
;;
commok)
logger "UPS communications restored"
;;
nocomm)
logger "UPS communications cannot be established"
;;
powerout)
# Выключает ПК с задержкой в указанное количество секунд
logger "UPS on battery. Shutdown in 90 seconds...."
upscmd -u upsmonitor -p UPSPASS eaton@localhost shutdown.return
;;
shutdownnow)
logger "UPS has been on battery for 120 seconds. Starting orderly shutdown"
# Запуск принудительного выключения ПК
upsmon -c fsd
;;
shutdowncritical)
logger "UPS battery level CRITICAL. Shutting down NOW!!!!"
# Запуск принудительного выключения ПК
upsmon -c fsd
;;
powerup)
logger "UPS on line. Shutdown aborted."
# Прерывание процесса выключения ПК
upscmd -u upsmon -p pass mustek@localhost shutdown.stop
;;
*)
logger "Unrecognized command: $1"
;;
esac
AT COMMBAD * EXECUTE commbad
AT COMMOK * EXECUTE commok
AT NOCOMM * EXECUTE nocomm
# Указание включить ПК после восстановления питания. Можно удалить или закомментировать если не поддерживается ИБП
AT ONBATT * EXECUTE powerout
# Запуск таймера, после окончания которого выполнится команда shutdownnow из cmd.sh
AT ONBATT * START-TIMER shutdownnow 90
AT LOWBATT * EXECUTE shutdowncritical
AT ONLINE * CANCEL-TIMER shutdownnow
AT ONLINE * EXECUTE powerup
Скрипт /etc/killpower
Код: Выделить всё
#!/bin/bash
if (test -f /etc/killpower)
then
echo "Отключаю электричество, пока!"
/sbin/upsdrvctl shutdown
sleep 120
# о-о-о... не удалось отключить ИБП!
# вероятно, вам следует перезагрузиться, чтобы избежать зависания
# *** смотрите раздел о скачках мощности ниже ***
fi
Запуск службы драйвера NUT
Код: Выделить всё
systemctl start nut-driver.service
Код: Выделить всё
systemctl status nut-driver.service
Для запуска сервера выполните:
Остановка
systemctl stop nut-server
Запуск
Код: Выделить всё
systemctl start nut-server
systemctl restart nut-server
Состояние
Код: Выделить всё
systemctl status nut-server
service nut-server stop
service nut-server start
service nut-server restart
service nut-server status
прямая команда
/etc/init.d/nut-server stop
/etc/init.d/nut-server start
/etc/init.d/nut-server restart
/etc/init.d/nut-server status
/lib/nut/upsd
Запуск Клиента мониторинга ИБП NUT
systemctl stop nut-client
Код: Выделить всё
systemctl start nut-client
Код: Выделить всё
systemctl status nut-client
service nut-client start
/etc/init.d/nut-client start
/lib/nut/upsmon
Запуск Графического клиента NUT
Код: Выделить всё
systemctl start nut-monitor
Код: Выделить всё
systemctl status nut-monitor.service
service nut-monitor start
/etc/init.d/nut-monitor start
lib/nut/upsmon
Тест соединения
Пример использования upsc:
Код: Выделить всё
upsc entel-lpb-u20bs2@localhost
Код: Выделить всё
upsc entel-lpb-u20bs2@192.168.175.111
Код: Выделить всё
upsc entel-lpb-u20bs2@192.168.175.111:3551
upsc eaton@localhost
upsc powercom1@localhost
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
Код: Выделить всё
upsc -с entel-lpb-u20bs2@192.168.175.111
Пример использования upscmd отключить зуммер (пищалку ибп):
Код: Выделить всё
upscmd -u upsmonitor -p password entel-lpb-u20bs2@localhost beeper.disable
Код: Выделить всё
mcedit /lib/systemd/system/nut-driver.service
Код: Выделить всё
[Unit]
Description=Network UPS Tools - power device driver controller
After=local-fs.target network.target systemd-udev-settle.service
Wants=systemd-udev-settle.service
StopWhenUnneeded=yes
[Service]
ExecStart=/sbin/upsdrvctl start
ExecStop=/sbin/upsdrvctl stop
Type=forking
[Install]
WantedBy=multi-user.target
Код: Выделить всё
systemctl daemon-reload
Код: Выделить всё
systemctl enable nut-driver.service
Код: Выделить всё
systemctl enable nut-server.service
Код: Выделить всё
systemctl enable nut-client.service
Код: Выделить всё
systemctl enable nut-monitor.service
Автозагрузка пример для сервера nut-server аналогично для всех других компонентов NUT
chkconfig --add nut-server
chkconfig nut-server on
или
update-rc.d nut-server defaults
Отключить автозагрузку nut
Останавливаем все службы nut
systemctl daemon-reload
systemctl disable ups-monitor.service
systemctl disable nut-client.service
systemctl disable nut-server.service
systemctl disable nut-driver.service
Для других ОС пример для nut-server
chkconfig --del nut-server
chkconfig nut-server off
update-rc.d -f nut-server remove
список всех настроенных ИБП
Код: Выделить всё
upsc -L
Код: Выделить всё
upsc ИМЯ_ИБП
Код: Выделить всё
upsc ИМЯ_ИБП ИМЯ_ПЕРЕМЕННОЙ
Код: Выделить всё
upsc ИМЯ_ИБП ИМЯ_ПЕРЕМЕННОЙ 2>&1 | grep -v SSL
Код: Выделить всё
upsc ups_01 battery.date
Код: Выделить всё
upscmd -l eaton@localhost
Код: Выделить всё
upsrw -s battery.date=30/07/21 -u admin -p password ups_01@localhost
Код: Выделить всё
upscmd -u admin -p password -l UPS_01@localhost
Код: Выделить всё
upscmd -u admin -p password ups_01@localhost calibrate.start
Код: Выделить всё
watch upsc UPS_01 battery.charge
Код: Выделить всё
watch upsc UPS_01 battery.runtime
beeper.disable - Отключите звуковой сигнал ИБП
beeper.enable - Включите звуковой сигнал ИБП
beeper.mute - Временно отключите звуковой сигнал ИБП
beeper.off - Устаревший (используйте beeper.disable или beeper.mute)
beeper.on - Устарел (используйте beeper.enable)
load.off - Немедленно выключите нагрузку
load.off.delay - Отключите нагрузку с задержкой (секунды)
shutdown.stop - Остановите выполняющееся завершение работы
Пример команд, поддерживаемые ИБП:
Код: Выделить всё
upscmd -l entel-lpb-u20bs2@localhost
Мгновенные команды, поддерживаемые ИБП [entel-lpb-u20bs2]:
beeper.toggle - Включите звуковой сигнал ИБП
load.off - Немедленно выключите нагрузку
load.on - Немедленно включите нагрузку
shutdown.return - Выключите нагрузку и вернитесь к работе, когда питание восстановится
shutdown.stayoff - Выключите нагрузку и оставайтесь выключенным
shutdown.stop - Остановите выполняющееся завершение работы
test.battery.start - Запустите проверку заряда батареи
test.battery.start.deep - Запустите глубокую проверку заряда батареи
test.battery.start.quick - Запустите быструю проверку заряда батареи
test.battery.stop - Прекратите проверку батареи
Настройки beeper.* управляют сигнализацией ИБП в случае потери напряжения в сети,
load.off выключает ПК немедленно,
load.off.delay задержка в секундах до выключения ПК,
shutdown.stop — команда прерывания процесса отключения ПК.
# test.panel.start - Запустите тест передней панели
# test.battery.start - Начните проверку заряда батареи
# test.battery.stop - Прекратите проверку батареи
# calibrate.start - Начните калибровку
# calibrate.stop - Остановить калибровку
В некоторых ИБП присутствуют и другие опции, например, тест батареи или shutdown.return, в случае использования которой компьютер будет выключен, но ИБП пошлет сигнал включения ПК как только восстановится питание в сети. Чтобы это сработало, в БИОСе ПК дожна быть включена соответствующая функция, которая обычно находится где то в районе настроек питания.
Для примера выключим писк ИБП, когда пропадает питание в сети:
Код: Выделить всё
upscmd -u upsmonitor -p UPSPASS eaton@localhost beeper.disable
Код: Выделить всё
upscmd -u upsmonitor -p UPSPASS eaton@localhost beeper.enable
Код: Выделить всё
upscmd -u admin -p password Powerware5110@localhost shutdown.return
Код: Выделить всё
upsmon -c fsd
Network UPS Tools (NUT) предоставляет мощные инструменты для мониторинга и управления ИБП. Правильная установка и настройка обеспечивают надежную защиту данных и бесперебойную работу систем.
Эксперимент передачи данных через snmp и ipmi
Установка
Код: Выделить всё
apt-get install snmp snmpd snmp-mibs-downloader snmptrapd ipmitool
Далее создаем скрипт
Код: Выделить всё
mcedit /etc/snmp/ups-nut.sh
Код: Выделить всё
#!/usr/bin/env bash
UPS_NAME='entel-lpb-u20bs2'
PATH=$PATH:/usr/bin:/bin
TMP=$(upsc $UPS_NAME@localhost:3551 2>/dev/null)
for value in "battery\.charge: [0-9.]+" "battery\.(runtime\.)?low: [0-9]+" "battery\.runtime: [0-9]+" "battery\.voltage: [0-9.]+" "battery\.voltage\.nominal: [0-9]+" "input\.voltage\.nominal: [0-9.]+" "input\.voltage: [0-9.]+" "ups\.load: [0-9.]+"
do
OUT=$(echo $TMP | grep -Eo "$value" | awk '{print $2}' | LANG=C sort | head -n 1)
if [ -n "$OUT" ]; then
echo $OUT
else
echo "Unknown"
fi
done
Код: Выделить всё
chmod +x /etc/snmp/ups-nut.sh
Код: Выделить всё
mcedit /etc/snmp/snmpd.conf
Код: Выделить всё
extend ups-nut /etc/snmp/ups-nut.s
Код: Выделить всё
service snmpd restart
Код: Выделить всё
snmpwalk -v2c -c public 192.168.175.111 'NET-SNMP-EXTEND-MIB::nsExtendOutLine'
Bad operator (INTEGER): At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU
NET-SNMP-EXTEND-MIB::nsExtendOutLine."test1".1 = STRING: Hello, world!
NET-SNMP-EXTEND-MIB::nsExtendOutLine."test2".1 = STRING: Hello, world!
NET-SNMP-EXTEND-MIB::nsExtendOutLine."test2".2 = STRING: Hi there
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ups-nut".1 = STRING: 100
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ups-nut".2 = STRING: Unknown
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ups-nut".3 = STRING: Unknown
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ups-nut".4 = STRING: 54.70
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ups-nut".5 = STRING: 48
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ups-nut".6 = STRING: 230
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ups-nut".7 = STRING: 218.1
NET-SNMP-EXTEND-MIB::nsExtendOutLine."ups-nut".8 = STRING: 8