Как добавить строку в таблицу MIB с помощью snmpset?

Недавно я изменил свой собственный файл MIB, включив в него таблицы, а не только скаляры, он проверяет, я могу создать субагент и т. д., но если я попытаюсь его прочитать, в нем не будет записей:

snmptable -v1 -c public hostname:10161 myMibName::myTable
myMibName::myTable: No entries

Что ж, я не добавлял строки по умолчанию/примеры в эту таблицу в своем коде агента.

Если я пытаюсь установить некоторые значения таблицы с помощью snmpset, подобно тому, как я делал это на скалярах, это всегда терпит неудачу, поэтому для таблицы требуется собственный синтаксис.

Как я могу добавить строку в таблицу с помощью snmpset или аналогичного?

Например, примерная таблица может выглядеть так же просто, как эта, где «myString» — это индекс:

MyTableEntrySequence::= SEQUENCE {
myString
OCTET STRING,
test1
Integer32,
test2
Integer32

}

РЕДАКТИРОВАТЬ: я не использовал RowStatus в своей таблице. Нужно ли использовать RowStatus, чтобы иметь возможность добавлять новые строки?

EDIT2: я скомпилировал агент data_set.c из образцов net-snmp, который заполняет образец таблицы некоторыми данными и может запрашивать его содержимое с помощью snmptable:

snmpwalk -v 1 -c public hostname:10161 netSnmpIETFWGTable
NET-SNMP-EXAMPLES-MIB::nsIETFWGChair1."snmpv3" = STRING: "Russ Mundy"
NET-SNMP-EXAMPLES-MIB::nsIETFWGChair2."snmpv3" = STRING: "David Harrington"

person lzdt    schedule 24.09.2015    source источник


Ответы (1)


Предполагая, что таблица (myTable) содержит строку (stringIndex) и 2 целых числа (test1 и test2), тогда как 1-й столбец таблицы также является индексом таблицы, вы можете добавить следующие строки:

snmpset -v 1 -c public hostname:10161 yourMibName::test1.\"testString\" = 365

Это добавляет новую строку таблицы, где

stringIndex = "testString"
test1 = 365
test2 = 0

Чтобы установить для test2 значение 42, вам нужно будет вызвать:

snmpset -v 1 -c public hostname:10161 yourMibName::test2.\"testString\" = 42

Чтобы проверить содержимое таблицы, вы можете использовать snmpwalk или snmptable:

snmpwalk -v 1 -c public hostname:10161 yourMibName::myTable
person lzdt    schedule 25.09.2015
comment
Я использую snmpset, поставляемый с net::snmp, похоже, он не принимает приведенный выше синтаксис (= значение), а принимает (типовое значение) и, похоже, требует, чтобы каждый столбец устанавливался отдельно. К какому snmpset относится этот ответ? - person djna; 31.05.2018
comment
netsnmp 5.7.3 для Linux, самостоятельно скомпилированный из исходников. По моему опыту, netsnmp в Windows не следует собственным справочным страницам и ведет себя странным необъяснимым образом. - person lzdt; 01.06.2018
comment
Спасибо. Я на Mac, использую образ Docker, который утверждает, что у него установлена ​​версия NET-SNMP: 5.5. Возможно, мне нужно попробовать более позднюю версию. - person djna; 01.06.2018