trapの受信設定
設定の修正と再読み込み
snmptrapd.conf の修正
場所は「/etc/snmp/snmptrapd.conf」。まずは全体的な設定
「doNotRetainNotificationLogs」はyesにすると「送信失敗時に再送信しない」?
「doNotLogTraps」はnoにすると「ログを出力しない」?
「doNotFork」はnoにすると「Forkしない」
次に受信元、「authCommunity TYPES COMMUNITY [SOURCE [OID | -v VIEW ]]」みたいに書けばいいらしい、今回はlogとexecuteとnetをpublicコミュニティから受信する。
「disableAuthorization」がnoなので「認証あり」
いよいよsyslogに出力する設定。
文法はこれ
traphandle トラップOID 受信時に実行するコマンド 引数というわけで「すべてのTrap」を「syslogに出力」するには以下
traphandle default /usr/bin/logger
すべて合わせると以下のようになるっぽい
#### When Recieve Trap #default : write to syslog traphandle default /usr/bin/logger #### Settings doNotRetainNotificationLogs yes doNotLogTraps no doNotFork no pidFile /var/run/snmptrapd.pid # authCommunity TYPES COMMUNITY [SOURCE [OID | -v VIEW ]] #authCommunity log "community" 192.168.1.0/24 authCommunity log,execute,net public disableAuthorization no
設定の再読み込み
snmptrapdの設定を再読み込み%sudo service snmptrapd reload
Trapの送信方法
トラップを送信するコマンドには「snmptrap」を使ってみる。 こいつがめんどくさくて、SNMPv1のときとSNMPv2cのとき、SNMPv3の時で使い方が違う・・・SNMPv1の場合
以下はv1の時。snmptrap -v 1 共通オプション エンタープライズOID 送信元ホスト名 一般トラップ番号 固有トラップ番号 時刻 [パラメータのOID 型 値]...例えばこんな風になる。
snmptrap -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.8072.99999 127.0.0.1 6 1 '' .1.3.6.1.4.1.8072.99999.1 s "Test Message"
意味 | ||
---|---|---|
共通オプション | -c public 127.0.0.1 | コミュニティはpublic、送信先は127.0.0.1 |
エンタープライズOID | .1.3.6.1.4.1.8072.99999 | net-SNMPのトラップ |
送信元ホスト名 | 127.0.0.1 | |
一般トラップ番号 | 6 | net-SNMP独自の電文なので、「ベンダ固有」 |
固有トラップ番号 | 1 | トラップの番号 |
時刻 | '' | 現在時刻 |
パラメータのOID | .1.3.6.1.4.1.8072.99999.1 | トラップ |
型 | s | 型、今回はString |
値 | "TestMessage" | 内容 |
SNMPv2cやSNMPv3の場合
以下はv2cの時。snmptrap -v 2c 共通オプション 時刻 トラップOID [OID 型 値]...例えばこんな風になる。
snmptrap -v 2c -c public localhost '' .1.3.6.1.4.1.8072.99999 .1.3.6.1.4.1.8072.99999.1 s "Test Message"
意味 | ||
---|---|---|
共通オプション | -c public 127.0.0.1 | コミュニティはpublic、送信先は127.0.0.1 |
エンタープライズOID | .1.3.6.1.4.1.8072.99999 | net-SNMPのトラップ |
送信元ホスト名 | 127.0.0.1 | |
時刻 | '' | 現在時刻 |
トラップのOID | .1.3.6.1.4.1.8072.99999 | トラップ |
パラメータのOID | .1.3.6.1.4.1.8072.99999.1 | トラップ |
型 | s | 型、今回はString |
値 | "TestMessage" | 内容 |
送信してみる
というわけで、ためしに送信してみる。% logger "==== This is SNMP Traptesting...====" % sudo snmptrap -v 2c -c public localhost '' .1.3.6.1.4.1.8072.99999 .1.3.6.1.4.1.8072.99999.1 s "Test Message" % sudo tail /var/log/messages (前略) Sep 16 15:14:33 myhost yosilove: ==== This is SNMP Traptesting...==== Sep 16 15:14:52 myhost snmptrapd[30522]: 2012-09-16 15:14:52 localhost [UDP: [127.0.0.1]:39309->[127.0.0.1]]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (597278044) 69 days, 3:06:20.44#011SNMPv2-MIB::snmpTrapOID.0 = OID: NET-SNMP-MIB::netSnmp.99999#011NET-SNMP-MIB::netSnmp.99999.1 = STRING: "Test Message" Sep 16 15:14:52 myhost logger: localhost Sep 16 15:14:52 myhost logger: UDP: [127.0.0.1]:39309->[127.0.0.1] Sep 16 15:14:52 myhost logger: DISMAN-EVENT-MIB::sysUpTimeInstance 69:3:06:20.44 Sep 16 15:14:52 myhost logger: SNMPv2-MIB::snmpTrapOID.0 NET-SNMP-MIB::netSnmp.99999 Sep 16 15:14:52 myhost logger: NET-SNMP-MIB::netSnmp.99999.1 "Test Message"どうやらできたらしい。
0 comments:
コメントを投稿