Как использовать UPS с
nut
Инструменты
nut (Network UPS
tools) - это демоны управления и
мониторинга UPS, которые могут быть
использованы для различных UPS. Этот
документ описывает, как использовать nut
пакет из AltLinux Мастер 2.4 на примере
подключения Powerman BackPro
Plus по RS-232
для отдельной машины.
Инсталляция пакета nut
В
AltLinux M2.4 nut входит как три пакета "nut","nut-server"
и "nut-driver".
Необходимо установить все. Их можно инсталлировать с помощью apt-get:
#
apt-get install nut-server
Конфигурирование nut
Конфигурационные файлы Nut'а
должны находятся в каталоге /etc/nut.
При установке nut
этот каталог создается RPM пакетом и там
должны находится следующие файлы:.
- ups.conf
– настройки UPS-специфического
драйвера
- upsd.conf
- настройки для главного UPS демона
- upsd.users
– файл контроля доступа для UPS демона
- upsmon.conf
- настройки для UPS демона монитора
- upssched.conf
- настройки для upssched демона
Для
запуска сервиса необходимо изменить некоторые установки в этих
конфигурационных файлах. Демон upssched не
будет использоваться и upssched.conf
не редактируется.
Переходим
в каталог /etc/nut
и смотрим, что мы имеем:
#
ls -l
drwx--x---
2 root upsmon <skip> certs
lrwxrwxrwx
1 root root <skip>
cmdvartab ->
../../var/lib/nut/etc/nut/cmdvartab
-rw-r--r--
1 root root <skip>
driver.list
-rw-r-----
1 root upsdrv <skip>
ups.conf
lrwxrwxrwx
1 root root <skip>
upsd.conf ->
../../var/lib/nut/etc/nut/upsd.conf
lrwxrwxrwx
1 root root <skip>
upsd.pem ->
../../var/lib/nut/etc/nut/upsd.pem
lrwxrwxrwx
1 root root <skip>
upsd.users ->
../../var/lib/nut/etc/nut/upsd.users
-rw-r-----
1 root upsmon <skip>
upsmon.conf
-rw-r-----
1 root upsmon <skip>
upssched.conf
<skip>
- обозначает
удаленную незначимую информацию.
Как
видно из вывода часть файлов перенесена в chroot,
поэтому смотрим, что находится в /var/lib/nut/etc/nut/:
-rw-r----- 1 root upsd
<skip> cmdvartab
-rw-r----- 1 root
upsdrv
<skip> ups.conf
-rw-r-----
1 root upsd <skip>
upsd.conf
-rw-r-----
1 root upsd <skip>
upsd.pem
-rw-r-----
1 root upsd <skip>
upsd.users
-rw-r-----
1 root upsmon <skip> upsmon.conf
Выявлена
проблема наличия двух файлов (upsmon.conf,
ups.conf) в двух
местах. Править конфигурационные файлы необходимо в /etc/nut.
Конфигурирование ups.conf
Настройки
UPS-специфического драйвера должны
определятся в ups.conf.
Какие драйверы поддерживают определенные типы UPS
описано в файле /etc/ups/driver-list.
Powerman BackPro
Plus не имеет собственного драйвера и
поэтому необходимо использовать драйвер genericups
с указанием upstype. Процедура
подбора драйвера описана в man
genericups. Там же смотрим и параметры необходимые для
настройки драйвера.
Установки в нашем
случае приведены ниже (выделены жирным шрифтом):
#
#
To find out if your driver supports any extra settings, start it with
#
with the -h option and/or read the driver's documentation.
[myups]
driver
= genericups
port
= /dev/ttyS0
upstype
= 4
- myups
– это
произвольное имя UPS. Строка [myups] должна
начинаться с первой колонки! В противном случае драйвер не будет
стартовать.
- Port
– это com–порт к которому
присоединен UPS.
- upstype - тип UPS
в данном драйвере.
- Для некоторых UPS
необходим параметр cable=.
Запускаем драйвер для
нашего оборудования:
#/etc/init.d/upsdrv
start
Успешный старт будет
выглядеть так:
Starting
UPS drivers: [DONE]
Отсутствие сообщения
говорит об ошибке и необходимо проверить установки в ups.conf,
возможно, нужны дополнительные установки для обнаружения UPS.
Конфигурирование upsd.conf
Поскольку мы не
будем использовать сетевые возможности, то нет необходимости изменять
upsd.conf.
Параметры по умолчанию следующие:
ACL
all 0.0.0.0/0
ACL
localhost 127.0.0.1/32
ACCEPT
localhost
REJECT
all
Запускаем
сетевой сервер:
#/etc/init.d/upsd
start
Успешный старт будет
выглядеть так:
Starting
UPS information service: [DONE]
Если upsd
сообщит, что не может связаться с UPS, это
означает, что ups.conf
сконфигурирован неверно или выбран неверный драйвер устройства.
Проверим,
что UPS сообщает правильные данные о своем
состоянии.
#upsc
myups@localhost
ups.status
Ответ
должен быть:
OL
OL
означает, что UPS работает от сети. Другие
сообщения (OB – от батареи или LB
разряженная батарея) говорят о том, что конфигурирование ups.conf
неверно. Если выводится сообщение "access
denied" это означает, что неверно
сконфигурирован upsd.conf.
Правим файлы и выполняем reload
соответствующих
демонов.
Посмотрим, какие данные
отслеживаются для UPS выбранным драйвером:
#upsc
myups@localhost
Вывод
для genericups
будет таким:
driver.name:
genericups
driver.parameter.port:
/dev/ttyS0
driver.parameter.upstype:
4
driver.version:
2.0.0
driver.version.internal:
1.30
ups.mfr:
Generic
ups.model:
Generic RUPS model
ups.status:
OL
Конфигурирование upsd.users
upsd.users
разрешает или
запрещает доступ
к upsd демону
клиентам (upsmon демону,
upsc команде, ...). Необходимо
позволить upsmon демону связываться с upsd.
Для этого добавляются 4 строчки:
#
The matching MONITOR line in your upsmon.conf would look like this:
#
#
MONITOR myups@myhost 1 monuser pass master (or slave)
[monuser]
password
= KJSsaia1
allowfrom
= localhost
upsmon
master
- [monuser]
– произвольное название для доступа upsmon
демона.
- password
=
строка определяющая пароль. Этот пароль не используется пользователями.
Определяется только в конфигурационном файле.
- allowfrom
=
строка определяющая ACL имя для разрешения
доступа. Здесь "localhost"
не localhost как имя хоста, а ACL имя, определенное в upsd.conf: ACL localhost
127.0.0.1/32
- upsmon
master
– это upsmon специфическая настройка.
Если upsd будет работать в master-mode (обычно это
так) необходимо поставить "master" как
аргумент в этой строчке.
Перезагрузим upsd:
#/etc/init.d/upsd
reload
Если нет сообщения
[DONE] для старта проверяем конфигурационные
файлы.
Конфигурирование upsmon.conf
upsmon.conf
это установки для upsmon, UPS
демона монитора.
#
#
MONITOR myups@bigserver 1 monmaster blah master
#
MONITOR su700@server.example.com 1 upsmon secretpass slave
MONITOR
myups@localhost 1 monuser KJSsaia1 master
#
--------------------------------------------------------------------------
#
MINSUPPLIES
Необходима только одна
MONITOR
строчка. Здесь определяется имя UPS
("myups"),
имя хоста на котором upsd выполнятся
("localhost"),
название доступа ("monuser"),
пароль ("KJSsaia1") и "master"
или "slave"
(обычно "master").
Эти установки соответствуют установкам в upsd.users.
Число "1" - значение мощности и устанавливается равной 1.
Запускаем монитор:
#/etc/init.d/upmon
start
Starting
UPS monotor service: [DONE]
Отсутствие сообщения
говорит об ошибке и необходимо проверить установки в upsmon.conf.
Заключительная проверка
Просматриваем сообщения
в syslog :
# grep
ups /var/log/messages
Сообщения, связанные с
UPS должны выглядеть примерно так:
server
genericups[14471]: Startup successful
server
upsdrvctl: Network UPS Tools - UPS driver controller 2.0.0
server
upsdrv: Starting UPS drivers: succeeded
server
upsd[14504]: Connected to UPS [myups]: genericups-ttyS0
server
upsd: Network UPS Tools upsd 2.0.0
server
upsd: Synchronizing...done
server
upsd: Connected to UPS [myups]: genericups-ttyS0
server
upsd: upsd startup succeeded
server
upsd[14505]: Startup successful
server
upsmon: UPS: myups@localhost (master) (power value 1)
server
upsmon: Using power down flag file /etc/killpower
server
upsmon: upsmon startup succeeded
server
upsmon[14523]: Startup successful
server
upsd[14505]: Connection from 127.0.0.1
server
upsd[14505]: Client monuser@127.0.0.1 logged into UPS [myups]
Любые сообщения об
ошибках здесь связаны с ошибками конфигурационных файлов, которые
должны быть исправлены.
Что необходимо дописать
Конфигурирование ups.conf для случая более
сложного, чем genericups.
Например, APC.
Конфигурирование upsd.conf Управление
по сети.
Конфигурирование upssched.conf.
Сообщения об проблемах с питанием по e-mail и т.д.