Windows Tips & News

Як контролювати стан USB UPS через SNMP

click fraud protection

Як контролювати стан USB UPS через SNMP

Існує кілька комп’ютерів із USB-підключеним ДБЖ. Усі комп’ютери використовують програму apcupsd. Скажімо, ви хочете зібрати інформацію про стан джерела живлення для кожного блоку в одному місці. Оскільки snmpd там уже працює, логічно було б розширити його функціональність.

Наведене нижче рішення, надане Блог адміністратора, збиратиме дані з усіх одиниць snmpd одночасно.

Щоб відстежувати стан USB UPS через SNMP, нам потрібно спочатку змінити конфігурацію демона snmp.

Препарати

Додає наступне до конфігурації snmpd.conf.

# ДБЖ APC
передати .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh

Вміст сценарію /etc/snmp/apcupsd.sh виглядає наступним чином.

#!/bin/sh -f # Перевірте, чи apcupsd онлайн. apcaccess > /dev/null 2>&1 || вихід 0 PLACE=".1.3.6.1.4.1.318.1.1.1" REQ="$2" # Запрошений OID # # Обробляйте запити SET, просто реєструючи призначене значення. # Зауважте, що такі "призначення" не є постійними, # не перевіряються синтаксис чи запитане значення. # якщо [ "$1" = "-s" ]; тоді. echo $* >> /tmp/passtest.log. вихід 0. fi # # Запити GETNEXT - визначити наступний дійсний екземпляр. # якщо [ "$1" = "-n" ]; тоді. випадок "$REQ" у. $PLACE| \ $PLACE.0| \ $PLACE.0.*| \ $PLACE.1| \ $PLACE.1.1.0*) RET=$PLACE.1.1.1.0;; $PLACE.1*| \ $PLACE.2.0| \ $PLACE.2.0.*| \ $PLACE.2.1| \ $PLACE.2.2.0*) RET=$PLACE.2.2.1.0;; $PLACE.2.2.1*) RET=$PLACE.2.2.2.0;; $PLACE.2.2.2*) RET=$PLACE.2.2.3.0;; $PLACE.2.2.3*) RET=$PLACE.2.2.4.0;; $PLACE.2*| \ $PLACE.3.0*| \ $PLACE.3.1*| \ $PLACE.3.2.0*) RET=$PLACE.3.2.1.0;; $PLACE.3.2.1*| \ $PLACE.3.2.2*| \ $PLACE.3.2.3*) RET=$PLACE.3.2.4.0;; $PLACE.3.2.4*) RET=$PLACE.3.2.5.0;; $PLACE.3.2*| \ $PLACE.4.0*| \ $PLACE.4.1*| \ $PLACE.4.2.0*) RET=$PLACE.4.2.1.0;; $PLACE.4.2.1*) RET=$PLACE.4.2.2.0;; $PLACE.4.2.2*) RET=$PLACE.4.2.3.0;; $PLACE.4.2.3*) RET=$PLACE.4.2.4.0;; $PLACE.4.2.*| \ $PLACE.5*| \ $PLACE.6*| \ $PLACE.7.0*| \ $PLACE.7.1*| \ $PLACE.7.2.0*| \ $PLACE.7.2.1*| \ $PLACE.7.2.2*) RET=$PLACE.7.2.3.0;; $PLACE.7.2.3*) RET=$PLACE.7.2.4.0;; $PLACE.7*| \ $PLACE.8.0*) RET=$PLACE.8.1.0;; *) вихід 0;; esac. інше. # # Запити GET - перевірте дійсний екземпляр. # випадок "$REQ" у. $PLACE.1.1.1.0| \ $PLACE.2.2.1.0| \ $PLACE.2.2.2.0| \ $PLACE.2.2.3.0| \ $PLACE.2.2.4.0| \ $PLACE.3.2.1.0| \ $PLACE.3.2.4.0| \ $PLACE.3.2.5.0| \ $PLACE.4.2.1.0| \ $PLACE.4.2.2.0| \ $PLACE.4.2.3.0| \ $PLACE.4.2.4.0| \ $PLACE.7.2.3.0| \ $PLACE.7.2.4.0| \ $PLACE.8.1.0) RET=$REQ;; *) вихід 0;; esac. fi # # "Обробити" запити GET* - повернути жорстко запрограмоване значення. # луна "$RET" справа "$RET" у. $PLACE.1.1.1.0) echo "рядок"; apcaccess -u -p МОДЕЛЬ; вихід 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; вихід 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; вихід 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); вихід 0;; $PLACE.2.2.4.0) echo "рядок"; apcaccess -u -p BATTDATE; вихід 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; вихід 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; вихід 0;; $PLACE.3.2.5.0) echo "рядок"; apcaccess -u -p LASTXFER; вихід 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; вихід 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; вихід 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; вихід 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; вихід 0;; $PLACE.7.2.3.0) echo "рядок"; apcaccess -u -p САМОТЕСТ; вихід 0;; $PLACE.7.2.4.0) echo "рядок"; apcaccess -u -p САМОТЕСТ; вихід 0;; $PLACE.8.1.0) echo "Gauge32"; відлуння 1; вихід 0;; *) echo «рядок»; луна "підтвердити... $RET $REQ"; вихід 0;; # Не повинно статися. esac.

Якщо вам цікаво про OID, ви можете знайти їх ТУТ. Зауважте, що деякі моделі ДБЖ повертають не всі параметри або у неправильному форматі, тому код може містити неточності та заглушки.

Тепер ви готові.

Як контролювати стан USB UPS через SNMP

Щоб контролювати стан USB UPS через SNMP, виконайте таку команду: snmpwalk -v 1 -c загальнодоступна 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. Вихід буде таким:

SNMPv2-SMI:: enterprises.318.1.1.1.1.1.1.0 = STRING: «Smart-UPS 750»
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.3.0 = Timeticks: (432000) 1:12:00.00
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.5.0 = STRING: "Автоматична або явна самоперевірка"
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.4.0 = Gauge32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.3.0 = STRING: "НІ"
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.4.0 = STRING: "НІ"
SNMPv2-SMI:: enterprises.318.1.1.1.8.1.0 = Gauge32: 1

Якщо ви додатково налаштуєте сценарій моніторингу, ви можете отримати ці чудові графіки:

Як показати версію програми та інші властивості на панелі деталей Провідника

Як показати версію програми та інші властивості на панелі деталей Провідника

Коли ви вибираєте файл у Провіднику файлів, він показує деякі властивості на панелі відомостей, я...

Читати далі

Microsoft випустить нову збірку Redstone наступного тижня

Microsoft випустить нову збірку Redstone наступного тижня

Програма Windows Insider затихла після випуску Windows 10 збірка 11082. Хоча ця збірка була випущ...

Читати далі

Розмір усіх стовпців відповідно до архівів Windows 10

Цей веб-сайт використовує файли cookie, щоб покращити ваш досвід під час навігації веб-сайтом. З ...

Читати далі