Successfully reported this slideshow.
Your SlideShare is downloading. ×

【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 22 Ad
Advertisement

More Related Content

Slideshows for you (20)

Advertisement

Similar to 【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会 (20)

More from 真乙 九龍 (20)

Advertisement

Recently uploaded (20)

【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会

  1. 1. 【Zabbix2.0】 SNMPTTによる トラップメッセージの編集 2013.03 @qryuu 1 2013/3/9
  2. 2. 自己紹介  HN :九龍真乙  所属 :自宅ラック勉強会  TwitterID: @qryuu 2 2013/3/9
  3. 3. Zabbix2.0でのSNMPTrap監視 3 2013/3/9
  4. 4. Zabbix2.0でのSNMPTrap監視  Zabbix2.0ではSNMPTrapメッセージを SNMPTT(SNMP Trap Translator)を使って整形し、 SNMPTrapperFileに出力されたメッセージを SNMPTrapperという専用プロセスによって収集します。 4 2013/3/9
  5. 5. SNMP-Trap監視 Zabbix1.8 Zabbix2.0 snmptrapd snmptrapd サンプルスクリプト handler または SNMPTT 自作スクリプト TrapperFile zabbix_sender snmp_trapper Zabbix_Trapper snmptrap 5 2013/3/9
  6. 6. snmpttによるTrapの動き SNMPTrap snmptrapd handler snmptt snmp trapper snmptt.log (.conf) +カテゴリ,重要度 key:snmptrap[< 重要度>"カテゴリ 名"] 6 2013/3/9
  7. 7. snmpttによるTrapの動き 1. snmptrapdがsnmpTrapを受信 2. snmptrapdがsnmpttのhandlerをキック 3. Handlerがspoolファイルを生成 4. Snmpttはiniファイルで指定されたsleep秒数毎にspoolファイルを読み込み 5. Snmpttはmib変換ファイルに従い、書式整形、カテゴリ名、重要度情報を付加し、ファイルに出 力 6. Zabbixのsnmp trapperが5.のファイルを読み込む 7. log内の“ZBXTRAP” 文字列の後ろの文字列をIPアドレスと解釈し、当該IPアドレスと一致する SNMPインターフェイスを持つホストの タイプ:snmpトラップ キー:snmptrap[<重要度> “カテゴリ名”] に対してメッセージを登録する。 8. 重要度、カテゴリ名が一致しない場合 タイプ:snmpトラップ キー:snmptrap.fallbak に対してメッセージを登録する。 9. IPアドレスが一致しない場合、アイテムには登録せずzabbix_server.log(zabbix_proxy.log)に unmatched trap received from[IPaddress]:メッセージ というログが記録される。 ※IPアドレスが登録されていないホストからのTrapを集約登録する機能は無い。 7 2013/3/9
  8. 8. nmptt動作例 SNMPtrap(テストコマンド) snmptrap -v 1 -c public localhost .1.3.6.1.2.1.11 192.168.100.201 ''.1.3.6.1.2.1.2.2.1.1.1 i 2 /var/log/snmp/zabbix_traps.tmp (デフォルトファイルパス) 2013/03/08 00:46:36 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" 192.168.100.201 - ZBXTRAP 192.168.100.201 ポートNo.2 でlinkDownトラップを検知しました。 ホスト設定 SNMPエージェント 192.168.100.201 タイプ:snmp_trapper キー:snmptrap[Normal "Status Events“] ログの時間形式:yyyy/MM/dd hh:mm:ss 8 2013/3/9
  9. 9. unmatched trapのロギング設定 アイテム登録の無いIPアドレスからのSNMPTrapを受信した際に、zabbix_server.logに unmatched trap received from[IPaddress]:~~メッセージを記録するかどうかは[一般設 定]-[その他のパラメータ]の設定により変わります。 [マッチしないSNMPトラップをログに記録]の チェックをはずした場合、zabbix_server.logにunmatched trap のメッセージは出力されな くなります。 9 2013/3/9
  10. 10. snmptrapdの設定  SNMPTrap受信するのは、snmptrapdプロセスです。 SNMPTrapを受信したら、SNMPTTのhandlerをキックするように、 snmptrapd.confを編集します。 ~~~ #vi /etc/snmp/snmptrapd.conf traphandle default /usr/local/snmptt/sbin/snmptthandler disableAuthorization yes ~~~  SNMPTrapのoidに応じてメッセージに変換を行う操作はSNMPTTが行いま すので、snmptrapdでは変換を行わず、oidのまま引き渡すように、 snmptapdの起動スクリプトを編集します。 ~~~ #vi /etc/init.d/snmptrapd 変更前 OPTIONS=“-Lsd -p /var/run/snmptrapd.pid“ 変更後 OPTIONS="-m +ALL -Lsd -On -p /var/run/snmptrapd.pid" ~~~  編集が終わったら、snmptrapdを再起動します。 10 2013/3/10
  11. 11. SNMPTTのインストール  環境設定:  インストールディレクトリ:/usr/local/snmptt/ mib変換ファイルディレクトリ:/etc/snmp/snmptt_confs/ TrapperFileパス:/var/log/snmp/zabbix_traps.tmp logファイルパス: /var/log/snmptt/  パスは任意に変更することが可能です。 11 2013/3/9
  12. 12. SNMPTTのダウンロード  2013/03/07現在、SNMPTTの安定最新版はsnmptt_1.3となっています。  (snmptt_1.4bata2も公開されています。)  snmptt_1.3 http://sourceforge.net/projects/snmptt/files/snmptt/snmptt_1.3/snmptt _1.3.tgz/download インストールディレクトリの作成 # mkdir /usr/local/snmptt # mkdir /usr/local/snmptt/sbin SNMPTTダウンロード # cd /usr/local/snmptt # wget http://sourceforge.net/projects/snmptt/files/snmptt/snmptt_1.3/snmptt_1.3.tgz/download # tar zxvf snmptt_1.3.tgz 12 2013/3/9
  13. 13. Snmpttの構成  バイナリ  snmptt :snmptt本体  snmpttconvertmib :mibファイルからsnmptt用設定ファイルを作成する コンバータ  Snmptthandler:snmptrapdからtrapメッセージを受け取り spoolファイルを生成する  設定ファイル  Snmptt.ini:snmpttの設定ファイル 実行ファイル配置 # cd snmptt_1.3 # cp snmptt snmptthandler snmpttconvertmib /usr/local/snmptt/sbin/ # cd /usr/local/snmptt/sbin/ # chmod 755 snmptt snmpttconvertmib snmptthandler 設定ファイルの配置 # cp /usr/local/snmptt/snmptt_1.3/snmptt.ini /etc/snmp/ 13 2013/3/9
  14. 14. Snmptt.iniファイルの編集  /etc/snmp/snmptt.iniで変更を加えた部分についてだけ、記述します。 mode = daemon #動作モードをdaemonに変更 net_snmp_perl_enable = 1 net_snmp_perl_best_guess = 2 date_time_format = %Y/%m/%d %H:%M:%S #logの日時フォーマットです。アイテムの設定と合わせます。 (書式は異なるので注意) sleep = 1 #スリープ時間です、この秒数毎にspoolファイルを読み込みます。 デフォルトでは5秒毎です、1秒に変更します。 log_file = /var/log/snmp/zabbix_traps.tmp #Zabbix_server.confのデフォルトSNMPTrapFileパスに 合わせています。 log_system_enable = 1 unknown_trap_log_enable = 1 DEBUGGING_FILE = /var/log/snmptt/snmp.debug DEBUGGING_FILE_HANDLER = /var/log/snmptt/snmpttthandler.debug 14 2013/3/10
  15. 15. 動作用ディレクトリの作成  SNMPTTのログ・spool・SNMPTrapFile生成のため、ディレクトリの作成と パーミッションの設定を行います。 Snmpttユーザの作成 # useradd -s /sbin/nologin snmptt Spoolディレクトリの作成 # mkdir /var/spool/snmptt # chown snmptt.snmptt /var/spool/snmptt/ 起動スクリプトの配置 # cp /usr/local/snmptt/snmptt_1.3/snmptt-init.d /etc/init.d/snmptt # chkconfig --add snmptt # chkconfig snmptt on ログファイル用ディレクトリの作成 # mkdir /var/log/snmptt # chown snmptt.snmptt /var/log/snmptt SNMPTrapFile用に/var/log/snmp/ディレクトリのパーミッション変更 #chgrp shmptt /var/log/snmp 初期ファイルの作成 # touch /var/log/snmp/zabbix_traps.tmp #chown snmptt /var/log/snmp/zabbix_traps.tmp 15 2013/3/9
  16. 16. Logrotate設定  SNMPTrapFileはSNMPTrapを受信する度に追記されるため、 logローテションの設定を行います。 Logrotateファイルの配置 # cp /usr/local/snmptt/snmptt_1.3/snmptt.logrotate /etc/logrotate.d/  snmptt.logrotateの中身は以下の通りです。 /var/log/snmptt/snmptt*.log /var/log/snmptt/snmptthandler.debug /var/log/snmp/zabbix_traps.tmp { weekly notifempty missingok create 0644 snmptt rotate 1 } /var/log/snmptt/snmptt.debug { weekly notifempty missingok create 0644 snmptt postrotate /etc/init.d/snmptt reload >/dev/null 2>/dev/null || true endscript 16 2013/3/9 }
  17. 17. Mibファイルのコンバート  Mibファイルからsnmptt用mib変換ファイルを生成します。 この例では、net-snmp附属のIF-MIBを変換しています。 MIBファイルの変換 # cd /usr/local/snmptt/sbin # ./snmpttconvertmib --in=/usr/share/snmp/mibs/IF-MIB.txt --out=/etc/snmp/IF-MIB.conf.org --net_snmp_perl Zabbix用の識別コード挿入 # cd /etc/snmp/ #sed -e "s/^FORMAT¥s/FORMAT ZBXTRAP ¥$aA /g" IF-MIB.conf.org > IF-MIB.conf  Snmpttのmib変換ファイルはmibファイルの数だけ(Trap用の情報を持た ないmibは除きます。)必要になりますので、ディレクトリを分ける事をお勧 めします。 17 2013/3/9
  18. 18. Mib変換ファイルの編集  Mibファイルのコンバートにより以下の様なmib変換ファイルが生成されま す。(上下は省略しています) ~~~ EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Normal FORMAT ZBXTRAP $aA A linkDown trap signifies that the SNMP entity, acting in $* SDESC ~~~ EVENT linkUp .1.3.6.1.6.3.1.1.5.4 "Status Events" Normal FORMAT ZBXTRAP $aA A linkUp trap signifies that the SNMP entity, acting in an $* SDESC ~~~  Snmpttがこのファイルをロードしている場合、Zabbixでは以下の様に表示 されます。 18 2013/3/9
  19. 19. Mib変換ファイルの編集  先ほどのファイルを以下のように編集することにより、Trapメッセージを日本 語化することも可能です。 ~~~ EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Normal FORMAT ZBXTRAP $aA ポートNo.$* でlinkDownトラップを検知しました。 SDESC ~~~ EVENT linkUp .1.3.6.1.6.3.1.1.5.4 "Status Events" Normal FORMAT ZBXTRAP $aA ポートNo.$* でlinkUpトラップを検知しました。 SDESC ~~~  Snmpttがこのファイルをロードしている場合、Zabbixでは以下の様に表示 されます。 19 2013/3/9
  20. 20. Mib変換ファイルの読み込み設定  先ほどの様に作成したmib変換ファイルはsnmptt.iniにおいて、[TrapFiles] として定義することで読み込まれます。 [TrapFiles] の定義は、snmptt.iniファイルの最下部に記載されています。  TrapFilesの設定は絶対パスで行ってください。 ~~~ [TrapFiles] # A list of snmptt.conf files (this is NOT the snmptrapd.conf file). The COMPLETE path # and filename. Ex: '/etc/snmp/snmptt.conf' snmptt_conf_files = <<END /etc/snmp/snmptt.conf /etc/snmp/snmptt_confs/IF-MIB.conf.jp ~~~  Mib変換ファイルの編集を行った場合やsnmptt.iniの編集を行った場合、 必ずsnmpttの再起動を行ってください。 Snmpttのデーモンが再起動されるまで、設定は反映されません。 20 2013/3/9
  21. 21. 監視設定のポイント  Zabbix2.0ではSNMPTTのmib変換ファイルにより、トラップ毎に別々のキー ワード、重要度を設定することができます。  SNMPTrapFileに記録されるキーワード・重要度が異なる場合、 Zabbix2.0では別々のアイテムとして登録することが出来るので トリガー設定では、データを受信したことだけを検知し、 詳細はアイテム値をみる事で、トリガーを簡略化することができます。 21 2013/3/9
  22. 22. 参考資料  謝辞:今回の検証においては以下の資料を参考にさせていただきました。  ZABBIX-JP Study#5 Zabbix2.0rc1 SNMP Traps http://www.slideshare.net/HaruyoshiChiyoda/zabbixjp-study4- zabbix20rc1-snmp-traps  米麹の検証日記 SNMPTT その1 http://ricemalt.blog98.fc2.com/blog-entry-20.html 22 2013/3/9

×