Данная статья применима к:

  • Astra Linux
Пакет apcupsd предназначен для взаимодействия ОС с ИБП, работающими по протоколам компании APC (в настоящее время APC входит в состав компании Schneider Electric). Для работы с другими ИБП (в том числе и с ИБП APC) следует использовать входящий в состав дистрибутивов Astra Linux пакет nut.


Установка пакета

Пакет apcupsd входит в стандартные дистрибутивы Astra Linux, но по умолчанию не устанавливается. Установить пакет можно с помощью графического менеджера пакетов (см. Графический менеджер пакетов synaptic), или из командной строки командой

apt install apcupsd

После установки пакет запускается автоматически с настройками по умолчанию.

Настройка пакета

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

Конфигурационные файлы пакета хранятся в каталоге /etc/apcupsd. После установки пакет запускается автоматически с настройками по умолчанию, а именно в предположении, что ИБП подключен через интерфейс USB. Параметры конфигурации сервиса задаются в файле /etc/apcupsd/apcupsd.conf. Файл снабжен подробными комментариями по значениям параметров. После изменения файла конфигурации служба должна быть перезапущена:

sudo systemctl restart apcupsd

Настройка реакции на события

Стандартная реакция сервиса apcupsd на события, о которых сообщает ИБП, определяется в файле /etc/apcupsd/apccontrol. Файл представляет собой сценарий для интерпретатора /bin/sh, реализующий общепринятые реакции на стандартные ситуации с ИБП.

Изменять файл /etc/apcupsd/apccontrol не рекомендуется, так как он может быть перезаписан при обновлении пакета.

Для пользовательских сценариев (не изменяющихся при установке обновлений) предусмотрены отдельные файлы-сценарии, автоматически вызываемые из основного сценария.

Пользовательские сценарии автоматически выполняются перед действиями основного сценария, причем, если пользовательский сценарий окончится с кодом завершения 99, действие основного сценария выполняться не будет.

Пользовательские сценарии так же, как и основной сценарий, представляют собой обычные сценарии для интерпретатора /bin/sh.

По умолчанию предусмотрены следующие пользовательские сценарии:

  • changeme — реакция на необходимость замены батареи ИБП;
  • commfailure — реакция на потерю связи с ИБП;
  • commok —  реакция на восстановление связи с ИБП;
  • killpower — реакция на аварийное отключение питания по инициативе ИБП. Вызывается после того, как ИБП сообщит, что отключит питание компьютера.;
  • offbattery — реакция на восстановление основного электропитания;
  • onbattery — реакция на потерю основного электропитания.

Инструменты командной строки

В пакет apcupsd входят:

  • инструмент командной строки apcaccess,  позволяющий получать информацию о состоянии ИБП;
  • инструмент командной строки apctest, позволяющий выполнять настройки ИБП. Перед использованием этого инструмента необходимо остановить службу apcupsd, после использования - запустить:

    sudo systemctl stop apcupsd
    sudo apctest
    sudo systemctl start apcupsd

Сетевые возможности

В пакете apcupsd имеется встроенная возможность получения информации о состоянии ИБП по сети.

Отображение информации по сети:
  1. осуществляется с помощью сценариев CGI;
  2. осуществляется без авторизации;
  3. при использовании в Astra Linux SE сервер apache2 должен быть переключен в режим "AstraMode off".

Перечисленные ограничения могут быть неприемлемы с точки зрения действующих требований безопасности.

Для того, чтобы сервер мог передавать информацию о состоянии своего ИБП по сети, на нём также должна быть установлена служба apcupsd, и должна быть разрешена передача информации другим серверам (параметр NISIP в файле /etc/apcupsd/apcupsd.conf). По умолчанию передача информации разрешена только через локальный интерфейс (127.0.0.1). После изменения конфигурации служба должна быть перезапущена:

sudo systemctl restart apcupsd

Список серверов, состояние ИБП которых будет опрашиваться и  отображаться находится в файле /etc/apcupsd/hosts.conf, по умолчанию опрашивается только локальный сервер:

# Network UPS Tools - hosts.conf
#
# This file does double duty - it lists the systems that multimon will
# monitor, and also specifies the systems that upsstats is allowed to 
# watch. It keeps people from feeding random addresses to upsstats,
# among other things. upsimage also uses this file to know who it 
# may speak to. upsfstats too.
#
# Usage: list systems running upsd that you want to monitor
#
# MONITOR <address> "<host description>"
#
# Please note, MONITOR must start in column 1 (no spaces permitted)
#
# Example: 
# MONITOR 10.64.1.1 "Finance department"
# MONITOR 10.78.1.1 "Sierra High School data room #1"
#
MONITOR 127.0.0.1 "Local Host"



Сценарий установки:

sudo apt install apcupsd apcupsd-cgi apache2
sudo a2enmod cgi
sudo systemctl restart apache2
firefox localhost/cgi-bin/apcupsd/multimon.cgi
Подробности см. в документации на пакет.