Настройка мониторинга UPS

Тут описывается нелёгкий путь настройки ОС FreeBSD, начиная с установки дистрибутива и заканчивая настройкой каждого сервиса
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Настройка мониторинга UPS

Сообщение RomA »

У всех нас есть один бесперебойник и много серверов... по логике вещей бесперебойник может колректно выключить только один сервер - остальные упадут некорректно... Эту проблемы мы и бедем решать

Сначало подключаем наш бесперебойник комовским кабелем к юниксовому серверу, после чего начинаем настройку последнего

Код: Выделить всё

cd /usr/ports/sysutils/nut
                                                                                ┌────────────────────────────────────────────────────────────────────┐
                                                                                │                     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                    │ │  
                                                                                │ │                                                                │ │  
                                                                                │ │                                                                │ │  
                                                                                │ │                                                                │ │  
                                                                                │ │                                                                │ │  
                                                                                │ │                                                                │ │  
                                                                                │ │                                                                │ │  
                                                                                │ │                                                                │ │  
                                                                                ├─└────────────────────────────────────────────────────────────────┘─┤  
                                                                                │                       [  OK  ]       Cancel                        │  
                                                                                └────────────────────────────────────────────────────────────────────┘  
                                                                                                                                                        

Теперь приступаем к настройкам

Код: Выделить всё

cp /usr/local/etc/nut/ups.conf.sample /usr/local/etc/nut/ups.conf
после чего пишем в этот файл следующее, убирая все то, что там есть

Код: Выделить всё

[APC]
driver = apcsmart
port = /dev/cuau0
cable = 940-0024C
desc = "APC Smart-UPS 3000VA"
Идем дальше

Код: Выделить всё

cp /usr/local/etc/nut/upsd.conf.sample /usr/local/etc/nut/upsd.conf
и в него добавляем наши ИП адреса

Код: Выделить всё

LISTEN 127.0.0.1
LISTEN 192.168.34.2 
Дальше

Код: Выделить всё

cp /usr/local/etc/nut/upsd.users.sample /usr/local/etc/nut/upsd.users
и туда наши строки для клиентов. клиентов 3 группы - названия говорят сами за себя

Код: Выделить всё

[admin]
password = admin
actions = SET
instcmds = ALL

[monmaster]
password = bsd
upsmon master

[monslave]
password = win2k3
upsmon slave
Теперь конфиг

Код: Выделить всё

cp /usr/local/etc/nut/upsmon.conf.sample /usr/local/etc/nut/upsmon.conf
Тут у нас есть параметры - просто в конец не добавим - ищем нужные секции и добавляем туда это... остальное все по умолчанию

Код: Выделить всё

MONITOR APC@localhost 1 monmaster bsd master
NOTIFYFLAG ONLINE      SYSLOG+WALL
NOTIFYFLAG ONBATT      SYSLOG+WALL
NOTIFYFLAG LOWBATT     SYSLOG+WALL
NOTIFYFLAG SHUTDOWN    SYSLOG+WALL
далее

Код: Выделить всё

cp /usr/local/etc/nut/upsset.conf.sample /usr/local/etc/nut/upsset.conf
туда всего одну строчку

Код: Выделить всё

I_HAVE_SECURED_MY_CGI_DIRECTORY
После чего создаем нужные директории, раздаем права и так далее

Код: Выделить всё

cd /usr/local/etc/nut/
chown uucp:wheel upsd.conf upsd.users upsmon.conf upsset.conf
chmod 0640 upsd.conf upsd.users upsmon.conf upsset.conf
cp upsstats-single.html.sample upsstats-single.html
cp upsstats.html.sample upsstats.html
cp hosts.conf.sample hosts.conf
причем в последний добавляем MONITOR APC@localhost "Local UPS"
Дальше разрешаем автозапуск добавляя в rc.conf следующее

Код: Выделить всё

nut_upslog_enable="YES"
nut_upsmon_enable="YES"
nut_enable="YES"
после чего пробуем запустить

Код: Выделить всё

[khk:local/etc/rc.d]# ./nut start
Network UPS Tools - UPS driver controller 2.4.1
Network UPS Tools - APC Smart protocol driver 2.00 (2.4.1)
APC command table version 2.0
Detected Smart-UPS 3000 RM XL [JS0809019489] on /dev/cuau0
Starting nut.
Network UPS Tools upsd 2.4.1
listening on 192.168.34.2 port 3493
listening on 127.0.0.1 port 3493
Connected to UPS [APC]: apcsmart-APC
[khk: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)
[khk:local/etc/rc.d]# ./nut_upsmon start
Starting nut_upsmon.
Network UPS Tools upsmon 2.4.1
UPS: APC@localhost (master) (power value 1)
Using power down flag file /etc/killpower

[khk:local/etc/rc.d]#   
Вроде как получилось - наверное есть смымл посмотреть на что-то красивое - идем по адресу http://192.168.34.2/cgi-bin/upsstats.cgi и лицезреем вебмордочку всего этого счастья

Ну и в заключении - данный пост написан по мотивам вот этой статьи в интернете http://www.lissyara.su/articles/freebsd ... ups_tools/ - там все расжовано гораздо лучше и смысла повторяться нету. потому обязательно читаем все что там пишут.

Кста - там описана прога для виндовых серверов - она полностью работоспособна - качаем и настраиваем.

PS:
1) Все сервера должны выключаться бесперебойником - так что настраиваем и ставим
2) В 8 фре изменилось название компорта
3) С usb шнуром настроить с ходу не получилось на 7 фре - мож уже что и поменялось
Scorp
Сообщения: 22
Зарегистрирован: 16 янв 2009, 14:19

Re: Настройка мониторинга UPS

Сообщение Scorp »

Добавлю по виндовому серверу, может кому то пригодится, т.к. нам нужно что-бы upsclient был загружен всегда и грузился вместе с сервером, а не при заходе пользователя на сервер, то папка "Автозагрузка" нам не подходит, я решил для себя добавив в Назначеные задания - "Выполнять при загрузке компьютера" (естественно галочку "Выполнять только при выполненном входе в систему" мы не ставим). При этом он будет в памяти всегда и выключит вовремя наш сервер.

По настройке хотелось бы обратить внимание, что наш freebsd сервак отключается при достижении батареи 5%, то на винде я поставил 10%.
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Подключение UPS через USB-шнур

Сообщение RomA »

Рано или поздно всем приходится столкнуться с тем, что com-порт один, а устройств, хотящих на нем посидеть много... Вот и я на очередном сервера столкнулся с том, что к com-порту подключена местная miniATC, в связи с чем мониторинг бесперебойника пришлось вешать на USB-порт. Потратил я на это полдня, но итог есть - все заработало. Итак, что же я делал.

Для установки я воспользовался своей же статьёй, только на самом первом экране я убрал сериал и включил usb

Код: Выделить всё

┌────────────────────────────────────────────────────────────────────┐
                      │                     Options for nut 2.4.1_4                        │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │               [X] SERIAL  SERIAL support                       │ │  
                      │ │               [X] USB     USB support                          │ │  
                      │ │               [X] SNMP    SNMP support                         │ │  
                      │ │               [X] NEON    NEON XML/HTTP support                │ │  
                      │ │               [X] PDU     Powerman PDU support                 │ │  
                      │ │               [X] HAL     HAL support                          │ │  
                      │ │               [ ] IPV6    IPV6 support                         │ │  
                      │ │               [X] CGI     Web CGI interface                    │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘
                      ┌────────────────────────────────────────────────────────────────────┐
                      │                    Options for gd 2.0.35_7,1                       │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │[ ] X11         X11 support                                     │ │  
                      │ │[ ] XPM         XPM color bitmap loading support (requires X11) │ │  
                      │ │[ ] FONTCONFIG  fontconfig library support (requires X11)       │ │  
                      │ │[X] ICONV       iconv support                                   │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  
                      ┌────────────────────────────────────────────────────────────────────┐
                      │                     Options for hal 0.5.14_9                       │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │          [ ] FIXED_MOUNTPOINTS  use fixed mountpoints          │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                  Options for docbook-xsl 1.75.2                    │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │             [X] ECLIPSE       Eclipse modules                  │ │  
                      │ │             [X] EPUB          Epub modules                     │ │  
                      │ │             [X] EXTENSIONS    Extensions                       │ │  
                      │ │             [X] FO            XSL-FO modules                   │ │  
                      │ │             [X] HIGHLIGHTING  highlighting modules             │ │  
                      │ │             [X] HTML          HTML modules                     │ │  
                      │ │             [X] HTMLHELP      HTML Help modules                │ │  
                      │ │             [X] JAVAHELP      Java Help modules                │ │  
                      │ │             [X] MANPAGES      Manpage modules                  │ │  
                      │ │             [X] PROFILING     Profiling modules                │ │  
                      │ │             [X] ROUNDTRIP     Roundtrip modules                │ │  
                      │ │             [X] SLIDES        Slides modules                   │ │  
                      │ │             [X] TEMPLATE      Templates                        │ │  
                      │ │             [X] TESTS         Test tools                       │ │  
                      │ │             [X] TOOLS         Tools                            │ │  
                      ├─└─────────────────v(+)───────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

Дальше он спрашивал много чего, я пости все отвечал "по умолчанию". Единственно что следил за тем, что бы всегда были выключены всякие IPv6 а так же всякие зависимости от X11, ибо хлама на сервере иметь не хотелось. Ставилось долго, но все поставилось.
Конфиги я взял тоже полностью с предыдущей статьи - менял только один файл /usr/local/etc/nut/ups.conf

Код: Выделить всё

[APC]
driver = usbhid-ups
port = /dev/usb/0.2.0
desc = "APC Smart-UPS 3000VA"
Это то, что касается настройки самой программы, и отличия от предыдущей статьи.
Теперь что касается самой операционной системы - её тоже надо править. Итак по порядку.
Когда я подключил бесперебойник он мне сказал в /var/log/messages что он ugen0.2: <American Power Conversion> at usbus0 - дальше я пошел в /dev/ и посмотрел на что ссылается ugen0.2 - этот путь и прописал в конфиге nut. Вы можете прописать ugen0.2 и не париться - это я уже от безысходности делал :-)
После многих танцев с бубнами у меня все заработало при следующих настройках системы:

Код: Выделить всё

cp /etc/defaults/devfs.rules /etc/devfs.rules
В конец /etc/devfs.conf добавляем

Код: Выделить всё

perm    usb1    0660
own    usb1    root:uucp
в конец /etc/devfs.rules добавляем

Код: Выделить всё

[nut_usb=10]
add path 'ugen0' group wheel user uucp mode 0660
add path 'usb/*' mode 0600 user uucp
в конец /etc/rc.conf добавляем

Код: Выделить всё

hald_enable="YES"
dbus_enable="YES"
usbd_enable="YES"
devfs_system_ruleset="nut_usb"
После чего в моём случаем спасла только полная перезагрузка сервера, после которой все и заработало нормально.
Ещё раз повторюсь что эта статья описывает всего лиш различия от первой статьи, при подключении ИБП через USB-кабель - во всем остальном первая статья является актуальной
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Включение web-интерфейса

Сообщение RomA »

В первой статье я как-то опустил описание настройки вебморды всего этого счастья, а она существует... Хотя отсутствие интереса и вопросов говорит о том, что вым это и не нужно, но тем не менее опишу этот процесс, авось кому нить еще из потомков понадобится. Итак, наша задача поднять графическую морду мониторинга УПС, что бы наглядно видеть что же там на сервере происходит.
Для начала нам надо скопировать файлы в директорию апача, что бы он их отобразил на вебе

Код: Выделить всё

cp -R /usr/local/www/cgi-bin/nut /usr/local/www/apache22/cgi-bin/nut
В файл /usr/local/etc/nut/hosts.conf добавляем

Код: Выделить всё

MONITOR APC@localhost 1 monmaster bsd master
Теперь можно и посмотреть на то, что же у нас получилось, для этого переходим по ссылке http://ВАШ_СЕРВЕР/cgi-bin/nut/upsstats.cgi И наслаждаемся увиденным :-)

Полдела есть - насладились результатом, и теперь доведем это до ума. У нас еще есть один каталог, который нам надо скопировать, что бы все это обрело более удобочитаемый вид. Этот каталог я копирую в один из своих вертуальных хостов, дабы бы все было красиво, потому у вас эти пути будут отличаться...

Код: Выделить всё

cp /usr/local/www/nut /usr/home/www/stat/nut
Теперь я захожу на http://stat.stniva.ru/nut/ (у вас же опять будет отличаться) и вижу страничку своего бесперебойника в более красивом формате :-)
Теперь мы наглядно видим на сколько у нас хватит бесперебойника, какое входящее напряжение и еще много интересных параметров
Но у нас еще осталась страничка управления, которая сейчас не работает... будем лечить

Код: Выделить всё

chmod 0644 /usr/local/etc/nut/upsset.conf
И ограничиваем доступ к этой странички, дабы кто нить нечайно не переконфигурировал удаленно наш ИБП - как это сделать написано в этом же файле...
Вот после таких нехитрых манипуляций у меня все заработало "малой кровью"

Но у такого решения есть и минусы - как-то все получилось раскидано по системе, плохо контролируемо, непонятно для потомков, не обновляемо... потому я все это дело немного причесал. Основная идея была такая - сделать все каталоги симлинками, что бы при обновлении не пришлось опять копировать, и свести на один и уже имеющийся хост, где и будет осуществляться за одно контроль доступа. Дальше я буду приводить только команды, которые я выполнял, без их подробного описания, ибо итак все понятно.
Удаляем то что наделали выше:

Код: Выделить всё

rm -R /usr/local/www/apache22/cgi-bin/nut
rm -R /usr/home/www/stat/nut
Дальше симлинки нужные нам для работы

Код: Выделить всё

ln -s /usr/local/www/nut /usr/home/www/stat/nut
ln -s /usr/local/www/cgi-bin/nut /usr/home/www/stat/nut/nut
Для защиты мы создаем файлик touch /usr/home/www/stat/nut/.htaccess следующего содержания

Код: Выделить всё

<Files upsset.cgi> 
deny from all 
allow from 192.168.1.42 
</Files>
Ну и на последок правим в конфиге апача нужный нам виртуалхост, добавляя туда следующее

Код: Выделить всё

   
  <Directory "/usr/home/www/stat/nut/">
        AllowOverride All
        Order allow,deny
        Allow from all
        Options Indexes FollowSymlinks MultiViews +ExecCGI
        AddHandler cgi-script .cgi
   </Directory>
        AccessFileName .htaccess
ScriptAlias /cgi-bin/ "/usr/home/www/stat/nut/"
Вложения
Переменные
Переменные
6.jpg (184.36 КБ) 12970 просмотров
Параметры управления
Параметры управления
5.jpg (127.34 КБ) 12970 просмотров
Авторизация
Авторизация
4.jpg (87.76 КБ) 12970 просмотров
листинг параметров
листинг параметров
3.jpg (234.67 КБ) 12971 просмотр
Полная информация
Полная информация
2.jpg (360.64 КБ) 12971 просмотр
Краткая информация
Краткая информация
1.jpg (86.46 КБ) 12971 просмотр
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Поключение к системе мониторинга Zabbix

Сообщение RomA »

В предыдущих примерах мы проделали следующие действия:
1) подключили ИБП к серверу - теперь сервер будет выключаться бесперебойником
2) настроили систему удаленого администрирования - мы можем управлять выключение других компьютеров
3) подключили к нашей системе другие компьюторы - теперь они тоже выключатся корректно

В этой статье мы рассмотрим как подключить наш бесперебойник к систему мониторинга Zabbix. Нужно это для того, что бы понимать что происходит в системе, оперативно вмешиваться в происходящее. Плюс данные, которые мы получали в предыдущих статьях, негде не хранятся, то есть когда что нить случится мы не сможем узнать что же было причиной этого происшествия. Следовательно нам надо хранить все данные, которые нам могут так или иначе понадобится для разбирательств. Посмотрим что нам вообще показывает система:

Код: Выделить всё

stat# upsc APC@localhost 
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.mfr.date: 2007/11/14
battery.runtime: 2340
battery.runtime.low: 120
battery.temperature: 15.7
battery.type: PbAc
battery.voltage: 54.8
battery.voltage.nominal: 48.0
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/usb/0.2.0
driver.version: 2.4.1
driver.version.data: APC HID 0.93
driver.version.internal: 0.34
input.voltage: 201.6
output.voltage: 233.2
output.voltage.nominal: 230.0
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.firmware: 691.16.I
ups.firmware.aux: 7.3
ups.load: 44.8
ups.mfr: American Power Conversion
ups.mfr.date: 2007/11/14
ups.model: Smart-UPS 3000 RM XL
ups.productid: 0002
ups.serial: JS0746005771
ups.status: OL
ups.test.result: No test initiated
ups.timer.reboot: -1
ups.timer.shutdown: -1
ups.vendorid: 051d
Из свего вышеперечисленного меня заинтересовали следующие параметры:
1) Входящее напряжение из сети электропитания
2) Исходящее напряжение - то что попадает в мои сервера
3) Температура батарейки - пригодится когда батареи начнут ёмкость терять
4) Загрузка бесперебойника - это на всякий случай, если вдруг коротыш поймаю где
Остальные данные мне показались не интересными для хранения - их всегда можно оперативно посмотреть на странички с предыдущей стратьи.

Начнем настраивать... В файл /usr/local/etc/zabbix/zabbix_agentd.conf добавляем строки

Код: Выделить всё

#####
# UPS APC
#####
UserParameter=ups.in,upsc APC@localhost | grep 'input' | cut -f2 -d" "
UserParameter=ups.out,upsc APC@localhost | grep 'output.voltage:' | cut -f2 -d" "
UserParameter=ups.temp,upsc APC@localhost | grep 'battery.temperature' | cut -f2 -d" "
UserParameter=ups.load,upsc APC@localhost | grep 'ups.load' | cut -f2 -d" "
#####
Перезапускам агента и идем в вебморду Zabbix-сервера. Там создаем новый узел, элементы данных, тригеры на пропадаение входящего напряжения, графики и наслаждаемся полученным результатом.
Вложения
Настройки узла
Настройки узла
2.jpg (138.15 КБ) 12964 просмотра
Графики
Графики
6.jpg (125.64 КБ) 12964 просмотра
Тригеры
Тригеры
4.jpg (80.12 КБ) 12967 просмотров
Элементы данных
Элементы данных
3.jpg (139.89 КБ) 12967 просмотров
Наш хост
Наш хост
1.jpg (38.13 КБ) 12968 просмотров
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Подключение нескольких одинаковых ИБП к одному серверу

Сообщение RomA »

Так сложилось, что у меня на один сервер сходяится контроль нескольких ИБП. Когда они разные - это уживается нормально, но вот попались 2 одинаковых, и система начала их путать. Пришлось идентифицировать их по серийным номерам :-)
Файл ups.conf у меня выглядит так

Код: Выделить всё

[APC500]
driver = usbhid-ups
port = "ugen0.5"
serial = 3B1016X49208
desc = "APC Back-UPS ES-500"
[APC700]
driver = usbhid-ups
port = "ugen0.4"
serial = 5B0820T49974
desc = "APC Back-UPS ES-700"
Ну а дальше всё как оыбчно - в файле upsmon.conf они прописаны просто как разные ИБП

Код: Выделить всё

MONITOR APC500@localhost 1 monmaster bsd master
MONITOR APC700@localhost 1 monmaster bsd master
Вроде как мелочь, а времени потратил дофига
Ответить