====== 10 Zabbixでsnmptrapを受信する ====== snmptrapはエージェントからマネージャへsnmpで情報を送る仕組みです。 ・エージェント(snmpで情報を送る側) ・マネージャ(snmpで情報を受信する側)※今回コチラがZabbix側 ===== ①マネージャ側 ===== ==== 1.snmptrapdを起動する ==== snmptrapを受けると、スクリプトに渡してzabbix_senderで送る仕組み === snmptrapd.confを修正 === # /etc/snmp/snmptrapd.conf authCommunity log,execute,net snmptraptest traphandle default /bin/bash /usr/local/bin/zabbix_snmptrap.sh この場合、「snmptraptest」いうコミュニティ名で送信されたSNMPv1またはv2cのコミュニティ名を使って送信されたSNMPトラップを受諾する。 そして挙動として、「ログ出力(log)」「コマンドの実行(execute)」「別のネットワークへの転送(net)」を許すという意味だ。 authCommunityの代わりに以下のように記述すると、認証を無効にできます。(どのコミュニティからもで受け付けるようになる) disableAuthorization yes === 実行するプログラム「zabbix_snmptrap.sh」を作成 === /usr/local/bin/zabbix_snmptrap.sh #!/bin/sh ZABBIX_SERVER="127.0.0.1"; ZABBIX_PORT="10051"; ZABBIX_SENDER="/usr/bin/zabbix_sender"; KEY="snmptraps"; 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` enterprise=`echo $enterprise|cut -f2 -d' '` oid=`echo $oid|cut -f11 -d'.'` community=`echo $community|cut -f2 -d'"'` str="$hostname $address $community $enterprise $oid" $ZABBIX_SENDER -z $ZABBIX_SERVER -p $ZABBIX_PORT -s $hostname -k $KEY -o "$str" echo $str >> /tmp/snmptrap.log echo $ZABBIX_SENDER -z $ZABBIX_SERVER -p $ZABBIX_PORT -s $hostname -k $KEY -o "$str" >> /tmp/snmptrap.log === hostsを設定しておく === 名前解決できないホストの場合、ホスト名の部分がとなってしまう為、/etc/hostsに書いておく。 ・ホスト名がUNKOWNの例 Feb 26 09:28:43 watch73 snmptrapd[12672]: 2014-02-26 09:28:43 [UDP: [192.168.42.250]:162]: DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (411709084) 47 days, 15:38:10.84 SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.12925.1.8 SNMPv2-SMI::enterprises.12925.1.7.1.5.1 = STRING: "test_trap" SNMPv2-SMI::enterprises.12925.1.7.1.6.1 = STRING: "This is a test trap sent from InServ 3PAR2001, Serial Number 1437760" SNMPv2-SMI::enterprises.12925.1.7.1.4.1 = Gauge32: 3 SNMPv2-SMI::enterprises.12925.1.7.1.2.1 = INTEGER: 6 SNMPv2-SMI::enterprises.12925.1.7.1.3.1 = STRING: "2014-02-26 09:28:43 JST" SNMPv2-SMI::enterprises.12925.1.7.1.7.1 = Gauge32: 4294967295 SNMPv2-SMI::enterprises.12925.1.7.1.8.1 = Gauge32: 4294967295 SNMPv2-SMI::enterprises.12925.1.7.1.9.1 = INTEGER: 5 SNMPv2-SMI::enterprises.12925.1.7.1.10.1 = STRING: "1437760" === snmptrapdの起動 === # /etc/init.d/snmptrapd start # chkconfig snmptrapd on ==== 2.アイテムの設定 ==== タイプ: Zabbixトラッパー キー: snmptraps ※キーはzabbix_snmptrap.shで指定したキーを設定 ===== ②エージェント側 ===== テストは下記などで実行する。 # snmptrap -v 2c -c snmptraptest 192.168.42.254 '' snmptraps snmptraps s "Test Message" エージェントの送信側(ネットワーク機器)によって、送信の形が違うので その場合、zabbix_snmptrap.shを調節する。 {{tag>zabbix snmp}}