Windows Tips & News

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

РЕКОМЕНДУЕМЫЕ: Щелкните здесь, чтобы исправить проблемы с Windows и оптимизировать производительность системы

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

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

Рекламное объявление

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

Чтобы отслеживать состояние USB-ИБП через SNMP, нам нужно сначала изменить конфигурацию демона snmp.

СОДЕРЖАНИЕСпрятать
Препараты
Как контролировать состояние USB-ИБП через 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

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

ЗагрузкаНапряжениеТемпература батареиВремя выполнения
РЕКОМЕНДУЕМЫЕ: Щелкните здесь, чтобы исправить проблемы с Windows и оптимизировать производительность системы
Вышел Skype 8.62 с настраиваемым фоном вызовов, новым видом сетки и многим другим.

Вышел Skype 8.62 с настраиваемым фоном вызовов, новым видом сетки и многим другим.

РЕКОМЕНДУЕМЫЕ: Щелкните здесь, чтобы исправить проблемы с Windows и оптимизировать производительн...

Читать далее

Устаревшие архивы приложений Winaero

Устаревшие архивы приложений Winaero

Метроконтроллер позволяет отключить Metro UI в Windows 8 без ручного взлома реестра или ручного п...

Читать далее

Разблокировать старую версию скайпа Архивы

Этот веб-сайт использует файлы cookie, чтобы улучшить вашу работу во время навигации по веб-сайту...

Читать далее