Windows Tips & News

Как контролировать состояние USB-ИБП через SNMP

click fraud protection

Как контролировать состояние USB-ИБП через SNMP

Есть несколько компьютеров с ИБП, подключенным через USB. Все компьютеры используют программу apcupsd. Допустим, вы хотите собрать информацию о состоянии источника питания для каждого блока в одном месте. Поскольку snmpd там уже запущен, было бы логично расширить его функционал.

Приведенное ниже решение, любезно предоставленное Блог администратора, соберет данные сразу со всех модулей snmpd.

Чтобы отслеживать состояние USB-ИБП через 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 || exit 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"]; тогда. case "$ REQ" в. $ МЕСТО | \ $ 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;; $ МЕСТО.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. * | \ МЕСТО.5 $ * | \ $ МЕСТО.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;; $ МЕСТО.7 * | \ $ PLACE.8.0 *) RET = $ PLACE.8.1.0;; *) exit 0;; esac. еще. # # GET запросы - проверить действительный экземпляр. # case "$ 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;; *) exit 0;; esac. fi # # "Обрабатывать" запросы GET * - возвращать жестко запрограммированное значение. # эхо "$ RET" case "$ 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 "строка"; echo "ack... $ RET $ REQ "; выход 0;; # Не должно произойти. esac.

Если вас интересуют OID, вы можете их найти ЗДЕСЬ. Обратите внимание, что некоторые модели ИБП не возвращают все параметры или в неправильном формате, поэтому код может содержать неточности и заглушки.

Теперь все готово.

Как контролировать состояние USB-ИБП через SNMP

Чтобы отслеживать состояние USB-ИБП через 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 = СТРОКА: «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 = СТРОКА: «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 = СТРОКА: «НЕТ»
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.4.0 = СТРОКА: «НЕТ»
SNMPv2-SMI:: enterprises.318.1.1.1.8.1.0 = Gauge32: 1

Если вы дополнительно настроите сценарий мониторинга, вы можете получить эти изящные графики:

Приложение Phone Link теперь имеет собственный виджет в Windows 11

Приложение Phone Link теперь имеет собственный виджет в Windows 11

Сторонний виджет Messenger, анонсированный в сборке Windows 11 25284, — не единственный новый вид...

Читать далее

Windows 11 Build 25284 содержит первый сторонний виджет «Messenger».

Windows 11 Build 25284 содержит первый сторонний виджет «Messenger».

Microsoft выпускает Windows 11 Build 25284 для инсайдеров на канале Dev. Он поставляет первый сто...

Читать далее

Мероприятие для разработчиков Microsoft Build 2023 может пройти с 23 по 25 мая

Мероприятие для разработчиков Microsoft Build 2023 может пройти с 23 по 25 мая

Microsoft еще не объявила дату своей ежегодной конференции разработчиков Build 2023, хотя подтвер...

Читать далее