MIB の作成方法を理解しようとしてきました:ここで私がこれまでに行ったこと:
MIB を作成し、新しい OID に値を割り当てようとした => 失敗
MIB は次のとおりです。
TEST-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
OBJECT-TYPE, Integer32,MODULE-IDENTITY FROM SNMPv2-SMI;
test MODULE-IDENTITY
LAST-UPDATED "201112190200Z"
ORGANIZATION "blah"
CONTACT-INFO
"please"
DESCRIPTION
"I am stuck"
REVISION "201112190200Z"
DESCRIPTION
"initial Draft"
::= { iso org(3) dod(6) internet(1) private(4) enterprises(1) 39106 }
testResearch OBJECT IDENTIFIER ::= { test 2 }
testVar OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"just for testing"
::= { testResearch 1}
-- conformance information
testMIBConformance OBJECT IDENTIFIER ::= { test 999 }
testMIBCompliances OBJECT IDENTIFIER ::= { testMIBConformance 1 }
testMIBGroups OBJECT IDENTIFIER ::= { testMIBConformance 2 }
-- compliance statements
testMIBCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"blah."
MODULE -- this module
MANDATORY-GROUPS { testGroup }
::= { testMIBCompliances 1 }
-- units of conformance
testGroup OBJECT-GROUP
OBJECTS { testVar }
STATUS current
DESCRIPTION
"The draft"
::= { testMIBGroups 1 }
END
そして私は・・・それから私は
- この MIB を smilint に対して検証し、
- ~/.snmp/mibs/ に入れてください
- すべてのホストに rwcommunity 文字列があり、OID 制限はありません
- snmpd デーモンを再起動しました (Debian の場合)
これまでのところ、すべて順調です。
次に、デーモンがこの新しいエンタープライズについて知っているかどうかを確認しようとしました。
snmpwalk -v2c -m +ALL localhost .1.3.6.1.4.1.39106
出力: TEST-MIB::test= No such Object available on this agent at this OID
したがって、snmpd は、まだ何も設定されていないため、このツリーの下には何も見つからないと言っていると思います。
したがって、シェルで snmpset を使用してこのテスト変数を設定しようとします。
snmpset -v2c -m +ALL localhost .1.3.6.1.4.1.39106.2.1 i 111
出力:
Error in packet.
Reason: notWritable (That object does not support modification)
Failed object: TEST-MIB::testVar
私も試してみました:snmpset -v2c -m +ALL localhost .1.3.6.1.4.1.39106.2.1.0 i 111
およびルートとして、しかし成功しませんでした
しかし、snmptranslate を実行すると、MIB が正しく解析されていることがわかります。
snmptranslate -Td 1.3.6.1.4.1.39106.2.1
TEST-MIB::testVar
testVar OBJECT-TYPE
-- FROM TEST-MIB
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION "just for testing"
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) test(39106) testResearch(2) 1 }
バグですか?既知の問題?