2011年07月04日

zabbixのsnmptrap受信設定とzabbix_senderの利用

zabbix_senderを使ってzabbixのsnmptrapの受信設定を行ってみた。
(環境はZabbix 1.8.5)

1.ZABBIXサーバ設定(template,item,trigger,host)
 ZABBIX Web Interface
 Configuration->Templates->Create Template
 Screen shot 2011-07-05 at 5.58.58.png


 Templateができたら、できたTemplateの
 Items->Create Items。あんまり編集するところは無い
 Screen shot 2011-07-06 at 5.06.22.png
 Description: 適当に分かりやすいものを
 Type: Zabbix trapper
 Key: snmptraps。zabbix_senderで送りつけるときに送信側でも同じ値を使わないと拒否される。
 Type of Information: Text
 Keep history: 90
 Status: Active

 Itemができたら、できたItemのTrigger作成
 trap.png
 適当にTestというメッセージが入っていた場合に反応するように設定してみた。

 これでTemplateの設定は完了。
 最後にConfiguration->Hostsでsnmptrap受信用のホストを作成する
 hosts.png
 Name: snmptraps。ここはzabbix_senderで指定する送信元ホスト名と一緒にしないと拒否される

2.zabbix_sender受信テスト 
 zabbix_senderを利用して設定がうまく働いてくれるかを確認する

 /usr/sbin/zabbix_sender --help  # --helpで大体の使い方は分かる
 /usr/sbin/zabbix_sender -vv -z 127.0.0.1 -s snmptraps -k snmptraps -o "Test"
  -z zabbix_serverアドレス。同じサーバから試したのでlocalhost
  -vv verbose mode。-vもあるけど、-vvで更に細かく表示
  -s ホスト名。ipアドレスとかではなく、zabbixのconfiguration->HostのNameで登録してあるホスト名
  -k key。Itemで設定したKeyを入れる
  -o 中身の内容
 
成功すると、Latest data,triggerで受信した内容を確認できる。

#失敗例
-sに設定したNameではなく、IPアドレスを入れていた場合等。Failed 1とカウントされている。
/usr/sbin/zabbix_sender -vv -z 127.0.0.1 -s 192.168.0.60 -k snmptraps -o "Test"
zabbix_sender [2898]: DEBUG: Answer [{
"response":"success",
"info":"Processed 0 Failed 1 Total 1 Seconds spent 0.000716"}]
Info from server: "Processed 0 Failed 1 Total 1 Seconds spent 0.000716"
sent: 1; skipped: 0; total: 1

#成功例
-sの内容を適切なものに変更。Processed 1とカウントされている。
/usr/sbin/zabbix_sender -vv -z 127.0.0.1 -s snmptraps -k snmptraps -o "Test"
zabbix_sender [2903]: DEBUG: Answer [{
"response":"success",
"info":"Processed 1 Failed 0 Total 1 Seconds spent 0.001742"}]
Info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.001742"
sent: 1; skipped: 0; total: 1

3.ZABBIXサーバ設定(snmptrapd,snmptrap.sh)
snmptrapd自体のインストールは割愛。aptやyumからnet-snmp関連のパッケージをインストールすれば良い
#当初忘れていたが、snmptrapd自体はインストールした段階では自動起動する設定はないのでzabbixと連携させて使いたい場合は
OS起動時に一緒に起動する設定を入れる必要がある

インストール後、/etc/snmp/snmptrapd.confを編集する(無ければ作成する)
 #例 trapを受診した場合traphandleでsnmptrap.shを起動するように設定するだけ
 authCommunity log,execute,net public #受信するコミュニティ名と許可する動作の設定
 traphandle default /bin/bash /etc/snmp/snmptrap.sh #動作させるスクリプトの設定

設定後、snmptrapdを起動若しくは再起動する。

ダウンロードしたzabbixのsource fileの
zabbix-1.8.5/misc/snmptrap/snmptrap.shを任意の場所にコピーする(この例の場合、/etc/snmp/snmptrap.sh)
コピー後、以下の場所を修正する
ZABBIX_SERVER=  zabbixサーバのホスト名/IPアドレスを指定
ZABBIX_PORT= サーバのポート。特に変えていない場合ははそのまま10051
ZABBIX_SENDER= zabbix_senderの場所。インストール環境によって場所が変わるので要チェック
KEY= Configuration->Itemsで設定したKeyを入れる。この例の場合は「snmptraps」
HOST= COnfiguration->Hostsで設定したNameを入れる。この例の場合は「snmptraps」

上記設定をsnmptrap.shから抜き出すとこんな感じになる(例の環境の場合)
# CONFIGURATION

ZABBIX_SERVER="127.0.0.1";
ZABBIX_PORT="10051";

ZABBIX_SENDER="/usr/sbin/zabbix_sender";

KEY="snmptraps";
HOST="snmptraps";


4.snmptrapコマンドを用いた動作確認
 snmptrapコマンド使ってsnmptrapを送ってみる。下は192.168.0.60のサーバへ送る例
 (snmptrap -v 1 -c public 192.168.0.60 .1.3.6.1.4.1.8072.99999 localhost .1.3.6.1.4.1.8072.99999.1 s "Test Message")
 
 うまくいくとMonitoring->Latest dataに取得したトラップが表示される。これで動作確認完了。

#うまく動作していない場合
 ・snmptrapdの受信の確認
   デフォルトの設定だと/var/log/messagesにトラップ受信ログが残るので、それが出ているかを見てみる。
 ・snmptrap.shの動作の確認
   各設定ファイルを下記内容の様に設定し、動きを見てみる。
  snmptrapd.conf : traphandle default /bin/bash /etc/snmp/snmptrap.sh >> /var/log/snmptrap_tmp.log
  snmptrap.sh : $ZABBIX_SENDER -z $ZABBIX_SERVER -p $ZABBIX_PORT -s $HOST -k $KEY -o "$str"
         ->$ZABBIX_SENDER -vv -z $ZABBIX_SERVER -p $ZABBIX_PORT -s $HOST -k $KEY -o "$str"

posted by ぴぺ at 20:58| Comment(0) | TrackBack(0) | UNIX系 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。