スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SNMPトラップ 

送信
snmptrapを用いる。

snmptrap -v 1 [COMMON OPTIONS] [-Ci] enterprise-oid agent generic-trap specific-trap uptime [OIDTYPE VALUE]...
snmptrap -v [2c|3] [COMMON OPTIONS] [-Ci] uptime trap-oid [OID TYPE VALUE]...
snmpinform -v [2c|3] [COMMON OPTIONS] uptime trap-oid [OID TYPE VALUE]...


SNMPv1トラップを投げる。

snmptrap -v 1 [COMMON_OPTIONS] [-Ci] enterprise-oid agent generic-trap specific-trap uptime [OID TYPE VALUE]...

enterprise-oid, agent, uptimeに空文字列を指定した場合にはデフォルト値として1.3.6.1.4.1.3.1.1(enterprises.cmu.1.1)、自ホスト名、自ホストのuptimeが用いられる。

TYPEの書式

i INTEGER(整数)
u UNSIGNED(符号なし整数)
c COUNTER32(32bitカウンタ)
s STRING(文字列)
x HEX STRING(16進数文字列)
d DECIMAL STRING(10進数)
n NULLOBJ(nullオブジェクト)
o OBJID(オブジェクトID)
t TIMETICKS
a IPADDRESS(IPアドレス)
b BITS

スポンサーサイト

SNMPトラップの送信と受信 

SNMPトラップの送信と受信

受信
snmptrapdを用いる。

snmptrapdの設定
/usr/share/snmp/snmptrapd.confで設定する。

traphandle {OID|default} PROGRAM [ARG]

  OIDにマッチするトラップを受信した際に起動するプログラムの指定
  OIDの代わりに文字列defaultを指定した場合にはいずれのtraphandleにもマッチしなかった場合にそれが適用される。
  PROGRAMはトラップ詳細を標準入力から受け取る。

  標準入力から受け取るトラップ詳細の書式は次の通り。
    HOSTNAME  送信元ホスト名。gethostbyname()でIPを名前解決して決定。
    IPADDRESS  送信元IPアドレス。
    VARBINDS   トラップとその変数を含むvariable bindingsのリスト。1番目はsystem.sysUpTime.0、2番目は...snmpTrap.snmpTrapOID.0にすべきである。以降はtrapに含まれるvariable bindingsである。
              SNMPv1では最後は...snmpTrap.snmpTrapEnterpriseとその値である。
              SNMPv1トラップは適切な方法でSNMPv2トラップのPDUタイプへ変換される。

createUser username (MD5|SHA) authpassphrase [DES]
  SNMPv3 ユーザーの作成?

format1 format
  SNMPv1 TRAPメッセージを表示するときに使うフォーマット。使用可能なレイアウト文字はsnmptrapd(8)参照。

format2 format
  SNMPv2 TRAP2メッセージとSNMPv2 INFORMメッセージを表示するときに使うフォーマット(SNMPv3はSNMPv2形式のTRAPとINFORMを使っている点に注意)。


net-snmp-5.3.1-19.el5_1.2のsnmptrapdはtraphandleコマンドを実行するとブロックしてしまう。このため呼び出されるコマンドは短時間で終了しなければ後から来た他のトラップを取りこぼす事になるかもしれない? それともソケットが受け取って置いてくれるから取りこぼしはしないが処理するのが遅れるのか? →どなたか教えて頂けませんか?

snmptrapdの起動

/etc/init.d/snmptrapd start

psを取ると引数として-Lsdと-p /var/run/snmptrapd.pidがついていた。

-Lsd      man snmpcmdによればログの出力先をsyslogのファシリティDAEMONとする指定。
-p PIDFILE  PIDファイルのパス指定。
-n       送信元IPアドレスを名前解決しない。

※注意:Cent5.0の場合、man snmptrapdで表示される日本語のman pageの内容が古くて役に立たない模様。英語版を参照の事。
・場合によってはファシリティDAEMONは大量のログ出力が行われるので、-Ls[0-7]としてファシリティLOCAL0~7へ変更した方が便利かもしれない。またトラップを沢山受け付けなければならない場合には、syslogdによる負荷を軽減するために/etc/syslogd.confで出力先指定の先頭に'-'を付ける事も検討した方がよいだろう。
・MIBファイル保存場所  /usr/share/snmp/mibs/ (おそらく) snmptrapdの引数-M DIRLISTでも制御可能な模様。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。