Options for nut 2.4.1_3
[X] SERIAL SERIAL support
[ ] USB USB support
[X] SNMP SNMP support
[X] NEON NEON XML/HTTP support
[ ] PDU Powerman PDU support
[ ] HAL HAL support
[ ] IPV6 IPV6 support
[X] CGI Web CGI interface
Приступаем к настройке. Для начала создадим необходимые каталоги для драйверов и сервера, выставим права:
# mkdir -p /var/state/ups
# chmod 0770 /var/state/ups
# chown uucp:wheel /var/state/ups |
Далее необходимо определиться, какой драйвер будет использоваться для данного UPS:
# cat /usr/local/etc/nut/driver.list | grep Powercom«Powercom» «SMK» «» «megatec»
«Powercom» «SXL» «» «megatec»
«Powercom» «ULT» «» «megatec»
«Powercom» «Trust 425/625» «» «powercom»
«Powercom» «Advice Partner/King Pr750» «» «powercom»
«Powercom» «Black Knight PRO» «» «powercom»
«Powercom» «King PRO» «» «powercom»
«Powercom» «Imperial» «» «powercom»
«Powercom» «Vanguard 6000» «» «megatec» |
В моем случае нужно использовать драйвер «powercom», поскольку KIN относится к серии King PRO.
Теперь пора ознакомиться с конфигурационными файлами NUT. Все они находятся в директории /usr/local/etc/nut.
Назначение:
ups.conf — настройки UPS драйвера для сбора данных
upsd.conf — настройка основного демона upsd для Network UPS Tools
upsd.users — контроль доступа к UPS демону (профили пользователей)
upsmon.conf — настройки монитора UPS демона
Теперь по порядку займемся настройкой каждого из конфигурационных файлов.
ups.conf
Необходимо добавить в конфигурационный файл UPS и его настроки подключения.
# cd /usr/local/etc/nut && cp ups.conf.sample ups.conf |
В результате нехитрых манипуляций, получим следующий результат:
# cat /usr/local/etc/nut/ups.conf
[Powercom]
driver = powercom
port = /dev/cuad0
desc = «KIN-2200AP-RM»
type = KIN |
Более детально о каждой из опций:
- [ups_name] — имя используется как адрес вашего UPS. Вы можете его изменить на любое произвольное имя.
- driver — драйвер, используемый для работы с UPS.
- port — порт, на котором висит UPS
- desc — описание устройства (так, на всякий случай, чтобы не забыть).
- sdorder — необязательный элемент. При наличии нескольких UPS подключенных к серверу можно выключать в определенном порядке. используя upsdrvctl можно выключить все 0s или 1s, 2s и тд. Для исключения последовательной остановки используйте -1.
- nolock — необязательный элемент, его не рекомендуется использовать в его этом конфиге. Он служит для отключения блокировки порта при пользовании утилитой.
- maxstartdelay — необязательный элемент. Может быть, заданна как глобальная переменная выше вашего первого UPS. Это значение определяет, сколько upsdrvctl будет ожидать окончания запуска драйвера. Данная возможность предоставляет стабильность в работе. Значение по умолчанию равно 45 секундам.
- cable — Если драйвер UPS требует дополнительных параметров, вы можете указать их здесь. Это индекс вашего кабеля и вы можете посмотреть его тут. Вы можете не указывать это значение, если ваше подключение к UPS стандартно.
Допускается использование дополнительных опций, исходя из специфики оборудования (необходимо смотреть маны по конкретно используемому драйверу). В моем случае не совпадал тип с тем, который используется по умолчанию, соответственно пришлось конкретизировать. Значения по умолчанию для драйвера Powercom:
- linevoltage = 230
- manufacturer = PowerCom
- modelname = Unknown
- serialnumber = Unknown
- type = Trust
upsd.conf
upsd отвечает за передачу данных от драйвера клиентским программам в сети. upsd должен находится под управлением и по возможности, как единственный источник состояния и мониторинга клиентов, таких как upsmon. upsd использует этот файл для контроля доступа к серверу и для установки других значений различных конфигурации. Этот файл содержит подробные сведения об управлении доступом, таким образом, обеспечивается безопасность.
Создание файла:
# cp upsd.conf.sample upsd.conf |
Редактируем до следующего состояния:
# cat upsd.conf
LISTEN 127.0.0.1 3493
LISTEN 195.3.159.250 3493 |
Доступные опции:
upsd.users
Контроль доступа до UPS-демона (профили пользователей). Именно в этом файле вы указываете, кто и в какой мере будет контролировать и работать с утилитой. Для начала создадим этот файл:
# cp upsd.users.sample upsd.users |
Правим конфиг до следующего состояния:
# cat upsd.users
[admin]
password = adminpass
actions = SET
instcmds = ALL[monmaster]
password = masterpass
upsmon master[monslave]
password = slavepass
upsmon slave |
Теперь более подробно о доступных опциях.
Значения:
- password — пароль пользователя
- allowfrom — откуда разрешено подключатся
Каждый UPS монитор может определяться как один из трех возможных типов:
- upsmon master — полные полномочия управлением питания подключенных к системе UPS под управлением upsmon, эта система отвечает за выключение разряженного аккумулятора. Выключение происходит после безопасного выключения всех Slave систем. Если ваш UPS подключен непосредственно к системе через последовательный порт, то для upsmon системы следует определить этот UPS как Master.
- upsmon slave — эта система, под управлением upsmon и она не выключается непосредственно. Операционная система будет выключена перед отключением питания Master. Используйте этот режим при запуске монитора на других компьютерах работающих на том же UPS. И очевидно, что только один сервер может быть подключен к последовательному порту на UPS, коим будет является Master. Все остальные сервера будут Slave.
- upsmon monitor-only — при этом режиме будут создаваться уведомления о состоянии или изменении работы батареи, переключении на линию и т.д., но не завершать работу системы.
- actions — Действия пользователя с применением upsd.
- SET — изменить значения определенных переменных в UPS
- FSD — установка флага «принудительного выключения» для UPS
- instcmds — разрешения пользователю на инициирование конкретных команд. Применяя «ALL» вы разрешаете использовать все команды, Существует множество команд выполните ‘upscmd -l’ чтобы увидеть, что ваше оборудование поддерживает. Вот, к примеру, несколько команд.
- test.panel.start — старт теста передней панели
- test.battery.start — старт теста батареи
- test.battery.stop — остановка теста батареи
- calibrate.start — запуск калибровки батареи
- calibrate.stop — остановка калибровки батареи
upsmon.conf
upsmon предоставляет основные функции, которая собирается найти в программе мониторинга UPS, например это безопасное завершений работы при сбое питания. В многоуровневой схеме утилиты NUT это клиент. Создадим файл конфигурации:
# cp upsmon.conf.sample upsmon.conf |
Редактируем конфиг до следующего состояния:
# cat upsmon.conf
MONITOR Powercom@localhost 1 monmaster masterpass master
MINSUPPLIES 1
SHUTDOWNCMD «/sbin/shutdown -p now»
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE SYSLOG+WALL
NOTIFYFLAG ONBATT SYSLOG+WALL
NOTIFYFLAG LOWBATT SYSLOG+WALL
NOTIFYFLAG SHUTDOWN SYSLOG+WALL
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5 |
Итак, мы добавили monitir, формат записи которого следующий:
MONITOR system powervalue username password type |
Значение опций:
- MINSUPPLIES — указываем количество блоков питания которые должны получать мощность сохраняя систему запущенной. Большинство систем имеют один БП. Но мощные сервера, например HP NetServer LH4, могут работать с 2 из 4 БП и ему нужно ставить 2.
- SHUTDOWNCMD — upsmon выполняет эту команду, когда системе необходимо выключить.
- NOTIFYCMD — upsmon отправляет сообщение при происшествиях.
- POLLFREQ — опрос мониторами с частотой (измеряется в секундах) для обычной деятельности. Вы можете отрегулировать это частоту опроса, чтобы upsmon не “зашумлял” вашу сеть, но не вносите слишком большие значения тк. оно может пропустить отключение питания.
- POLLFREQALERT — опрос UPS с частотой в секундах. Можно сделать значение поменьше, чем POLLFREQ для лучшей чувствительности работы батареи.
- HOSTSYNC — как долго upsmon будет ждать перед переходом к следующему upsmon. master upsmon использует это число при ожидании slaves чтобы отключиться после того как он установил флаг принудительное завершение работы (FSD). И если slaves не отключаться после этого тайм аута, то выключение продолжится без них.
- DEADTIME — интервал ожидания перед объявлением статуса UPS как «мертвый». upsmon требует, чтобы UPS предоставлял свою статус информацию, каждые несколько секунд (см. POLLFREQ и POLLFREQALERT). Если статус загрузки, UPS помечен fails. И если оно остается fails более чем DEADTIME секунд, то UPS помечается «мертвый».
- POWERDOWNFLAG — флаг файла для форсирования завершения работы UPS в master системе.
- NOTIFYMSG — изменение сообщения, отправленные upsmon при возникновении определенных событий.
- NOTIFYFLAG — изменение поведения upsmon при возникновении событий NOTIFY.
- RBWARNTIME — предупреждение замены аккумулятора в секундах.
- NOCOMMWARNTIME — предупреждение по времени при не общении к UPS в секундах.
- FINALDELAY — процент батареи, при котором происходит завершение работы системы.
С конфигурационными файлами разобрались. Теперь проверим права на файлы и каталоги. Владельцем /var/db/nut должен быть пользователь uucp, права на выставлены на 0750:
# ls -ld /var/db/nut/
drwxr-x— 2 uucp uucp 512 24 апр 04:50 /var/db/nut/ |
Потом устанавливаем необходимые права на конфигурационные файлы. Условия — пользователь uucp должен иметь доступ на чтение:
# chown uucp:uucp upsd.conf upsd.users upsmon.conf
# chmod 0640 upsd.conf upsd.users upsmon.conf |
Кажется ничего не забыли… Пробуем запустить сервис. Добавляем NUT в /etc/rc.conf и даем команду запуска для сервисов:
# echo ‘### Network UPS Tools’ >> /etc/rc.conf
# echo ‘nut_enable=»YES»‘ >> /etc/rc.conf
# echo ‘nut_upsmon_enable=»YES»‘ >> /etc/rc.conf
# echo ‘nut_upslog_enable=»YES»‘ >> /etc/rc.conf
# /usr/local/etc/rc.d/nut start
Network UPS Tools — UPS driver controller 2.4.1
Network UPS Tools — PowerCom protocol UPS driver 0.12 (2.4.1)
Starting nut.
Network UPS Tools upsd 2.4.1
listening on 195.3.159.250 port 3493
listening on 127.0.0.1 port 3493
Connected to UPS [Powercom]: powercom-Powercom
# sh /usr/local/etc/rc.d/nut_upsmon start
Starting nut_upsmon.
Network UPS Tools upsmon 2.4.1
UPS: Powercom@localhost (master) (power value 1)
Using power down flag file /etc/killpower
# sh /usr/local/etc/rc.d/nut_upslog start
Starting nut_upslog.
Network UPS Tools upslog 2.4.1
logging status of myups@localhost to /var/log/ups.log (300s intervals) |
Кажется все в порядке. На всякий случай, проверим:
# ps -ax | grep nut
85110 ?? Ss 0:01,53 /usr/local/libexec/nut/powercom -a Powercom
# ps -ax | grep ups
90340 ?? Ss 0:00,02 /usr/local/sbin/upsd
90534 ?? Is 0:00,00 /usr/local/sbin/upsmon localhost
90535 ?? S 0:00,00 /usr/local/sbin/upsmon localhost
90551 ?? Is 0:00,00 /usr/local/bin/upslog -s myups@localhost -l /var/log/ups.log -i 300 |
Все замечательно, сервисы запущены, работают и ведутся логи. Теперь подключимся к UPS для проверки его статуса:
# upsc Powercom@localhost
battery.charge: 100.0
driver.name: powercom
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/cuad0
driver.parameter.type: KIN
driver.version: 2.4.1
driver.version.internal: 0.12
input.frequency: 50.07
input.voltage: 234.0
input.voltage.nominal: 220
output.frequency: 50.07
output.voltage: 234.0
ups.load: 22.0
ups.mfr: PowerCom
ups.model: KIN-2200AP
ups.model.type: KIN
ups.serial: Unknown
ups.status: OL |
Вот и отлично, все необходимые параметры снимаются. Для проверки только режима работы UPS можно воспользоваться следующей командой (по аналогии можно запрашивать и другие параметры):
# upsc Powercom@localhost ups.status
OL |
Переменная может принимать следующие значения:
- OL — система работает на линии (on line power)
- OB — система работает от батареи (on battery)
- LB — система работает от севшей батареи (low battery)
Теперь посмотрим монитором:
# upsmon
Network UPS Tools upsmon 2.4.1
UPS: Powercom@localhost (master) (power value 1)
Using power down flag file /etc/killpower |
Когда upsmon необходимо быстро выключить локальную систему, она устанавливает флаг «FSD» (forced shutdown — принудительное отключение) для любых UPS, на котором она выполняется в master режиме. Данная возможность используется и для синхронизации slaves компьютеров в том случае,если master UPS передает событие и всем рассылается сообщение о немедленном прекращении работы.Можно вручную вызвать этот режим на master upsmon, запустив другой экземпляр с флагом ‘-c fsd ‘. Это полезно, когда вы хотите инициировать shutdown перед критическим этапом. Эмулируем падение мощности:
Система должна корректно завершить работу.
upsstats
На этом настройку Network UPS Tools можно считать оконченой. Но есть еще порох в пороховицах, а ягоды в ягодицах! В комплекте с NUT идет web-интерфейс проверки статуса UPS — upsstats. Посмотрим что это за штука.
Скопируем необходимые для работы файлы из предложеных примеров:
# cp upsset.conf.sample upsset.conf
# cp upsstats.html.sample upsstats.html
# cp upsstats-single.html.sample upsstats-single.html
# cp hosts.conf.sample hosts.conf |
В конфигурационный файл apache добавим еще один virtualhost (надеюсь он у вас настроен с поддержкой виртуалхостов):
ServerName powercom.muff.kiev.ua
ServerAdmin apache@muff.kiev.ua
DocumentRoot /usr/local/www/nut/
Options Indexes FollowSymlinks MultiViews +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Alias /cgi-bin/ «/usr/local/www/cgi-bin/»
Order allow,deny
Allow from all
|
Перезапускаем apache, чтобы изменения вступили в силу:
Далее в файле upsset.conf необходимо расскоментировать строку I_HAVE_SECURED_MY_CGI_DIRECTORY:
# cat upsset.conf | grep HAVE
I_HAVE_SECURED_MY_CGI_DIRECTORY |
Потом добавлям наш UPS в список хостов:
# echo ‘MONITOR powercom@localhost «Powercom KIN-2200AP-RM»‘ >> hosts.conf |
Пора проверять, что же у нас получилось в результате. При переходе на ваш адрес, должна отобразится страница Network UPS Tools с вкладками Statistics и Settings.
- Settings – тут вы можете настроит UPS (пользователя берете согласно содержимому upsd.users)
- Statistics – здесь вы можете просмотреть статус вашего UPS, а так же посмотреть текущее состояние в графическом виде.
Добавляю скриншоты того, что у нас получилось.
По материалам : muff.kiev.ua
|