@nickname2023

В чем причина No Such Object available on this agent at this OID?

Я создал свой кастомный миб файл, с одним объектом - температура. Его содержимое ниже:
MY-MIB DEFINITIONS ::= BEGIN

IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Integer32
FROM SNMPv2-SMI
DisplayString
FROM SNMPv2-TC;

myMIB MODULE-IDENTITY
LAST-UPDATED "202210250000Z"
ORGANIZATION "Example Organization"
CONTACT-INFO "Email: info@example.com"
DESCRIPTION "MIB module for temperature monitoring"
REVISION "202210250000Z"
DESCRIPTION "Initial version"
::= { 1 3 6 1 4 1 9995 }

temperature OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Current temperature in Celsius"
::= { myMIB 1 }

END

Значение получается за счет имитатора, т.е в snmp.conf прописан extend, который при запросе на определенный oid запускает sh скрипт, который возвращает значение(просто вывод echo "1234").

При попытке получить значение температуры по заданному oid snmpget -v2c -c public 127.0.0.1 1.3.6.1.4.1.9995.1
я получаю
MY-MIB::temperature = No Such Object available on this agent at this OID
Но при этом, если использовать snmpwalk -v2c -c public 127.0.0.1 1.3.6.1.4.1.9995.1 то в выводе я получу
MY-MIB::temperature.1.0 = Wrong Type (should be OCTET STRING): INTEGER: 1
MY-MIB::temperature.2.1.2.7.47.98.105.110.47.115.104 = STRING: /etc/snmp/test.sh
MY-MIB::temperature.2.1.3.7.47.98.105.110.47.115.104 = STRING:
MY-MIB::temperature.2.1.4.7.47.98.105.110.47.115.104 = STRING:
MY-MIB::temperature.2.1.5.7.47.98.105.110.47.115.104 = Wrong Type (should be OCTET STRING): INTEGER: 5
MY-MIB::temperature.2.1.6.7.47.98.105.110.47.115.104 = Wrong Type (should be OCTET STRING): INTEGER: 1
MY-MIB::temperature.2.1.7.7.47.98.105.110.47.115.104 = Wrong Type (should be OCTET STRING): INTEGER: 1
MY-MIB::temperature.2.1.20.7.47.98.105.110.47.115.104 = Wrong Type (should be OCTET STRING): INTEGER: 4
MY-MIB::temperature.2.1.21.7.47.98.105.110.47.115.104 = Wrong Type (should be OCTET STRING): INTEGER: 1
MY-MIB::temperature.3.1.1.7.47.98.105.110.47.115.104 = STRING: 1234
MY-MIB::temperature.3.1.2.7.47.98.105.110.47.115.104 = STRING: 1234
MY-MIB::temperature.3.1.3.7.47.98.105.110.47.115.104 = Wrong Type (should be OCTET STRING): INTEGER: 1
MY-MIB::temperature.3.1.4.7.47.98.105.110.47.115.104 = Wrong Type (should be OCTET STRING): INTEGER: 0
MY-MIB::temperature.4.1.2.7.47.98.105.110.47.115.104.1 = STRING: 1234
Где мое значение температуры доступно с oid MY-MIB::temperature.3.1.2.7.47.98.105.110.47.115.104. И если использовать snmpget с этим oid, то значение получается нормально.

Но проблема в том, что я ожидал получить температуру именно по тому oid, который прописан в мибе. Но вместо этого на этот oid записывается куча какой-то служебной информации и мне приходится извлекать значение температуры уже из другого oid. Мне кажется, что это проблема в настройке какой-то конфигурации(использую snmpd, ubuntu). Но я не смог найти, какой именно. Кто-нибудь знает, как можно исправить эту проблему?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы