**目次 [#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


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS