目次
snmptrapdのインストールは割愛。
snmptrapd.confにはsnmptrapdにアクセスを許可するコミュニティ名とZABBIXへSNMPTrap内容を送信するスクリプトへの連携設定を行う。
| log | syslogやstdout等へのファイル出力を許可 |
| execute | 特定プログラムの実行を許可 |
| net | 別の通知先転送を許可(メール転送等) |
authCommunity log,execute,net private authCommunity log,execute,net public traphandle default /bin/bash /usr/local/zabbix/sbin/snmptrap.sh
以上の設定を行い、snmptrapdを再起動する。
ZABBIXサーバ側はSNMPTrap連携用スクリプト(snmptrap.sh)を経由した情報の連携を行う。
付属のsnmptrap.shは環境に合わせて、以下の箇所を修正する。
# CONFIGURATION
ZABBIX_SERVER="{IP Address}";
ZABBIX_PORT="10051";
ZABBIX_SENDER="/usr/local/zabbix/sbin/zabbix_sender";
KEY="snmptraps";
HOST="snmptraps";バージョンによっては正常に動作しない場合がある。
この事例に当たった場合は連携スクリプトに対して後述の修正を行う。
WebUI上からアイテムの設定を行う
| タイプ | ZABBIXトラッパー |
| キー | snmptraps |
| データ型 | テキスト |
WebUI上からトリガーの設定を行う
{{HOSTNAME}:snmptraps.str(power-on)}=1({HOSTNAME}:snmptraps. nodata( 3600 ) }=0)&({HOSTNAME}:snmptraps. str( snmptraps,3600 ) }=0){{HOSTNAME}:snmptraps.nodata(86400)}=0)&{{HOSTNAME}:snmptraps.str(power-on,86400)}=1)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.
last message repeated 3 times
初期状態のスクリプトは正常に機能しないため修正を加える必要がある。
#!/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