Установка пакета Network UPS Tools
1. создать пользователя и группу с именем "nut";
useradd nut
2. перейти во временную директорию /tmp и скачать пакет Network UPS Tools (далее по тексту — nut);
cd /tmp wget http://dl.fedoraproject.org/pub/epel/6/x86_64/nut-2.6.5-2.el6.x86_64.rpm wget http://dl.fedoraproject.org/pub/epel/6/x86_64/nut-client-2.6.5-2.el6.x86_64.rpm
3. установить данные пакеты, соглашаемся с установкой зависимостей;
yum localinstall nut-2.6.5-2.el6.x86_64.rpm nut-client-2.6.5-2.el6.x86_64.rpm
4. настройка udev.
cp /lib/udev/rules.d/62-nut-usbups.rules /etc/udev/rules.d/
Конфигурационные файлы
Все конфигурационные файлы находятся в директории "/etc/ups".
- ups.conf - настройки NUT для работы с UPS (драйвер/порт/наименование).
- upsd.conf - настройка основного демона upsd Network UPS Tools.
- upsd.users - контроль доступа к UPS демону (профили пользователей).
- upsmon.conf - настройка текущего клиентского агента.
ups.conf
Конфигурация подключенных UPS.
- [ups_name] - это имя используется как адрес вашего UPS. Вы можете его изменить на любое произвольное имя;
- driver - драйвер, используемый для работы с UPS;
- port - порт, на котором висит UPS (для подключения через USB указываете значение "auto"). Для snmp-ups: имя хоста SNMP агента. Для newhidups: значение "auto" для автоматического соединения с USB UPS;
- desc - описание устройства;
- sdorder - необязательный элемент. При наличии нескольких UPS подключенных к этому серверу можно выключать UPS в определенном порядке. используя upsdrvctl к примеру можно выключить все 0s или 1s, 2s и тд. Для исключения последовательной остановки используйте -1;
- nolock - необязательный элемент, его не рекомендуется использовать в его этом конфиге. Он служит для отключения блокировки порта при пользовании утилитой;
- maxstartdelay - необязательный элемент. Может быть, заданна как глобальная переменная выше вашего первого UPS. Это значение определяет, сколько upsdrvctl будет ожидать окончания запуска драйвера. Данная возможность предоставляет стабильность в работе. Значение по умолчанию равно 45 секундам;
- cable - Если драйвер UPS требует дополнительных параметров, вы можете указать их здесь. Не указывайте это значение, если ваше подключение к UPS стандартно.
upsd.conf
Служит для контроля доступа к серверу и для установки других значений конфигурации. Этот файл содержит подробные сведения об предоставления доступа, таким образом, обеспечивается безопасность. В идеальном случае, только процесс upsd должен иметь возможность прочитать данные из этого файла.
- MAXAGE - по умолчанию 15 секунд. Это частота обновления данных клиентов после остановки драйвера UPS. Следует использовать другое значение только в том случае, если у вас трудности с обновлением данных;
- LISTEN address port - здесь указывается IP адрес и порт 3493 (по умолчанию) для прослушивания подключений;
- MAXCONN connections - по умолчанию используется 1024 подключений. Каждый UPS, каждого LISTEN адреса и каждого клиента считается как одно подключение. Если на сервере заполнятся количество подключений, он больше не будет принимать новых входящих клиентских подключений.
upsd.users
Контроль доступа для UPS демона (профили пользователей). Именно в этом файле вы указываете, кто и в какой мере будет работать с NUT.
- [NAME] - имя пользователя;
- password - пароль пользователя;
- actions - возможность настройки см ниже;
- instcmds - выполняемые команды см ниже;
- upsmon - вид подключения клиентов см ниже.
Каждый UPS монитор может определяться как один из трех возможных типов:
upsmon master - полные полномочия управлением питания подключенных к системе. UPS под управлением этого upsmon и отвечает за выключение разряженного аккумулятора. Выключение происходит после безопасного выключения всех slave мониторов. Если ваш UPS подключен непосредственно к системе через последовательный порт, то для upsmon этой системы следует определить его как master.
upsmon slave - эта система, под управлением upsmon master и она не выключается непосредственно. Операционная система будет выключена перед отключением питания master. Используйте этот режим при запуске монитора на других серверах работающих на том же UPS. И очевидно, что только один сервер может быть подключен к последовательному порту на UPS, коим будет является master. Все остальные сервера будут slave.
upsmon monitor-only - при этом режиме будут создаваться уведомления о состоянии или изменении работы батареи, переключении на линию и т.д., но не будет завершать работу системы.
actions - Действия пользователя с применением upsd.
- SET - изменить значения определенных переменных в UPS;
- FSD - установка флага "принудительного выключения" для UPS/
instcmds - разрешения пользователю на инициирование конкретных команд. Применяя "ALL" вы разрешаете использовать все команды, Существует множество команд выполните "upscmd -l <имя UPS в настройках>" чтобы увидеть, что ваше оборудование поддерживает. Вот, к примеру, несколько команд.
- test.panel.start - старт теста передней панели
- test.battery.start - старт теста батареи
- test.battery.stop - остановка теста батареи
- calibrate.start - запуск калибровки батареи
- calibrate.stop - остановка калибровки батареи
upsmon.conf
Этот конфигурационный файл предоставляет основные функции в программе мониторинга UPS, например это безопасное завершений работы при сбое питания, уведомления и другие переменные. В многоуровневой схеме утилиты NUT это клиент.
- MINSUPPLIES - указываем количество блоков питания которые должны получать мощность сохраняя систему запущенной. Большинство систем имеют один БП. Но дорогие сервера, например HP NetServer LH4 могут работать с 2 из 4 БП и ему нужно ставить 2;
- SHUTDOWNCMD - 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 помечается «мертвый». Выставляйте значение этой переменной в несоклько (в три раза пойдет) раз больше чем POLLFREQ и POLLFREQALERT;
- POWERDOWNFLAG - флаг файла для форсирования завершения работы UPS в master системе;
- NOTIFYMSG - изменение сообщения, отправленные upsmon при возникновении определенных событий;
- NOTIFYCMD - upsmon отправляет сообщение при происшествиях;
- NOTIFYFLAG - изменение поведения upsmon при возникновении событий NOTIFY;
- RBWARNTIME - предупреждение замены аккумулятора в секундах;
- NOCOMMWARNTIME - предупреждение по времени при не общении к UPS в секундах;
- FINALDELAY - через сколько выполнить SHUTDOWNCMD.
Что нужно знать перед настройкой UPS
TODO Дописать.
Пример настройки nut
1. переводим демон в синглмод;
vim /etc/ups/nut.conf: далее изменяем переменную MODE = standalone
2. добавляем UPS;
vim /etc/ups/ups.conf добавляем строки [apces700] driver = usbhid-ups desc = "Black-UPS ES 700" bus = "004" port = "005" vendorid = 051d productid = 0002
3. устанавливаем IP и порт, на катором демон, будет принимать данные о состоянии UPS;
vim /etc/ups/upsd.conf добавляем строки LISTEN 127.0.0.1 3493
4. добавлеям пользователя, от имени данного пользователя будет производтся мониторинг и отправка команд в систему;
useradd monuser passwd monuser запоминаем/записываем и вводм password
5. добавляем созданного пользователя в настройки;
vim /etc/ups/upsd.users добавляем строки [monuser] password = monpassword actions = SET instcmds = ALL upsmon master
6. устанавливаем основные настройки nut;
vim /etc/ups/upsmon.conf добавляем строки MONITOR myups@localhost 1 monuser monpassword master MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 0
7. запускаем демон;
service ups start
8. добавляем демон в автозагрузку;
chkconfig --level 35 ups on
9. проверяем состаяние UPS.
upsc myups@localhost
будет дописываться.
Использовались материалы со сторонних ресурсов:
http://www.ignix.ru/book/freebsd/daemon/network_ups_tools
http://redhat-club.org/2011/настройка-nut-2.4.3-с-ups-eaton-env-в-rhel-centos-6
Служебная информация
Вероятное местоположение информации о типах используемых кабелей для подключения
./app/base/usr/local/lib/nut/docs/images/cables
./app/base/usr/local/lib/nut/docs/cables
./usr/share/doc/nut-2.6.5/docs/cables
./usr/share/doc/nut-2.6.5/docs/images/cables