Получаем по SNMP информацию из собственных скриптов
- Информация о материале
- Категория: Servers (ru)
- Опубликовано: 14.05.2015, 16:18
- Автор: Super User
- Просмотров: 4722
Возможности SNMP широки, но не безграничны. Ни один разработчик не сможет заранее предположить, что может понадобиться клиенту.
По этому приходится расширять отдаваемую информацию своими скриптами.
Для этого в файл конфигурации демона snmpd добавляем строку
extend .1.3.6.1.4.1.2021.8.4 df /home/user/test.sh
и перезапускаем сервис snmpd
service snmpd restart
По поводу того, откуда взялись цифры .1.3.6.1.4.1.2021.8.4
Из документации по SNMP - http://www.net-snmp.org/docs/mibs/ucdavis.html
OID .1.3.6.1.4.1.2021.8 предназначен для привязывания внешних скриптов
Создадим скрипт test.sh
#!/bin/sh
echo SNMP test
И сделаем его исполняемым
chmod +x test.sh
Для проверки запустим с другого компьютера обзор дерева
snmpwalk -v2c -c snmpPasswd server-addr .1.3.6.1.4.1.2021.8
В выводе получим
UCD-SNMP-MIB::extTable.4.1.0 = INTEGER: 1
UCD-SNMP-MIB::extTable.4.2.1.2.2.100.102 = STRING: "/home/user/test.sh"
UCD-SNMP-MIB::extTable.4.2.1.3.2.100.102 = ""
UCD-SNMP-MIB::extTable.4.2.1.4.2.100.102 = ""
UCD-SNMP-MIB::extTable.4.2.1.5.2.100.102 = INTEGER: 5
UCD-SNMP-MIB::extTable.4.2.1.6.2.100.102 = INTEGER: 1
UCD-SNMP-MIB::extTable.4.2.1.7.2.100.102 = INTEGER: 1
UCD-SNMP-MIB::extTable.4.2.1.20.2.100.102 = INTEGER: 4
UCD-SNMP-MIB::extTable.4.2.1.21.2.100.102 = INTEGER: 1
UCD-SNMP-MIB::extTable.4.3.1.1.2.100.102 = STRING: "SNMP test"
UCD-SNMP-MIB::extTable.4.3.1.2.2.100.102 = STRING: "SNMP test"
UCD-SNMP-MIB::extTable.4.3.1.3.2.100.102 = INTEGER: 1
UCD-SNMP-MIB::extTable.4.3.1.4.2.100.102 = INTEGER: 0
UCD-SNMP-MIB::extTable.4.4.1.2.2.100.102.1 = STRING: "SNMP test"
Получить результат действия скрипта можно командой
snmpget -v2c -c snmpPasswd server-addr 1.3.6.1.4.1.2021.8.4.4.1.2.2.100.102.1
на выходе получим
UCD-SNMP-MIB::extTable.4.4.1.2.2.100.102.1 = STRING: "SNMP test"
Теперь можно парсить вывод, подключать к системам мониторинга и т.д.