Наконец-то установил более-менее приличный UPC в стойку (Powercom KIN-2200AP-RM). Быстренько прицепил его COM-портом к серверу, и начал искать софтину, которая умела бы с ним работать. Выбор остановил на NUT - набор утилит, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS.
Устанавливать будем, конечно же, из портов:
# cd /usr/ports/sysutils/nut && make install clean && rehash |
Мой набор опций оказался следующим:
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 |
Далее необходимо определиться, какой драйвер будет использоваться для данного UPS:
# cat /usr/local/etc/nut/driver.list | grep Powercom "Powercom" "SMK" "" "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 |
Более детально о каждой из опций:
Допускается использование дополнительных опций, исходя из специфики оборудования (необходимо смотреть маны по конкретно используемому драйверу). В моем случае не совпадал тип с тем, который используется по умолчанию, соответственно пришлось конкретизировать. Значения по умолчанию для драйвера Powercom:
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] [monslave] |
Теперь более подробно о доступных опциях.
Значения:
Каждый UPS монитор может определяться как один из трех возможных типов:
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 |
Значение опций:
С конфигурационными файлами разобрались. Теперь проверим права на файлы и каталоги. Владельцем /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 |
Кажется все в порядке. На всякий случай, проверим:
# ps -ax | grep nut |
Все замечательно, сервисы запущены, работают и ведутся логи. Теперь подключимся к 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 |
Переменная может принимать следующие значения:
Теперь посмотрим монитором:
# 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 перед критическим этапом. Эмулируем падение мощности:
# upsmon -c fsd |
Система должна корректно завершить работу.
upsstats
На этом настройку Network UPS Tools можно считать оконченой. Но есть еще порох в пороховицах, а ягоды в ягодицах! . В комплекте с NUT идет web-интерфейс проверки статуса UPS - upsstats. Посмотрим что это за штука.
Скопируем необходимые для работы файлы из предложеных примеров:
# cp upsset.conf.sample upsset.conf |
В конфигурационный файл apache добавим еще один virtualhost (надеюсь он у вас настроен с поддержкой виртуалхостов):
<VirtualHost *:80>
ServerName powercom.muff.kiev.ua
ServerAdmin apacheapache [at] muff [dot] kiev [dot] ua (@muff.kiev.ua) DocumentRoot /usr/local/www/nut/
<Directory /usr/local/www/nut> Options Indexes FollowSymlinks MultiViews +ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> Alias /cgi-bin/ "/usr/local/www/cgi-bin/"
<Directory /usr/local/www/cgi-bin/nut>
Order allow,deny Allow from all </Directory> </VirtualHost>
|
Перезапускаем apache, чтобы изменения вступили в силу:
# apachectl graceful |
Далее в файле 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.
Добавляю скриншоты того, что у нас получилось.
Дополнительные возможности:
Используемые материалы:
а почему не указываете
а почему не указываете автора? Не красиво!! (с) Raven2000 http://www.lissyara.su/articles/freebsd/programms/network_ups_tools/
Извините, но автором даной
Извините, но автором даной статьи считаю все таки себя.
А ссылки на используемые материалы добавил.
Re: а почему не указываете
попробуйте по указанной статье настроить веб морду. эта статья - опыт настройки конкретного упса
а есть опыт настройки
а есть опыт настройки powercom usb?
у меня так и не получилось =(
Через USB стараюсь по
Через USB стараюсь по возможности не включать. По привычке использую RS-232. Так что пока нету такого опыта.
# echo 'MONITOR
не совсем ясно где находится этот hosts.conf
Все конфигурационные файлы
Все конфигурационные файлы находятся в /usr/local/etc/nut/
Вопрос возник, недавно
Вопрос возник, недавно батарея сдохла на UPS, и он когда она полностью села, выключился, а комп выдал разок предупреждение в консоль low battery и продолжил работать. Как его заставить выключаться при севшей батарее, но наличии сети?
Немножко не понял вопрос...
Немножко не понял вопрос... Как мог работать компьютер, если УПС выключился?
Предлагаю перенести вопрос на форум. Спасибо.