- Исходные данные
# uname -sr FreeBSD 10.1-RELEASE-p9 # pkg info | grep nut nut-2.7.3 Network UPS Tools
- Установка
# cd /usr/ports/sysutils/nut # make install clean
Мои настройки:[ ] AVAHI Avahi support [ ] BASH Bash Completion support [x] CGI Web CGI interface [ ] DOCS Build and/or install documentation [x] NEON NEON XML/HTTP support [x] OPENSSL SSL/TLS support via OpenSSL [ ] PDU Powerman PDU support [x] SERIAL SERIAL support [x] SNMP SNMP support [x] USB USB support ─────────────────────────────────── IPMI ───────────────────────────────── (*) IPMI_OFF No IPMI support ( ) IPMIPSU Use nut-ipmipsu support (experimental) ( ) FREEIPMI freeipmi support
- /etc/rc.conf
devfs_enable="YES" nut_enable="YES" nut_flags="-u upsd" nut_upsmon_enable="YES" nut_upslog_enable="YES" nut_upslog_ups="server@127.0.0.1"
- Настройка
Добавляем в систему пользователя:# pw useradd upsd -d /nonexistent -s /usr/sbin/nologin
Даем права на /var/db/nut# chown upsd /var/db/nut # chmod 0770 /var/db/nut
Конфигурационные файлы хранятся в /usr/local/etc/nut
Задаем свой UPS в файле /usr/local/etc/nut/ups.conf. Параметры, которые нам нужно задать, весьма просты:
APC SmartUPS 700[server] driver = apcsmart port = /dev/cuau0 desc = "Main UPS"
Ippon[server] driver = blazer_usb port = /dev/ugen1.3 desc = "Main UPS"
Теперь подробнее.- driver - драйвер, который используется для работы с UPS. Ищем в /usr/local/etc/nut/drivers.list модель своего UPS, в той же строчке будет название драйвера. Если вашего USP нет, то можно попробовать драйвера от более младшей или старшей модели того же производителя. Если в списке нет вообще ни одной модели UPS как у вас - то придется или купить новый UPS или дождаться когда разработчики добавят вашу модель.
- port - порт, на котором висит UPS. Мне повезло попробовать и com и usb.
com - в FreeBSD это порт вида /dev/cuauX.
usb - /dev/ugenX.X Для определения usb-порта можно использовать утилиту usbconfig:# usbconfig ugen0.6: <Cypress Semiconductor USB to Serial> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA)
Также, необходимо пользователю upsd дать права чтения/записи в порт (на примере /dev/ugen1.3)# chown upsd /dev/ugen1.3
для закрепления прав, добавляем строчки в /etc/devfs.conf# ugen1.3 own ugen1.3 upsd:wheel perm ugen1.3 660
P.S. (2019-09-02) через пару лет у меня умер APС, временно я поставил тот же самый Ippon USB, который описан в статье, только вместо FreeBSD 10 на сервере уже стояла FreeBSD 11.2 и у меня не вышло дать права на usb по инструкции выше, драйвер писал "No supported devices found.". Потому я в самом начале файла /usr/local/etc/nut/ups.conf написал строчку "user = root":user = root [server] driver = blazer_usb port = /dev/ugen1.3 desc = "Main UPS"
и все проблемы подключения разом решились. - desc - даем описание UPS
/usr/local/etc/nut/upsd.conf - конфигурация демонаLISTEN 127.0.0.1 LISTEN IP PORT
указываем директиву на каких IP и порту слушать (порт можно не задавать, тогда будет использоваться 3493)
/usr/local/etc/nut/upsd.users - список пользователей и что кому можно делать. Настройки там могут быть весьма изощренными, я сделал два пользователя - локального для управления и удаленного - для просмотра значений.[user] password = USERPASSWORD [admin] password = ADMINPASSWORD upsmon master
user ничего не может менять, admin может всё.
/usr/local/etc/nut/upsmon.conf - мониторинг и управление. Я скопировал /usr/local/etc/nut/upsmon.conf.sample, в нем раскомментировал все NOTIFYMSF, NOTIFYFLAG, убрал все комментарии, из своего добавил толькоMONITOR server@127.0.0.1 admin ADMINPASSWORD master MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -p +0"
FINALDELAY 2 - выключить сервер через 2 минуты, как ups выдаст сигнал о низком заряде
- Запускаем
# /usr/local/etc/rc.d/nut start Network UPS Tools - UPS driver controller 2.7.3 Network UPS Tools - APC Smart protocol driver 3.1 (2.7.3) APC command table version 3.1 [7] unrecognized Starting nut. Network UPS Tools upsd 2.7.3 fopen /var/db/nut/upsd.pid: No such file or directory /usr/local/etc/nut/upsd.conf is world readable listening on IP port PORT listening on 127.0.0.1 port 3493 Connected to UPS [server]: apcsmart-server /usr/local/etc/nut/upsd.users is world readable
# /usr/local/etc/rc.d/nut_upslog start Starting nut_upslog. Network UPS Tools upslog 2.7.3 logging status of server@127.0.0.1 to /var/log/ups.log (300s intervals)
# /usr/local/etc/rc.d/nut_upsmon start Starting nut_upsmon. Network UPS Tools upsmon 2.7.3 kill: No such process UPS: server@127.0.0.1 (master) (power value 1) Using power down flag file /etc/killpower
- Мониторинг
- командная строка (на примере Ippon)
# upsc server@127.0.0.1 battery.charge: 100 battery.voltage: 13.60 battery.voltage.high: 13.00 battery.voltage.low: 10.40 battery.voltage.nominal: 12.0 device.type: ups driver.name: blazer_usb driver.parameter.pollinterval: 2 driver.parameter.port: /dev/ugen1.3 driver.version: 2.6.5 driver.version.internal: 0.09 input.current.nominal: 3.0 input.frequency: 49.9 input.frequency.nominal: 50 input.voltage: 230.8 input.voltage.fault: 230.8 input.voltage.nominal: 220 output.voltage: 230.8 ups.beeper.status: enabled ups.delay.shutdown: 30 ups.delay.start: 180 ups.load: 14 ups.productid: 5161 ups.status: OL ups.temperature: 25.0 ups.type: offline / line interactive ups.vendorid: 0665
- www
при установке nut записывает директории /usr/local/www/cgi-bin/nut и /usr/local/www/htdocs/nut. Копируем их в cgi-bin и htdocs своего web-сервера. Из /usr/local/etc/nut/upsstats.html.sample делаем копию с именем /usr/local/etc/nut/upsstats.html (содержимое не меняем). Создаем /usr/local/etc/nut/hosts.conf, там прописываем свой UPSMONITOR server@127.0.0.1 "Main UPS"
ВНИМАТЕЛЬНО ЧИТАЕМ /usr/local/etc/nut/upsset.conf.sample, после чего создаем (или нет) файл /usr/local/etc/nut/upsset.conf в который пишем строчкуI_HAVE_SECURED_MY_CGI_DIRECTORY
Помните, что создав upsset.conf вы разрешите любому кто знает (или подберет) логин и пароль для входа, управлять своим UPS через web, в том числе и тушить сервер, который к UPS подключен. Поэтому разработчики и намекают на дополнительную защиту уже средствами web-сервера, как, например, ограничение доступа на основе ip-адреса.
После окончания настроек, открываем в браузере адрес http://WWW/nut/index.html. Кода спросит логин и пароль, используйте данные из файла /usr/local/etc/nut/upsd.users
- командная строка (на примере Ippon)
Статья опубликована: 2015-05-30 20:41:10
Последние правки: 2019-09-18 15:57:07
Управляем ИБП. Nut. Устанавливаем, настраиваем, получаем данные. Мне в руки попадались два UPS, APC SmartUPS 700 (com) и Ippon (usb), про них эта статья.