Я зарегистрировал свой собственный OID в IANA. В этом посте мы назовем его 99999.
поэтому в моем файле snmpd.conf (Ubuntu 14)
Я добавил следующую строку
extend .1.3.6.1.4.1.99999.1 test /bin/echo hello
Когда я получаю snmpget с oid .1.3.6.1.4.1.99999.1, ожидая ответа "привет", я не нашел.
Итак, решил сделать snmpwalk из .1.3.6.1.4.1.99999, и я получил следующее
.1.3.6.1.4.1.99999.1.1.0 = 1
.1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116 = /bin/echo
.1.3.6.1.4.1.99999.1.2.1.3.4.116.101.115.116 = hello
.1.3.6.1.4.1.99999.1.2.1.4.4.116.101.115.116 = hello
.1.3.6.1.4.1.99999.1.2.1.5.4.116.101.115.116 = 5
.1.3.6.1.4.1.99999.1.2.1.6.4.116.101.115.116 = 1
.1.3.6.1.4.1.99999.1.2.1.7.4.116.101.115.116 = 1
.1.3.6.1.4.1.99999.1.2.1.20.4.116.101.115.116 = 4
.1.3.6.1.4.1.99999.1.2.1.21.4.116.101.115.116 = 1
.1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116 = hello
.1.3.6.1.4.1.99999.1.3.1.2.4.116.101.115.116 = hello
.1.3.6.1.4.1.99999.1.3.1.3.4.116.101.115.116 = 1
.1.3.6.1.4.1.99999.1.3.1.4.4.116.101.115.116 = 0
.1.3.6.1.4.1.99999.1.4.1.2.4.116.101.115.116 = hello
Хорошо, это не то, чего я ожидал. На моем старом сервере Ubuntu 8 я получил бы ответ от oid .1.3.6.1.4.1.99999.1 как привет
Итак, вопрос в том, что стоит за моим oid? (.2.1.2.4.116.101.115.116 и т. Д.)
Я предполагаю, что числа после «моего» oid имеют какой-то смысл / логику.
который является правильным oid для использования в snmpget, чтобы вернуть "привет"
Любые указатели были бы полезны.
Спасибо заранее.
* Добавлены комментарии после моего исходного сообщения *
Хорошо, я вычислил некоторые числа, добавленные к моему OID.
Смотрим на oid .1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116
Последний раздел - ascii 116.101.115.116 равно "test"
так что в середине
2.1.2.4
2.1.3.4
2.1.4.4
2.1.5.4
and so on...
Я все еще не понимаю, почему все это вообще добавлено к моему OID.
На моем старом SNMP Ubuntu 8 я мог просто сделать snmpget для номера oid (.1.3.6.1.4.1.99999.1). У меня был тест в строке exec snmpd.conf, и я получил результат 'hello' обратно
Со всеми этими добавленными числами к старому, как мне узнать, на каком oid мне нужно использовать snmpget?
Точно так же, как бы вы могли создать полноценный MIB-файл, который бы соответствовал всему этому?
АРГХ !!! Перегрузка SNMP ....
Помогите!!!
Это может быть старый вопрос, но там не очень много документации о том, почему SNMP работает так, как есть, и я некоторое время боролся с этим беспорядком, так что приступим.
В расширять stanza создает новую структуру MIB с указанным вами OID и добавляет ряд значений из NET-SNMP-EXTEND-MIB, а затем добавляет дополнительные значения в зависимости от имени, указанного в директиве расширения.
В вашем примере базовый OID .1.3.6.1.4.1.99999.1
. SNMPd дублирует структуру MIB из NET-SNMP-EXTEND-MIB и добавляет ее к этому OID. Я воспроизвел базовое дерево MIB ниже, полный MIB можно найти по адресу http://net-snmp.sourceforge.net/docs/mibs/NET-SNMP-EXTEND-MIB.txt
.1: nsExtendNumEntries
.2: nsExtendConfigTable
.1: nsExtendConfigEntry
.1: nsExtendToken
.2: nsExtendCommand
.3: nsExtendArgs
.4: nsExtendInput
.5: nsExtendCacheTime
.6: nsExtendExecType
.7: nsExtendRunType
.20: nsExtendStorage
.21: nsExtendStatus
.3: nsExtendOutput1Table
.1: nsExtendOutput1Entry
.1: nsExtendOutput1Line
.2: nsExtendOutputFull
.3: nsExtendOutNumLines
.4: nsExtendResult
.4: nsExtendOutput2Table
.1: nsExtendOutput2Entry
.2: nsExtendOutput2Entry
Добавляется длина символа к имени, затем имя преобразуется в ASCII и добавляется в виде десятичных значений.
Итак, разбивка ответа OID .1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116 = hello
как следует:
.1.3.6.1.4.1.99999.1 : base OID
.3 : nsExtendOutput1Table
.1 : nsExtendOutput1Entry
.1 : nsExtendOutput1Line
.4 : Length of name ("test" in this case)
.116 : ASCII t
.101 : ASCII e
.115 : ASCII s
.116 : ASCII t
И поскольку этот OID является значением nsExtendOutput1Line, которое возвращает первую строку выходных данных команды, значением является «hello».