Частичные решения:
-Хорошо-
Укажите OID в команде extend
(в snmpd.conf) примерно так:
extend [OID] <extName> </dir/binary> </dir/script>
OID является необязательным, однако его пропуск по умолчанию приведет к использованию PEN Net-SNMP по умолчанию.
В моем случае мой extend
выглядит следующим образом:
extend .1.3.6.1.4.1.<myPEN> SQL /bin/sh /usr/sbin/MyScript.sh
Это дает следующий вывод:
.1.3.6.1.4.1.[PEN redacted].4.1.2.3.83.81.76.1258 = STRING: "My Data"
Это намного ближе к желаемой структуре, так как теперь она распространяется от пользовательского PEN, хотя теперь приходится сталкиваться с усечением .4.1.2.3
и .83.81.76
(в результате расширения имени «SQL»).
Если кто-нибудь знает, как их удалить, опубликуйте его как новый ответ!
-Better-
Используйте команду pass
:
pass .1.3.6.1.4.1.PEN /bin/sh /home/pi/net-snmp/local/shellCode
Пример кода оболочки: passtest
Вывод:
.1.3.6.1.4.1.PEN.1.0 = STRING: "Hello World!"
.1.3.6.1.4.1.PEN.2.1.2.1 = INTEGER: 9
.1.3.6.1.4.1.PEN.2.1.3.1 = OID: .1.3.6.1.4.1.PEN.99
.1.3.6.1.4.1.PEN.3.0 = Timeticks: (363136200) 42 days, 0:42:42.00
.1.3.6.1.4.1.PEN.4.0 = IpAddress: 127.0.0.1
.1.3.6.1.4.1.PEN.5.0 = Counter32: 9
.1.3.6.1.4.1.PEN.6.0 = Gauge32: 9
Это, похоже, решает обе проблемы, однако я не уверен в степени его возможностей по сравнению с«правильное» дерево OIDtallation.
-Best- (полное решение)
Регистрация OID с использованием MIB ...