実行・動作確認
7.8 実行方法
get-requestの方法については既に7.7章でsnmpwalk
を使用しているのでお分かりかと思います。mtuObject1はpid(プロセス番号)、タイマーの状態とカウンタ値、トラップの状態と自OIが呼ばれた回数を返します。
mtuObject2は自OIが呼ばれた回数のみ返しています。mtuTrapはトラップの状態、mtuTimerはタイマーの状態を返します。
これは呼ばれた回数で処理を変えるようなエージェントを作成する場合、対処が非常に困難だと思われます。
共有ライブラリや snmpd組み込みによる方法でsnmpwalkを試しても問題無かったことから、これはバグだと思われます。
暫定対処として、snmpwalkではなくsnmpgetを利用します。
set-requestは、mtuTrapおよびmtuTimerに対して、下記のように実行できます。どちらも数値の0か1のみを許容し、それ以外はエラーを返します。
mtuTrapは、状態が"OFF"(0)の時に"ON"(1)がセットされた時、もしくは逆の時にTrapが飛び、状態が逆転します。状態の確認についてはmtuObject1を参照することで表示されます。
% snmpwalk -v 2c -c localcom localhost MATSU-TEST-MIB::mtuObject1.0 MATSU-TEST-MIB::mtuObject1.0 = STRING: matsutest1, pid:[16165] timer:OFF:[0] trap:OFF call_count:[9] % snmpset -v 2c -c localcom localhost MATSU-TEST-MIB::mtuTrap.0 i 1 MATSU-TEST-MIB::mtuTrap.0 = INTEGER: on(1) % snmpwalk -v 2c -c localcom localhost MATSU-TEST-MIB::mtuObject1.0 MATSU-TEST-MIB::mtuObject1.0 = STRING: matsutest1, pid:[16165] timer:OFF:[0] trap:ON call_count:[10] % % tail /var/log/snmpd.log Aug 23 17:26:05 hb2-host5 snmptrapd[6184]: 2008-08-23 17:26:05 localhost.localdomain [UDP: [127.0.0.1]:32803]: DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (261186) 0:43:31.86 SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.12345.3.1 SNMPv2-SMI::enterprises.12345 = INTEGER: 7 SNMPv2-SMI::enterprises.12345 = STRING: "ON"
mtuTimerは、状態が"OFF"(0)の時に"ON"(1)がセットされた時にタイマーが開始され、そのまま30秒経過するとTrapが飛び、"OFF"(0)になります。
タイマーカウントが30秒に達しないうちに中に"OFF"(0)がセットされると(つまりmtuTimerに対しsnmpsetで"OFF"が設定されると)、タイマーは中断し、カウンターも0に戻ります。状態確認についてはmtuTrap同様、mtuObject1を参照すれば分かります。
% snmpwalk -v 2c -c localcom localhost MATSU-TEST-MIB::mtuObject1.0 MATSU-TEST-MIB::mtuObject1.0 = STRING: matsutest1, pid:[16165] timer:OFF:[0] trap:ON call_count:[11] % snmpset -v 2c -c localcom localhost MATSU-TEST-MIB::mtuTimer.0 i 1 MATSU-TEST-MIB::mtuTimer.0 = INTEGER: on(1) % snmpwalk -v 2c -c localcom localhost MATSU-TEST-MIB::mtuObject1.0 MATSU-TEST-MIB::mtuObject1.0 = STRING: matsutest1, pid:[16165] timer:ON:[2] trap:ON call_count:[12] % % tail /var/log/snmpd.log Aug 23 17:29:46 hb2-host5 snmptrapd[6184]: 2008-08-23 17:29:46 localhost.localdomain [UDP: [127.0.0.1]:32803]: DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (283326) 0:47:13.26 SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.12345.3.2 SNMPv2-SMI::enterprises.12345.2.2.0 = INTEGER: 31 SNMPv2-SMI::enterprises.12345.2.2.0 = STRING: "matsutest1, pid:[16165] timer:ON:[2] trap:ON call_count:[12]" %