Просмотр Исходного

h4. Установка пакета Network UPS Tools

1. создать  пользователя и группу с именем "nut";


{code}useradd nut
{code}
2. перейти во временную директорию /tmp и скачать пакет Network UPS Tools (далее по тексту --- *nut*);

{code}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{code}
3. установить данные пакеты, соглашаемся с установкой зависимостей;


{code}yum localinstall nut-2.6.5-2.el6.x86_64.rpm nut-client-2.6.5-2.el6.x86_64.rpm{code}
4. настройка udev.


{code}cp /lib/udev/rules.d/62-nut-usbups.rules /etc/udev/rules.d/{code}

h4.
----
h4. Конфигурационные файлы

Все конфигурационные файлы находятся в директории "*/etc/ups*".
* *ups.conf* \- настройки *nut* для работы с UPS (драйвер/порт/наименование).
* *upsd.conf* \- настройка основного демона *upsd* Network UPS Tools.
* *upsd.users* \- контроль доступа к UPS демону (профили пользователей).
* *upsmon.conf* \- настройка текущего клиентского агента.

h5. 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 стандартно.

h5. upsd.conf

Служит для контроля доступа к серверу и для установки других значений конфигурации. Этот файл содержит подробные сведения об предоставления доступа, таким образом, обеспечивается безопасность. В идеальном случае, только процесс *upsd* должен иметь возможность прочитать данные из этого файла.

* *MAXAGE* \- по умолчанию 15 секунд. Это частота обновления данных клиентов после остановки драйвера UPS. Следует использовать другое значение только в том случае, если у вас трудности с обновлением данных;
* *LISTEN address port* \- здесь указывается IP адрес и порт 3493 (по умолчанию) для прослушивания подключений;
* *MAXCONN connections* \- по умолчанию используется 1024 подключений. Каждый UPS, каждого LISTEN адреса и каждого клиента считается как одно подключение. Если на сервере заполнятся количество подключений, он больше не будет принимать новых входящих клиентских подключений.

h5. 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&nbsp; <имя UPS в настройках>*" чтобы увидеть, что ваше оборудование поддерживает. Вот, к примеру, несколько команд.
* test.panel.start - старт теста передней панели
* test.battery.start - старт теста батареи
* test.battery.stop - остановка теста батареи
* calibrate.start - запуск калибровки батареи
* calibrate.stop - остановка калибровки батареи

h5. 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.

----
h4. Что нужно знать перед настройкой UPS

Если только собираетесь покупать UPS, то рекомендуется ознакомится со списком совместимости *nut* --- [http://www.networkupstools.org/stable-hcl.html] в фильтре указать интересующие параметры.
!fully_suported.png|border=1!
1. ознакомится со списком максимально совместимых UPS;

2. определить тип подключения UPS. Это может быть USB, COM, Ethernet, other. Определить можно по спецификации UPS в инструкции пользователя, и/или визуально, при наличии необходимых знаний;

3. если UPS один и подключается через USB (а так же максимально совместим с *nut*), то в настройках можно указать порт как *"auto"*;

4. если UPS не один, *nut* не может определить порт в режиме "auto", или тип подключения не через USB, то нужно выяснить порт, через который произведено подключение UPS;

5. найти драйвер для вашего UPS по ссылке --- [http://www.networkupstools.org/ddl/] находите модель UPS и смотрите строку *driver.name*;

6. если UPS в единственном числе и подключен на прямую к серверу, то нужно использовать standalone мод, если же схема другая (UPS подключен не напярмую, несколько ups), то *nut* нужно сконфигурировать под данную схему, обращайтесь в тех. поддержу;


----
h4. Пример настройки nut

1. указываем *nut*, то UPS один и подключен на прямую к серверу ;
{code}vim /etc/ups/nut.conf:
— далее изменяем переменную
MODE = standalone{code}
2. добавляем UPS (в качестве примера был выбран APC Black-UPS ES 700);
{code:lang=actionscript}vim /etc/ups/ups.conf
— добавляем строки
[apces700]
driver = usbhid-ups
desc = "Black-UPS ES 700"
bus = "004"
 port = "005"
vendorid = 051d
productid = 0002{code}


3. устанавливаем IP и порт, на котором демон, будет принимать данные о состоянии UPS;
{code}vim /etc/ups/upsd.conf
— добавляем строки
LISTEN 127.0.0.1 3493{code}
4. добавлеям пользователя, от имени данного пользователя будет производится мониторинг и отправка команд в систему;
{code}useradd <имя_пользователя>
passwd <имя_пользователя>
запоминаем/записываем и вводм password{code}
5. добавляем созданного пользователя в настройки;
{code}vim /etc/ups/upsd.users
— добавляем строки
[<имя_пользователя>]
password = <ваш пароль>
actions = SET
instcmds = ALL
upsmon master{code}
6. устанавливаем основные настройки *nut*;
{code:lang=actionscript}vim /etc/ups/upsmon.conf
— добавляем строки
MONITOR <имя_UPS>@localhost 1 <имя пользователя> <ваш пароль> 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{code}
7. запускаем демон;
{code}service ups start{code}
8. добавляем демон в автозагрузку;
{code}chkconfig --level 35 ups on{code}
9. проверяем состояние UPS.
{code}upsc myups@localhost{code}

h3. {color:#ff9900}будет дописываться{color}
----
Использовались материалы со сторонних ресурсов:


[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|http://redhat-club.org/2011/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-nut-2.4.3-%D1%81-ups-eaton-env-%D0%B2-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