Linux ups nut snmp: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 148: | Строка 148: | ||
</PRE> |
</PRE> |
||
тут остановлюсь подробнее: |
тут остановлюсь подробнее: |
||
− | RUN_AS_USER root |
||
⚫ | |||
+ | * <code>RUN_AS_USER root</code> - от какого пользователя запускать |
||
− | MINSUPPLIES 1 |
||
+ | * <code>MONITOR UPS6000XL@10.72.0.14:3493 1 upsmon pass master</code> |
||
⚫ | |||
⚫ | |||
− | |||
+ | * <code>MINSUPPLIES 1</code> - указываем количество блоков питания которые должны получать мощность сохраняя систему запущенной. Это значит что для серверов с 2 блоками питания которые заведены на 2 разных UPS и оба из которых мониторятся, команда на выключение будет подана только при условии что оба УПСа сообщат о том что у них низкий заряд батарей. За неимением 2 УПСов проверить этот сценарий я пока не могу. |
||
− | POLLFREQ 1 |
||
⚫ | |||
⚫ | |||
+ | * <code>POLLFREQ 1</code> |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | |||
⚫ | |||
− | POWERDOWNFLAG /etc/killpower |
+ | * <code>POWERDOWNFLAG /etc/killpower</code> |
− | |||
⚫ | |||
− | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | |||
⚫ | |||
− | |||
⚫ | |||
⚫ | |||
− | NOTIFYFLAG |
+ | * <code>NOTIFYFLAG FSD SYSLOG+WALL+EXEC</code> |
− | NOTIFYFLAG |
+ | * <code>NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC</code> |
− | NOTIFYFLAG |
+ | * <code>NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC</code> |
− | NOTIFYFLAG |
+ | * <code>NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC</code> |
− | NOTIFYFLAG |
+ | * <code>NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC</code> |
− | NOTIFYFLAG |
+ | * <code>NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC</code> |
− | NOTIFYFLAG |
+ | * <code>NOTIFYFLAG NOPARENT SYSLOG+WALL+EXEC</code> |
⚫ | |||
⚫ | |||
⚫ |
Версия 14:55, 6 мая 2024
NUT + SNMP
Хочется тушить стойку после того как пропало питание, через 2 минуты (или любое другое время, в процессе настройки я его несколько раз уменьшал), при этом безперпебойник доступен по сети (SNMP)
Возможно настроить на каждом сервере отдельный экзкмпляр NUT или опрашивать по сети один
NUT
серверная часть
Driver (nut-driver.service
) ups.conf
Предельно простая настройка - нужно знать только адрес и community в файле ups.conf
[UPS6000XL] driver = snmp-ups port = 10.72.0.8 desc = "Smart-UPS RT 6000 RM XL" community = public snmp_version = v1 pollfreq = 15
community = public
заменить на актуальное значение
Сервер (nut-server.service
)nut.conf
upsd.conf
upsd.users
nut.conf
Тут настраивается режим сервера, в этом случае
MODE=netserver
upsd.conf
Так как предпологается что запрос будут приходить с других серверов, то нужно разрешить слушать на всех интерфейсах
LISTEN 0.0.0.0 3493
upsd.users
[admin] password = admin actions = SET instcmds = ALL
Проверка работы
Локально проверить можно так
upsc UPS6000XL@localhost
Init SSL without certificate database ambient.1.humidity.alarm.high: 60.00 ambient.1.humidity.alarm.low: 30.00 ambient.1.temperature.alarm.high: 40.00 ambient.1.temperature.alarm.low: 10.00 battery.charge: 49.00 battery.charge.restart: 0 battery.date: 02/07/15 battery.packs: 1.00 battery.runtime: 360.00 battery.runtime.low: 120 battery.voltage: 218.10 device.mfr: APC device.model: Smart-UPS RT 6000 RM XL device.serial: Q123 device.type: ups driver.name: snmp-ups driver.parameter.pollfreq: 15 driver.parameter.pollinterval: 2 driver.parameter.port: 10.72.0.8 driver.parameter.snmp_version: v1 driver.parameter.synchronous: no driver.version: 2.7.4 driver.version.data: apcc MIB 1.2 driver.version.internal: 0.97 input.frequency: 50.00 input.sensitivity: UNKNOWN input.transfer.high: 253 input.transfer.low: 161 input.transfer.reason: rateOfVoltageChange input.voltage: 213.10 input.voltage.maximum: 216.00 input.voltage.minimum: 210.20 output.current: 5.20 output.frequency: 50.00 output.voltage: 231.60 output.voltage.nominal: 230 ups.delay.shutdown: 20 ups.delay.start: 0 ups.firmware: 452.19.W ups.id: UPS_IDEN ups.load: 23.00 ups.mfr: APC ups.mfr.date: 07/07/14 ups.model: Smart-UPS RT 6000 RM XL ups.serial: QS1428270733 ups.status: OL ups.temperature: 18.40 ups.test.date: 04/13/2024 ups.test.result: Ok
На этом серверная часть +/- настроена, и можно переходить к настройке клиентской
NUT
Сетевые клиенты
apt install nut-client
/etc/nut/nut.conf
Одна строчка:
MODE=netclient
/etc/nut/upsmon.conf
RUN_AS_USER root MONITOR UPS6000XL@10.72.0.14:3493 1 upsmon pass master MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" POLLFREQ 1 POLLFREQALERT 1 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5 NOTIFYCMD /usr/sbin/upssched NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC NOTIFYFLAG FSD SYSLOG+WALL+EXEC NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC NOTIFYFLAG NOPARENT SYSLOG+WALL+EXEC
тут остановлюсь подробнее:
RUN_AS_USER root
- от какого пользователя запускатьMONITOR UPS6000XL@10.72.0.14:3493 1 upsmon pass master
- MONITOR UPS6000XL@10.72.0.14:3493 1 upsmon pass master
MINSUPPLIES 1
- указываем количество блоков питания которые должны получать мощность сохраняя систему запущенной. Это значит что для серверов с 2 блоками питания которые заведены на 2 разных UPS и оба из которых мониторятся, команда на выключение будет подана только при условии что оба УПСа сообщат о том что у них низкий заряд батарей. За неимением 2 УПСов проверить этот сценарий я пока не могу.SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 1
POLLFREQALERT 1
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
NOTIFYCMD /usr/sbin/upssched
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG FSD SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC
NOTIFYFLAG NOPARENT SYSLOG+WALL+EXEC