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

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи 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.