Втыкаем упсу, делаем lsusb, читаем вывод:
$ lsusb
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Если повезёт, то /dev/ttyUSB0 (или не 0, смотря что уже втыкали) появится в вашей системе. Мне повезло меньше, зато поплясал с бубном. Во-первых, эта сука почему-то хоть и писала в dmesg про /dev/ttyUSB0 цеплялась на /dev/tts/USB0, чем обильно попарила мне мозг старым добрым "Not a typewriter", ныне "inapropriate ioctl for device". Когда же успешный порт был найден (почти чудом, кстати), мой конфиг ups.conf выглядел так:
[apc]
driver = apcsmart
port = /dev/tts/USB0
cable = "940-0272"
desc = "APC Back-UPS 1000SC"
940-0272 это кабель com-usb, который я и подключал к девайсу.
upsd больше не поддерживает Access Control List и вместо этого надо правильно указывать директиву LISTEN в файле upsd.conf:
LISTEN 127.0.0.1 3493
Другие параметры можно не трогать, разве что я MAXCONN выставил в 24 (просто убрав 10 из числа 1024)
важная строка в upsmon.conf:
MONITOR apc@localhost 1 monuser password master
Кстати, убедитесь, что в /usr/local/ups/etc/* у вас нет world readable документов, на всякий случай. И world writable тем более, ибо SHUTDOWNCMD в upsmon.conf может кто-то заменить на что-то неприятное и тогда всё, плакал сервак.
Далее, мне понадобилось накатать примерно такой /etc/rc.d/rc.nut (я почему-то не нашёл ничего подобного в тех краях, куда встал nut).
#!/bin/sh
# Start/stop/restart the ups nut daemon:
# made by cra on 10 feb 2009
nut_start() {
# start driver
/usr/local/ups/bin/drvctl start
# now start daemon
/usr/local/sbin/upsd
}
nut_stop() {
kill `cat /var/state/ups/upsd.pid`
/usr/local/ups/bin/drvctl stop
}
nut_restart() {
if [ -r /var/state/ups/upsd.pid ]; then
echo "Stopping daemon and driver, this might take a while"
nut_stop
else
echo "There does not appear to be a parent instance of upsd running."
exit 1
fi
sleep 2
nut_start
}
case "$1" in
'start')
nut_start
;;
'stop')
nut_stop
;;
'restart')
nut_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
Всё, можно делать service start ups и смотреть вывод /usr/local/ups/bin/upsc apc@localhost
После этого можно настроить ремотную тулзу для мониторинга состояния упски, или можно настроить нагиос. Проверяем работоспособность плагина: $ /usr/local/nagios/libexec/check_ups -H localhost -u apc
UPS OK - Status=Online Utility=218.0V Batt=100.0% Load=11.7% |voltage=218000mV;;;0 battery=100%;;;0;100 load=11%;;;0;100
Чтобы это было в нагиосе, надо добавить в /usr/local/nagios/etc/objects/commands.cfg следующий кусочек:
define command{
command_name check_ups
command_line $USER1$/check_ups $ARG1$
}
в конфиге нагиоса на нужном сервере тогда будет что-то в духе check_ups!-H localhost -u apc -w 80 -c 10
Либо, если использовать один ups, то можно все параметры прописать сразу в комманде (или хотя бы стандартный нагиосовский -H $HOSTNAMEADDRESS$) и в конфиге писать просто check_ups. Теперь, как сказал коллега "если придёт письмо о варнинге, бежим за ключом от серверной".
No comments:
Post a Comment