LINUX.ORG.RU

История изменений

Исправление I-Love-Microsoft, (текущая версия) :

hizelПомимо перла (а я этот язык не знаю совершенно), оказывается можно делать свои OID при помощи обычных bash-скриптов! 22.6.5.1. Extending Net-SNMP with Shell Scripts

shit.sh:

#!/bin/bash
echo "SNMP_shit_from_script"

/etc/snmp/snmpd.conf:

...
 extend    shit1   /bin/echo "SNMP_shit1"
 extend-sh shit2   /bin/bash /usr/local/bin/shit.sh
...

snmpwalk -v2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendObjects
...
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."shit1" = STRING: SNMP_shit1
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."shit2" = STRING: SNMP_shit_from_script
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."test1" = STRING: Hello, world!
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."test2" = STRING: Hello, world!
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."shit1" = STRING: SNMP_shit1
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."shit2" = STRING: SNMP_shit_from_script
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."test1" = STRING: Hello, world!
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."test2" = STRING: Hello, world!
...

Получение OID (цифрового адреса):

snmptranslate -m +LLDP-MIB -IR -On NET-SNMP-EXTEND-MIB::nsExtendOutputFull.\"shit2\"
[b].1.3.6.1.4.1.8072.1.3.2.3.1.2.5.115.104.105.116.50[/b]

Готово:

snmpwalk -v2c -c public localhost 1.3.6.1.4.1.8072.1.3.2.3.1.2.5.115.104.105.116.50
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."shit2" = STRING: SNMP_shit_from_script

Ну и из обычного C++-кода клиента на базе библиотеки SNMP++ тоже всё работает - от сервера приходит строка.

Исходная версия I-Love-Microsoft, :

hizelПомимо перла (а я этот язык не знаю совершенно), оказывается можно делать свои OID при помощи обычных bash-скриптов! 22.6.5.1. Extending Net-SNMP with Shell Scripts

shit.sh:

#!/bin/bash
echo "SNMP_shit_from_script"

/etc/snmp/snmpd.conf:

...
 extend    shit1   /bin/echo "SNMP_shit1"
 extend-sh shit2   /bin/bash /usr/local/bin/shit.sh
...

snmpwalk -v2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendObjects
...
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."shit1" = STRING: SNMP_shit1
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."shit2" = STRING: SNMP_shit_from_script
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."test1" = STRING: Hello, world!
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."test2" = STRING: Hello, world!
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."shit1" = STRING: SNMP_shit1
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."shit2" = STRING: SNMP_shit_from_script
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."test1" = STRING: Hello, world!
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."test2" = STRING: Hello, world!
...

Получение OID (цифрового адреса):

snmptranslate -m +LLDP-MIB -IR -On NET-SNMP-EXTEND-MIB::nsExtendOutputFull.\"shit2\"
[b].1.3.6.1.4.1.8072.1.3.2.3.1.2.5.115.104.105.116.50[/b]

Готово:

snmpwalk -v2c -c public localhost 1.3.6.1.4.1.8072.1.3.2.3.1.2.5.115.104.105.116.50
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."shit2" = STRING: SNMP_shit_from_script