ユーザ用ツール

サイト用ツール


01_linux:04_監視:zabbix:10_zabbixでsnmptrapを受信する

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
01_linux:04_監視:zabbix:10_zabbixでsnmptrapを受信する [2013/08/27 08:54] – [①snmptrapdを起動する] matsui01_linux:04_監視:zabbix:10_zabbixでsnmptrapを受信する [2020/02/28 11:08] (現在) – [②エージェント側] matsui
行 1: 行 1:
 +====== 10 Zabbixでsnmptrapを受信する ======
  
 +snmptrapはエージェントからマネージャへsnmpで情報を送る仕組みです。
 +
 +・エージェント(snmpで情報を送る側)
 +・マネージャ(snmpで情報を受信する側)※今回コチラがZabbix側
 +
 +===== ①マネージャ側 =====
 +
 +==== 1.snmptrapdを起動する ====
 +
 +
 +snmptrapを受けると、スクリプトに渡してzabbix_senderで送る仕組み
 +
 +=== snmptrapd.confを修正 ===
 +
 +<code console>
 +# /etc/snmp/snmptrapd.conf
 +authCommunity log,execute,net snmptraptest
 +traphandle default /bin/bash /usr/local/bin/zabbix_snmptrap.sh
 +</code>
 +この場合、「snmptraptest」いうコミュニティ名で送信されたSNMPv1またはv2cのコミュニティ名を使って送信されたSNMPトラップを受諾する。
 +そして挙動として、「ログ出力(log)」「コマンドの実行(execute)」「別のネットワークへの転送(net)」を許すという意味だ。
 +
 +authCommunityの代わりに以下のように記述すると、認証を無効にできます。(どのコミュニティからもで受け付けるようになる)
 +<code>
 +disableAuthorization yes
 +</code>
 +
 +=== 実行するプログラム「zabbix_snmptrap.sh」を作成 ===
 +
 +/usr/local/bin/zabbix_snmptrap.sh
 +<code console>
 +#!/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
 +</code>
 +
 +
 +=== hostsを設定しておく ===
 +<color red>名前解決できないホストの場合、ホスト名の部分が<UNKNOWN>となってしまう為、/etc/hostsに書いておく。</color>
 +
 +・ホスト名がUNKOWNの例
 +<code>
 +Feb 26 09:28:43 watch73 snmptrapd[12672]: 2014-02-26 09:28:43 <UNKNOWN> [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"
 +</code>
 +
 +=== snmptrapdの起動 ===
 +
 +<code console>
 +# /etc/init.d/snmptrapd start
 +# chkconfig snmptrapd on
 +</code>
 +==== 2.アイテムの設定 ====
 +タイプ: Zabbixトラッパー
 +キー: snmptraps
 +<color red>※キーはzabbix_snmptrap.shで指定したキーを設定</color>
 +
 +===== ②エージェント側 =====
 +
 +テストは下記などで実行する。
 +<code console>
 +# snmptrap -v 2c -c snmptraptest 192.168.42.254 '' snmptraps snmptraps s "Test Message"
 +</code>
 +
 +エージェントの送信側(ネットワーク機器)によって、送信の形が違うので
 +その場合、zabbix_snmptrap.shを調節する。
 +
 +{{tag>zabbix snmp}}