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). Но я не смог найти, какой именно. Кто-нибудь знает, как можно исправить эту проблему?