snmptrap
(net-snmp)コマンドの正しい形式は次のうちどれですか?
snmptrap -v 2c -c public Host "" NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification \
netSnmpExampleHeartbeatRate i 123456
または
snmptrap -v 2c -c public Host "" NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification \
netSnmpExampleHeartbeatRate.0 i 123456
つまり、変数バインディングに.0
がある場合とない場合がありますか?
実際には、これらの形式は両方とも機能しますが、どちらが正しいか、または違いは何ですか?
トラップで「スカラー」または「テーブル行」に関連するvarbindが参照されているかどうかによって異なります。
http://www.net-snmp.org/wiki/index.php/TUT:snmptrap 状態:
このコマンドには、(snmpsetコマンドの場合と同じように)VARIABLES句にリストされているvarbindの(OID、type、value)トリプルも含まれていることに注意してください。
テーブル行の例。
snmptrap -v 2c -c public Host:162 .1.3.6.1.6.3.1.1.5.3 .1.3.6.1.6.3.1.1.5.3 \
ifIndex i 2 ifAdminStatus i 1 ifOperStatus i 1
参考のため :
snmptranslate -m +ALL -Pu .1.3.6.1.6.3.1.1.5.3
IF-MIB::linkDown
Idは行を特定するifIndex
によって処理されるため、変数バインディングに.0
はありません。
スカラー行の例。
http://www.net-snmp.org/wiki/index.php/TUT:snmptrap 例を示します
snmptrap -v 1 -c public Host UCD-TRAP-TEST-MIB::demotraps "" 6 17 "" \
SNMPv2-MIB::sysLocation.0 s "Just here"
'SNMPv2-MIB :: sysLocation.0'はスカラーです。
ifIndexで識別されるテーブル行に関連する上記のIF-MIB::linkDown
の例とは異なり、ここでは.0
sがendはスカラーを正確に示します(SETしたときのように)
元の質問からのNetsnmpの例
mibs/NET-SNMP-EXAMPLES-MIB.txt
状態
netSnmpExampleHeartbeatRate OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"A simple integer object, to act as a payload for the
netSnmpExampleHeartbeatNotification. The value has
no real meaning, but is nominally the interval (in
seconds) between successive heartbeat notifications."
::= { netSnmpExampleNotificationObjects 1 }
つまり、notであり、実際の識別可能なアクセス可能なスカラーであるため、.0
を使用しないことをお勧めします。