Linux ups nut snmp

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску


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

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