Network UPS Tools (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Network UPS Tools. Дата последней синхронизации: 16 июля 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Эта статья описывает установку Network UPS Tools (NUT). Он совместим с тысячами моделей ИБП, полный список которых доступен в списке совместимого оборудования.

Установка

Установите пакет nut.

Настройка

У NUT есть 3 связанных с ним демона:

  • Драйвер, который связывается с ИБП.
  • Сервер (upsd), который использует драйвер для сообщений о состоянии ИБП.
  • Демон мониторинга (upsmon), который контролирует сервер upsd и выполняет действия на основе полученной информации.

Идея состоит в том, что если существует несколько систем, подключенных к ИБП, одна может сообщать о состоянии ИБП по сети, а другие могут отслеживать это состояние, запуская свои собственные действия upsmon. У NUT есть обширная документация по конфигурации, здесь же будет рассказано о простой настройке USB-ИБП, а также соответствующего сервера и монитора в одной системе (обычная конфигурация рабочего места).

Настройка драйвера

Конфигурация зависит от типа используемого ИБП. Обратитесь к ранее упомянутому списку совместимого оборудования (Hardware Compatibility List), чтобы узнать, какой драйвер, скорее всего, будет работать с вашим ИБП. Также можно запустить утилиту nut-scanner(8) для обнаружения подключённых устройств, совместимых с NUT.

Для многих ИБП, подключенных по USB, используется драйвер usbhid-ups(8). Для ИБП с последовательным портом используйте port=/dev/ttySX, где X — номер последовательного порта (например: /dev/ttyS1). Для ИБП с USB-портом используйте port=auto.

/etc/nut/ups.conf
...
[upsname]
    driver = usbhid-ups
    port = auto

Назвать ИБП можно любым удобным именем. ups.conf(5)

Запустите драйвер от root-пользователя с помощью команды upsdrvctl start. Если ошибок нет, вы увидете подобное сообщение при использовании драйвера usbhid-ups:

Network UPS Tools - Generic HID driver 0.34 (2.4.1)
USB communication driver 0.31
Using subdriver: MGE HID 1.12
Detected EATON - Ellipse MAX 1100 [ADKK22008]

Если же драйвер запускается с ошибками, убедитесь, что выбран правильный вариант для вашего оборудования. Возможно, вам придется попробовать другие драйверы, изменив значение "driver=" в ups.conf.

Ошибка "Can't claim USB device"

Если вы получаете сообщение об ошибке, подобное этому:

Can't claim USB device [XXXX:YYYY]: could not detach kernel driver from
interface 0: Operation not permitted
Driver failed to start (exit status=1)

Или менее конкретное:

USB communication driver 0.33
No matching HID UPS found
Driver failed to start (exit status=1)

Скорее всего, это проблема с разрешениями доступа к устройству. Её можно исправить, указав udev-правило для установки корректной группы:

/etc/udev/rules.d/50-ups.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", ATTR{idProduct}=="YYYY", SYMLINK+="ups0", GROUP="nut"

Где idVendor и idProduct — производитель устройства и идентификатор продукта. Данную информацию можно найти в выводе ошибки [XXXX:YYYY] или с помощью lsusb.

Примечание: SYMLINK — необязательное правило для добавление символической ссылки на устройство для удобства (в данном случае оно отобразиться как /dev/ups0 при подключении).
Примечание: Группа nut добавляется пакетом NUT из AUR. При использовании другого метода установки (или, возможно, изменении пакета) может потребоваться исправить группу. Также можно сделать устройство доступным для всех пользователей MODE="0666".

После этого обновите и перезагрузите правила udev, выполнив следующую команду:

# udevadm control --reload-rules && udevadm trigger

Настройка upsd

По умолчанию upsd слушает только localhost, что отлично подходит для наших целей. Хотя это необязательно, также можно настроить upsd под свои задачи, отредактировав файл /etc/nut/upsd.conf. Смотрите upsd.conf(5) для получения более подробной информации.

Для этого требуется добавить пользователя, чтобы монитор мог подключаться к серверу и выполнять команды. См. upsd.users(5) для получения более подробной информации.

/etc/nut/upsd.users
...
[upsuser]
     password = password
     upsmon master
     actions = SET
     instcmds = ALL

На этом этапе должна быть возможность запустить и включить службу nut-server.service, которая автоматически запустит nut-driver.

При успешном запуске можно выполнить команду upsc <upsname> для получения информации от ИБП. Пример вывода:

battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 20
battery.mfr.date: CPS
battery.runtime: 5550
battery.runtime.low: 300
battery.type: PbAcid
battery.voltage: 13.5
battery.voltage.nominal: 12
device.mfr: CPS
device.model: UPS CP1000AVRLCD
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.data: CyberPower HID 0.4
driver.version.internal: 0.41
input.transfer.high: 140
input.transfer.low: 90
input.voltage: 122.0
input.voltage.nominal: 120
output.voltage: 122.0
ups.beeper.status: disabled
ups.delay.shutdown: 20
ups.delay.start: 30
ups.load: 0
ups.mfr: CPS
ups.model: UPS CP1000AVRLCD
ups.productid: 0501
ups.realpower.nominal: 600
ups.status: OL
ups.test.result: Done and passed
ups.timer.shutdown: -60
ups.timer.start: 0
ups.vendorid: 0764

Настройка upsmon

Последний шаг — настроить upsmon для прослушивания upsd и выполнения действий при наступлении определённых событий.

Добавьте следующую строку в файл /etc/nut/upsmon.conf:

MONITOR upsname@localhost 1 upsduser password master

upsname — это имя ИБП, а upsduser и password — пользователь и его пароль, который вы установили в /etc/nut/upsd.users.

Также можно настроить, какие оповещения отправляются и куда, какие действия предпринимаются при разряженном аккумуляторе и многое другое. Смотрите upsmon.conf(5) для получения более подробной информации.

Затем запустите и включите службу nut-monitor.service.

В логах должен отобразиться запуск upsmon и мониторинг ИБП.

NUT-Monitor

NUT-Monitor — графический пользовательский интерфейс для мониторинга и управления устройствами, подключенными к серверу Network UPS Tools.

Установите nut-monitor с помощью пакета nut-monitorAUR.