Jump to content
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.

Category:

- Power management (Русский)