FreeBSD: подключение UPS
Сегодня расскажу о том, как подключить UPS APC Smart 750 к FreeBSD. Основная задача — мониторинг состояния UPS, уведомление администратора о его работе, а так же корректное завершение работы сервера при пропадании питания и разрядке бесперебойника.
Как известно, Смарты имеют два интерфейса для подключения к компьютеру: USB и COM специфический свой, распайку com-кабеля без труда найдёте в Интернете. Так как на сервере у меня нету COM-а, то единственный выход остался подключение к usb. Не лишним будет напомнить, что поддержка usb должна быть включена в ядро.
Итак, начнём. Для начала надо бы узнать, видит ли наша система этот самый UPS. Для этого выполним следующее:
# dmesg | grep usb
Среди прочего можно заметить строчку:
ugen0.2: <American Power Conversion> at usbus0
Это говорит о том, что сервер увидел наш УПС и мы можем дальше работать с ним. Так как у меня Smart UPS, то и использовать буду соответствующее приложение: sysutils/apcupsd из портов. Сборка происходит как обычно при установке портов. Единственное, покажу свой конфиг:
# make showconfig
===> The following configuration options are available for apcupsd-3.14.5_1:
APCSMART_DRV=off «Compile APC SmartUPS serial driver»
APCDUMB_DRV=on «Compile dumb UPS driver»
CLIENT_ONLY=off «Only NIS client (no network server or drivers)»
CGI=on «Compile with CGI programms to show status»
PCNET_DRV=on «Compile PowerChute Network Shutdown driver»
USB=on «Compile with USB Support driver»
SNMP_DRV=off «Compile with SNMP driver»
TCP_WRAPPERS=on «Compile with TCP_WRAPPERS support»
TEST_DRV=off «Compile TEST driver»
GAPCMON=off «Build GTK GUI front-end»
===> Use ‘make config’ to modify these settings
Как видите, я собрал только с поддержкой USB, без COM. Так же я отключил snmp-драйвер, т.к. с ним у меня почему-то отказался собираться. Дальше всё как обычно:
# make install clean
Если всё прошло удачно, без ошибок, то можно считать, почти всё готово. Осталось только немножко сконфигурировать работу apcupsd и запустить его! (-:
Конфигурация, как не сложно догадаться, задаётся файлом apcupsd.conf из /usr/local/etc/apcupsd/. Этот файл достаточно хорошо комментирован, я остановлюсь только на некоторых опциях:
UPSNAME — как он будет называться у вас, вернее, как Вы хотите его назвать.
UPSCABLE usb - способ подключения UPS к компьютеру, в моём случае — usb
UPSTYPE usb
DEVICE — всё сделано в соответствии с рекомендациями: тип — usb, для опции DEVICE поле оставить пустым
BATTERYLEVEL 5 — остаток от заряда батарей, в процентах, когда произойдёт выключение сервера
MINUTES 3 — если по оценке системы работы UPS хватит меньше чем на 3 минуты, то опять же произойдёт выключение системы.
Стоит отметить, что какое из событий — BATTERYLEVEL или MINUTES — наступит раньше, то и будет выполнено. В любом случае, компьютер выключится корректно.
Последний штрих — это необходимо добавить старт apcusbd при старте системы. Для этого добавим в /etc/rc.conf следующее: apcupsd_enable=»YES»
Пришло время проверить, работает ли вся система. Для этого выполним следующее:
# apcaccess status
APC : 001,042,1037
DATE : Mon Mar 15 12:34:07 EET 2010
HOSTNAME : none.com.ua
RELEASE : 3.14.5
VERSION : 3.14.5 (10 January 2009) freebsd
UPSNAME : Smart UPS 750
CABLE : USB Cable
MODEL : Smart-UPS 750
UPSMODE : Stand Alone
STARTTIME: Mon Mar 15 11:53:07 EET 2010
STATUS : ONLINE
LINEV : 210.2 Volts
LOADPCT : 11.7 Percent Load Capacity
BCHARGE : 100.0 Percent
TIMELEFT : 70.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
OUTPUTV : 241.9 Volts
SENSE : High
DWAKE : -01 Seconds
DSHUTD : 180 Seconds
LOTRANS : 208.0 Volts
HITRANS : 253.0 Volts
RETPCT : 000.0 Percent
ITEMP : 28.3 C Internal
ALARMDEL : Always
BATTV : 27.3 Volts
LINEFREQ : 50.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0×07000008 Status Flag
SERIALNO : AS0611342649
BATTDATE : 2006-03-13
NOMOUTV : 230 Volts
NOMBATTV : 24.0 Volts
FIRMWARE : 651.12.I USB FW:4.2
APCMODEL : Smart-UPS 750
END APC : Mon Mar 15 12:34:19 EET 2010
Как видите, UPS полностью заряжен (BCHARGE : 100.0 Percent), автономной работы хватит на 70 минут (TIMELEFT : 70.0 Minutes). А так же много другой различной информации. Чтобы прям сейчас, немедленно стартануть думона для бесперебойника, выполним следующее:
# /usr/local/etc/rc.d/apcupsd start
Демон должен запуститься без проблем и ошибок. В завершение следует внести ещё некоторые изменения в управляющие файлы: changeme, commfailure, commok, offbattery и onbattery. Изменения состоят в том, чтобы указать e-mail, на который будут слаться все уведомления в работе UPS, а так же желательно задать hostname, чтоб знать, что именно у нас не работает.
Вот, в принципе, и всё, что я хотел рассказать о настройке подключения UPS к FreeBSD.
Недавние записи
- Long time no see
- Ошибка при обновлении Meteor до версии 1.4.2
- Patch falcon для ruby-1.9.3-p327
- Ускоряем ruby и Rails
- Gem ‘seo_params’: определение основных параметров
- Отрицательный margin-top и Opera
- Rspec and Devise reset password
- Backbone.js: Views. Часть первая.
- Backbone.js: Models and Collections
- Backbone.js Routers
Апрель 13th, 2010 at 05:06
Скажите, а можно мне скопировать пост к себе в блог ? На правах копи-паста. Активную гиперссылку на http://www.none.com.ua само-собой поставлю..
Сентябрь 16th, 2011 at 10:29
Безмежно вдячний автору, ця стаття мені дуже допомогла!!!
До речі, у файлах changeme, commfailure, commok, offbattery і onbattery можна вказувати кілька E-mail адрес через кому, наприклад, SYSADMIN=root,mymail@mail.com. Я довго думав як правильно налаштувати SMS-повідомлення про перебої з електропостачанням, а виявилось, що достатньо було просто зробити так: SYSADMIN=root,mymail@mail.com,380XXXXXXXXX@sms.kyivstar.net. Ще у моїй конфігурації HOSTNAME=`my.domain.com` треба було вказувати без лапок, тобто так: HOSTNAME=my.domain.com — інакше в листі замість тексту «Subject: my.domain.com Power Failure !!!» було просто «Subject: Power Failure !!!».
Декабрь 12th, 2014 at 14:12
Спасибо, все работает, доступно написано.