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.

Недавние записи

3 комментария to “FreeBSD: подключение UPS”

  1. jadore Says:

    Скажите, а можно мне скопировать пост к себе в блог ? На правах копи-паста. Активную гиперссылку на http://www.none.com.ua само-собой поставлю..

  2. Юрій Says:

    Безмежно вдячний автору, ця стаття мені дуже допомогла!!!
    До речі, у файлах 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 !!!».

  3. Alexander Says:

    Спасибо, все работает, доступно написано.

Оставить комментарий