Отримуємо по SNMP інформацію з власних скриптів

Можливості 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"

 

Тепер можна парсити виведення, підключати до систем моніторингу і т.д.