Документация по ОС FreeBSD
Суббота, 15.11.2025, 20:18
Главная
Регистрация
Вход
Приветствую Вас
Гость
|
RSS
Меню сайта
Главная страница
Новости в мире Unix
NEW
Каталог файлов
NEW
Установка и настройка
Ports & Packages
cvs
Безопасность
Работа с железом
X Window
Multimedia
Man pages
Net
Apache
DNS
FTP
Mail
Samba
Squid
SSH
VPN
РРР
Shell
IPFW
Tips'n'tricks
RFC
Книги по FreeBSD
Темы экзамена BSDA
Гостевая книга
Форум на bsdportal.ru
Каталог сайтов
Самый свежий софт
Каталог ссылок
Категории каталога
Apache
[58]
DNS
[25]
FTP
[27]
Mail
[74]
Samba
[24]
Squid
[46]
SSH
[23]
VPN
[35]
РРР
[20]
Net
[173]
Главная
»
Статьи
»
Сеть
»
Net
Использование apcupsd в гетерогенных сетях
Предистория
На 1 из обьектов, в серверную, был приобретен UPS APC Smart-UPS 1000 RM. Куплен он был для обслуживания 2ух серверов, один из которых на базе Windows 2003 (ip 10.0.0.2), второй - на базе FreeBSD 5.3. (ip 10.0.0.1).
Оба сервера требовалось подключить к данному UPS, обеспечив корректное завершение работы системы в случае окончания срока работы батарей. Также требовалось оповещение пользователей домена AD о проблемах с питанием в серверной.
UPS имеет интерфейс USB и COM, но в комплекте прилогался только USB шнур. Сначала я попытался использовать родное ПО данного UPS. И вскоре убедился, что оно совершенно не предназначено для нормальной работы.
Основные проблемы встроенного ПО:
* Непозволяетназначатьдействия (например, запуск внешних
программ) на возникащие события.
* Монстроидально.Данныйшедевр разработчики APC написали на
Java+Win32 API. Причем ПО разбито на Агента (сбор данных) + Сервер (работа с агентами) + Консоль (управление сервером). Кроме того при этом я получил не отключаемый web server и 40 Mb отожранной памяти (сервер+агент).
* Отсутствие поддержки BSD. Из поддержки OSS систем есть только поддержка Linux (причем ТОЛЬКО агент и тоже на Java+JNI!), работа по стандартным протоколам (snmp) отсутствует.
Apcupsd
Убедившись в невозможности встроенного ПО решить поставленную задачу я решил воспользоваться программой Apcupsd (
http://www.apcupsd.com/
). Начиная с версии 3.10.17 в ней реализована работа с USB UPS в BSD системах. Также доступна win32 версия программы (на базе cygwin). Apcupsd позволяет работать в режиме клиент/сервер, что и требуется для данной задачи.
Установка APCUPSD на FreeBSD
Так как в APCUPSD/WIN32 не реализована работа с USB, подключаем UPS к FreeBSD серверу. Устанавливаем apcupsd из портов:
#cd /usr/ports/sysutils/apcupsd/;make install clean
В диалоге опций выбираем работу с USB. После этого:
# cd /usr/local/etc/rc.d;cp apcupsd.sh.sample apcupsd.sh
Теперь
правим
конфигурацию
apcupsd (/usr/local/etc/apcupsd/apcupsd.conf).
Пример конфигурации apcupsd на FreeBSD:
UPSCABLE usb
UPSTYPE usb
DEVICE
LOCKFILE /var/spool/lock
BATTERYLEVEL 5
MINUTES 3
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 10.0.0.1
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10
UPSCLASS netmaster
UPSMODE net
NETPORT 6666
#ip
адрес
windows
машины
slave 10.0.0.2
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0
Для корректной работы usb ups с apcupsd необходимо закомментировать в файле конфигурации ядра устройство uhid и пересобрать ядро. После установки ядра перезагружаем машину. UPS должен быть виден в системе как устройство /dev/ugen0.
Для проверки работоспособности набираем apcaccess - это должно выдать нам статистику UPS. Если всё работает - самое время перейти к настройке windows.
Установка APCUPSD на Windows 2003
Скачав на сайте скомпиленный win32 бинарник, я распаковал архив в папку c:\apcupsd. После чего запустил c:\apcupsd\bin\setup.bat для создания win32 сервиса. Конфигурация apcupsd/win32 находится в файле \
apcupsd
\
etc
\
apcupsd
\
apcupsd
.
conf
.
Пример конфигурации apcupsd на Windows:
UPSCABLE ether
UPSTYPE apcsmart
DEVICE
LOCKFILE /apcupsd/etc/apcupsd
ONBATTERYDELAY 6
BATTERYLEVEL 5
MINUTES 3
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 10.0.0.2
NISPORT 3551
EVENTSFILE /apcupsd/etc/apcupsd/apcupsd.events
EVENTSFILEMAX 10
UPSCLASS netslave
UPSMODE net
NETPORT 6666
# IP BSD
сервера
MASTER 10.0.0.1
STATTIME 0
STATFILE /apcupsd/etc/apcupsd/apcupsd.status
LOGSTATS off
DATATIME 0
Запускаем
apcupsd
командой
net start apcupsd.
Проверяем работу запуском
apcaccess
. Через некотое время сервис должен присоединиться к серверу (у меня почему-то этот процесс проходит больше минуты). В файле \apcupsd\etc\apcupsd\apccontrol расположены команды, выполняемые при срабатывании событий. В секцию onbattery я добавил строку
/windows/system32/net.exe send /DOMAIN "WARNING: Server running on UPS battaries"
для оповещения пользователей домена о проблемах. По непонятной мне причине, будучи запущенным от пользвателя system, сервис не выполнял оповещение. После изменения пользователя сервиса оповещения стали
рассылаться.
Итог
Все работает так как и требовалось изначально. При желании к apcupsd можно прикрутить web интерфейс, mrtg и прочие рюшечки и свистелки.
Автор:
Alex Samorukov
Категория:
Net
| Добавил:
oleg
(14.11.2007)
Просмотров:
1044
| Рейтинг:
0.0
/
0
|
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев:
0
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Форма входа
Друзья сайта
Google+
Copyright MyCorp © 2025