История изменений
Исправление 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