**目次 [#u3090d1e]
#Contents
***snmptrapd設定 [#r7e7fe00]
snmptrapdのインストールは割愛。~
snmptrapdにアクセスを許可するコミュニティ名とZABBIXへSNMPTrap内容を送信するスクリプトへの連携設定を行う。
-/etc/snmp/snmptrapd.conf
authCommunity log,execute,net private
authCommunity log,execute,net public
traphandle default /bin/bash /usr/local/zabbix/sbin/snmptrap.sh
-authCommunity [Options] [CommunityID]~
SNMPTrapを受信するコミュニティ名と許可するアクションを指定する。~
複数指定する場合は複数行記載する。~
[Options]では以下の項目を設定する。
|log|syslogやstdout等へのファイル出力を許可|
|execute|特定プログラムの実行を許可|
|net|別の通知先転送を許可(メール転送等)|
- traphandle default /bin/bash /usr/local/zabbix/sbin/snmptrap.sh~
ZABBIXに付属するSNMPTrap連携用スクリプトを指定する。~
パスはインストール先に準じた値に変更する。~
以上の設定を行い、snmptrapdを再起動する。
***ZABBIXサーバ設定 [#z9184bfe]
-/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]
-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)
***受信テスト [#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の受信に繰り返し失敗すると以下の様なログを吐く。
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