- 追加された行はこの色です。
- 削除された行はこの色です。
**目次 [#u3090d1e]
目次~
#Contents
***snmptrapd設定 [#r7e7fe00]
**設定手順 [#s6fc4e3d]
***''1. snmptrapd設定'' [#r7e7fe00]
snmptrapdのインストールは割愛。~
snmptrapdにアクセスを許可するコミュニティ名とZABBIXへSNMPTrap内容を送信するスクリプトへの連携設定を行う。
snmptrapd.confにはsnmptrapdにアクセスを許可するコミュニティ名とZABBIXへSNMPTrap内容を送信するスクリプトへの連携設定を行う。
-/etc/snmp/snmptrapd.conf
authCommunity log localnet
traphandle default /bin/bash /usr/local/zabbix/sbin/snmptrap.sh
-authCommunity log [CommunityID]~
SNMPTrapを受信するコミュニティ名を指定する。~
-''authCommunity [Options] [CommunityID]''~
SNMPTrapを受信するコミュニティ名と許可するアクションを指定する。~
複数指定する場合は複数行記載する。~
[Options]では以下の項目を設定する。
|log|syslogやstdout等へのファイル出力を許可|
|execute|特定プログラムの実行を許可|
|net|別の通知先転送を許可(メール転送等)|
- traphandle default /bin/bash /usr/local/zabbix/sbin/snmptrap.sh~
ZABBIXに付属するSNMPTrap連携用スクリプトを指定する。~
- ''traphandle default [SCRIPT NAME]''~
ZABBIXに付属するSNMPTrap連携用スクリプト(snmptrap.sh)を指定する。~
パスはインストール先に準じた値に変更する。~
-''snmptrapd.conf設定例''
authCommunity log,execute,net private
authCommunity log,execute,net public
traphandle default /bin/bash /usr/local/zabbix/sbin/snmptrap.sh
以上の設定を行い、snmptrapdを再起動する。
***ZABBIXサーバ設定 [#z9184bfe]
***''2. ZABBIXサーバ設定'' [#z9184bfe]
ZABBIXサーバ側はSNMPTrap連携用スクリプト(snmptrap.sh)を経由した情報の連携を行う。~
付属のsnmptrap.shは環境に合わせて、以下の箇所を修正する。~
-/usr/local/zabbix/sbin/snmptrap.sh
-''/usr/local/zabbix/sbin/snmptrap.sh''
# CONFIGURATION
ZABBIX_SERVER="{IP Address}";
ZABBIX_PORT="10051";
ZABBIX_SENDER="/usr/local/zabbix/sbin/zabbix_sender";
KEY="snmptraps";
HOST="snmptraps";
バージョンによっては正常に動作しない場合がある。~
この事例に当たった場合は連携スクリプトに対して後述の修正を行う。
***アイテム/トリガー設定 [#k936e28f]
***''3. アイテム設定'' [#i8326e85]
WebUI上からアイテムの設定を行う
***受信テスト [#zca9b9c5]
-SNMPTrap受信
|タイプ|ZABBIXトラッパー|
|キー|snmptraps|
|データ型|テキスト|
***''4. トリガー設定'' [#k936e28f]
WebUI上からトリガーの設定を行う
-''設定例1''~
Trap内に「power-on」の文字列が含まれる場合アラート
{{HOSTNAME}:snmptraps.str(power-on)}=1
-1時間以内にTrapを受信し、Trap内に「snmptraps」の文字列が含まれてない場合アラート
({HOSTNAME}:snmptraps. nodata( 3600 ) }=0)&({HOSTNAME}:snmptraps. str( snmptraps,3600 ) }=0)
-24時間以内にTrapを受信し、Trap内に「power-on」の文字列が含まれる場合アラート
{{HOSTNAME}:snmptraps.nodata(86400)}=0)&{{HOSTNAME}:snmptraps.str(power-on,86400)}=1)
***''5. 受信テスト ''[#zca9b9c5]
SNMPTrapを受信した際には/var/log/messagesに情報か記載される。
-正常に受信できている場合
-正常に受信できている場合~
正常に受信できている場合は以下の様なログが出力される。~
snmptrapd[11095]: 2009-04-03 00:51:13 192.168.1.249(via UDP: [192.168.1.249]:1712) TRAP, SNMP v1, community public SNMPv2-SMI::zeroDotZero Link Up Trap (0) Uptime: 67 days, 4:54:21.00 IF-MIB::ifIndex.7 = INTEGER: 7
-コミュニティ名の設定が間違っている場合
-アクセス拒否~
コミュニティ名の設定ミスなどでアクセスが拒否されている場合は以下のログが出力される。~
snmptrapd[10744]: No access configuration - dropping trap.
/var/log/messagesは同様の内容のログを束ねることでログサイズを圧縮する機能があるため、SNMPTrapの受信に繰り返し失敗すると以下の様なログを吐く。
-受信が失敗している場合~
/var/log/messagesは同様の内容のログを束ねることでログサイズを圧縮する機能があるため、SNMPTrapの受信に繰り返し失敗すると以下の様なログを吐く。~
last message repeated 3 times
**snmptrap.shが動作しない場合の対応 [#s87d5dba]
初期状態のスクリプトは正常に機能しないため修正を加える必要がある。
#!/bin/bash
# CONFIGURATION
ZABBIX_SERVER="127.0.0.1";
ZABBIX_PORT="10051";
ZABBIX_SENDER="/usr/local/zabbix/sbin/zabbix_sender";
KEY="snmptraps";
HOST="snmptraps";
# Execute
read hostname
read ip
read uptime
read oid
read address
read community
read enterprise
oid=`echo $oid|cut -f2 -d' '`
address=`echo $address|cut -f2 -d' '`
community=`echo $community|cut -f2 -d' '`
enterprise=`echo $enterprise|cut -f2 -d' '`
oid=`echo $oid|cut -f11 -d'.'`
community=`echo $community|cut -f2 -d'"'`
str="$hostname $address $community $enterprise $oid"
# Output
$ZABBIX_SENDER -z $ZABBIX_SERVER -p $ZABBIX_PORT -s $HOST -k $KEY -o "$str"
# Debug
echo $str > /tmp/snmptrap.log