※こちらは過去ブログで2015/11/28に投稿した記事をコピーしたものです。
Zabbix2.4でsnmpトラップを受信しようと思ったら、意外とハマったのでメモ。
CentOS-6.5, Zabbix-2.4, net-snmp-5.5, snmptt-1.4を使用。net-snmpとsnmpttはyumでインストールしました。
手順は以下マニュアルを参照。2.4のマニュアルを見るべきですが、英語なので2.2を参考しました。見た感じ内容は変わってなさそうなので、問題ないと思います。
https://www.zabbix.com/documentation/2.2/jp/manual/config/items/itemtypes/snmptrap
そもそもですが、Zabbixでトラップを受信する流れは以下の通りだそうです。
snmptrapdでトラップ受信し、snmpttに渡す
↓
snmpttはトラップを整形し、テキストファイルに出力
↓
snmpttが出力したファイルを、Zabbixが読み込む。
別に設定の順番は関係ないですが、分かりやすいよう上から順に設定。
snmptrapdの設定
1 2 3 4 5 6 |
# vi /etc/snmp/snmptrapd.conf -----以下の通り設定----- authCommunity log,execute,net public →コミュニティ名が"public"のトラップに対し、ログ出力、実行、転送を許可 traphandle default /usr/sbin/snmptthandler →traphandleでsnmpttにトラップを渡す |
snmpttの設定(snmptt.ini)
1 2 3 4 5 6 7 8 |
# vi /etc/snmp/snmptt.ini -----以下の通り設定----- log_enable = 1 →ログ出力を有効 log_file = /tmp/my_zabbix_traps.tmp →出力先ファイルを指定。後述のzabbix_serverの設定と一致していれば、任意の場所でOK date_time_format = %H:%M:%S %Y/%m/%d →ログに出力される日時のフォーマット |
snmpttの設定(snmptt.conf)
1 2 3 4 5 |
# vi /etc/snmp/snmptt.conf ファイルの最初に以下2行を追加 -----以下の通り設定----- EVENT general .* "General event" Normal FORMAT ZBXTRAP $aA $ar |
デフォルトのトラップフォーマットの定義、らしいです。マニュアル通り。
zabbix_serverの設定
1 2 3 4 5 6 |
# vi /etc/zabbix/zabbix_server.conf -----以下の通り設定----- StartSNMPTrapper=1 →SNMPトラッパープロセスを起動 SNMPTrapperFile=/tmp/my_zabbix_traps.tmp →読み込みファイルを指定。snmptt.iniのlog_fileの設定と合わせます。 |
プロセス再起動
ここまで設定したら、snmptrapd, snmptt, zabbix_serverをすべて再起動
ホストの設定
以降はzabbixの設定。設定→ホストでZabbix serverを選択し、SNMPインターフェースを追加
IPアドレスを127.0.0.1, ポートを161で追加
アイテムの追加
設定→ホストでZabbix serverのアイテムを選択し、画面右上の「アイテムの作成」でアイテムを追加
名前:任意
タイプ:SNMPトラップ
キー:snmptrap[“General”]
ホストインタフェース:127.0.0.1:161
→事前にSNMPインターフェースを追加しないと、ここで選択できません。
データ型:文字列
以降はお好みで。デフォルトでも可
トラップの追加
設定→ホストでZabbix serverのトリガーを選択し、画面右上の「トリガーの作成」でトリガーを追加
名前:任意
条件式:{Zabbix server:snmptrap[“General”].iregexp(*)}=1
→トリガー関数にiregexp(*)を使い、収集したアイテムをすべて検知させます。文字列で絞り込みたい場合は*部分を文字列にします。
以上で設定は完了。試しにCPU上でローカルホストにトラップを送信してみます。
1 |
snmptrap -v 2c -c public 127.0.0.1 '' .1.3.6.1.4.1.8072.99999 .1.3.6.1.4.1.8072.99999.1 s "Test Message" |
問題なくZabbixで検知しました。
最後までご覧いただきありがとうございました!よろしければ広告もご覧ください。