SlideShare a Scribd company logo
7
Most read
12
Most read
21
Most read
【Zabbix2.0】
     SNMPTTによる
トラップメッセージの編集
         2013.03 @qryuu




    1                     2013/3/9
自己紹介



 HN       :九龍真乙
 所属       :自宅ラック勉強会
 TwitterID: @qryuu




                  2    2013/3/9
Zabbix2.0でのSNMPTrap監視




          3             2013/3/9
Zabbix2.0でのSNMPTrap監視

 Zabbix2.0ではSNMPTrapメッセージを
  SNMPTT(SNMP Trap Translator)を使って整形し、
  SNMPTrapperFileに出力されたメッセージを
  SNMPTrapperという専用プロセスによって収集します。




                   4                     2013/3/9
SNMP-Trap監視

Zabbix1.8              Zabbix2.0
    snmptrapd             snmptrapd



 サンプルスクリプト                  handler
    または                    SNMPTT
  自作スクリプト                 TrapperFile



  zabbix_sender          snmp_trapper




  Zabbix_Trapper          snmptrap




                   5                    2013/3/9
snmpttによるTrapの動き

  SNMPTrap       snmptrapd      handler




                                 snmptt
 snmp trapper    snmptt.log      (.conf)
                              +カテゴリ,重要度




key:snmptrap[<
重要度>"カテゴリ
      名"]


                    6                      2013/3/9
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
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
unmatched trapのロギング設定




アイテム登録の無いIPアドレスからのSNMPTrapを受信した際に、zabbix_server.logに
unmatched trap received from[IPaddress]:~~メッセージを記録するかどうかは[一般設
定]-[その他のパラメータ]の設定により変わります。

[マッチしないSNMPトラップをログに記録]の
チェックをはずした場合、zabbix_server.logにunmatched trap のメッセージは出力されな
くなります。



                             9                            2013/3/9
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
SNMPTTのインストール

 環境設定:
 インストールディレクトリ:/usr/local/snmptt/
  mib変換ファイルディレクトリ:/etc/snmp/snmptt_confs/
  TrapperFileパス:/var/log/snmp/zabbix_traps.tmp
  logファイルパス: /var/log/snmptt/

 パスは任意に変更することが可能です。




                              11                 2013/3/9
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
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
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
動作用ディレクトリの作成

 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
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
}
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
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
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
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
監視設定のポイント

 Zabbix2.0ではSNMPTTのmib変換ファイルにより、トラップ毎に別々のキー
  ワード、重要度を設定することができます。
 SNMPTrapFileに記録されるキーワード・重要度が異なる場合、
  Zabbix2.0では別々のアイテムとして登録することが出来るので
  トリガー設定では、データを受信したことだけを検知し、
  詳細はアイテム値をみる事で、トリガーを簡略化することができます。




                     21                        2013/3/9
参考資料

 謝辞:今回の検証においては以下の資料を参考にさせていただきました。

 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

More Related Content

PDF
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
 
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
 
PDF
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
 
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
 
PDF
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
 
PPTX
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
シスコシステムズ合同会社
 
PDF
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
PDF
20200630 AWS Black Belt Online Seminar Amazon Cognito
Amazon Web Services Japan
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
 
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
 
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
シスコシステムズ合同会社
 
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
Amazon Web Services Japan
 

What's hot (20)

PDF
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
 
PDF
20200212 AWS Black Belt Online Seminar AWS Systems Manager
Amazon Web Services Japan
 
PPTX
分散システムについて語らせてくれ
Kumazaki Hiroki
 
PDF
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
 
PPTX
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
シスコシステムズ合同会社
 
PPTX
え!?データがオンプレにあるけどPower BI で BI したいの?
Yugo Shimizu
 
PDF
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Akira Nakagawa
 
PDF
OpenStack勉強会
Yuki Obara
 
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
 
PDF
Ansibleで始めるインフラ構築自動化
dcubeio
 
PDF
20分でわかるgVisor入門
Shuji Yamada
 
PDF
明日からはじめるネットワーク運用自動化
Taiji Tsuchiya
 
PPTX
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
toshi_pp
 
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
 
PDF
vSRX on Your Laptop : PCで始めるvSRX ~JUNOSをさわってみよう!~
Juniper Networks (日本)
 
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
PDF
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
Amazon Web Services Japan
 
PDF
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
 
PDF
Hadoop入門
Preferred Networks
 
PPTX
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
Amazon Web Services Japan
 
分散システムについて語らせてくれ
Kumazaki Hiroki
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
シスコシステムズ合同会社
 
え!?データがオンプレにあるけどPower BI で BI したいの?
Yugo Shimizu
 
Internet Week 2018 知っておくべきIPv6とセキュリティの話
Akira Nakagawa
 
OpenStack勉強会
Yuki Obara
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
 
Ansibleで始めるインフラ構築自動化
dcubeio
 
20分でわかるgVisor入門
Shuji Yamada
 
明日からはじめるネットワーク運用自動化
Taiji Tsuchiya
 
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
toshi_pp
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
 
vSRX on Your Laptop : PCで始めるvSRX ~JUNOSをさわってみよう!~
Juniper Networks (日本)
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
Amazon Web Services Japan
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
 
Hadoop入門
Preferred Networks
 
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
Ad

Viewers also liked (6)

PPTX
【 Zabbix 2.0 】zabbix 2.0による簡単 MySQL 監視 #Zabbix
真乙 九龍
 
PDF
LLD(ローレベルディスカバリ)を弄り倒せ、zabbix_senderを併用してらくらく可視化
Takeshi Yamane
 
PDF
例外設計における大罪
Takuto Wada
 
PPTX
【 Zabbix 2.1 】 zabbix 2.2のVM監視機能評価 #Zabbix #自宅ラック勉強会
真乙 九龍
 
PPTX
【Zabbix 2.1】zabbix2.1.6→2.1.7 の変更点
真乙 九龍
 
PPTX
【 Zabbix 2.2 】zabbix update 2.0 to 2.2
真乙 九龍
 
【 Zabbix 2.0 】zabbix 2.0による簡単 MySQL 監視 #Zabbix
真乙 九龍
 
LLD(ローレベルディスカバリ)を弄り倒せ、zabbix_senderを併用してらくらく可視化
Takeshi Yamane
 
例外設計における大罪
Takuto Wada
 
【 Zabbix 2.1 】 zabbix 2.2のVM監視機能評価 #Zabbix #自宅ラック勉強会
真乙 九龍
 
【Zabbix 2.1】zabbix2.1.6→2.1.7 の変更点
真乙 九龍
 
【 Zabbix 2.2 】zabbix update 2.0 to 2.2
真乙 九龍
 
Ad

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

PDF
Zabbix2.0.3の新機能と変更点
真乙 九龍
 
PDF
Rubyで創るOpenFlowネットワーク - LLまつり
Yuya Rin
 
PDF
Gangliaはじめました
yuzorock
 
PDF
MongoDB Configパラメータ解説
Shoken Fujisaki
 
PDF
"Bits from the Apache Maintainers / Upcoming apache2 2.4 transition" を読んでみた
Tsuyoshi Yamada
 
PDF
InfiniBand on Debian
Taisuke Yamada
 
PDF
Gingerbread
android sola
 
PPT
Osc10do linux nextstep
smokey monkey
 
PDF
Ruby でパケットパーサを作ろう
Yasuhito Takamiya
 
PDF
Tokyo.R#16 wdkz
Kazuya Wada
 
PDF
2014 dart flight school in Tokyo
nothingcosmos
 
PDF
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
PDF
スタート低レイヤー #0
Kiwamu Okabe
 
PDF
#logstudy 01 rsyslog入門
Takashi Takizawa
 
PPT
Debug Hacks Conference 2009
Hiro Yoshioka
 
PPTX
ZabbixとAWS
真乙 九龍
 
PDF
Djangoとweb2pyをapacheに組込む
2bo 2bo
 
PDF
Linuxサーバのセキュリティ対策 part1
Kazunori Inaba
 
PDF
Start-padrino
Uchio Kondo
 
PPTX
Tremaとtrema edgeの違い
hiroshi oshiba
 
Zabbix2.0.3の新機能と変更点
真乙 九龍
 
Rubyで創るOpenFlowネットワーク - LLまつり
Yuya Rin
 
Gangliaはじめました
yuzorock
 
MongoDB Configパラメータ解説
Shoken Fujisaki
 
"Bits from the Apache Maintainers / Upcoming apache2 2.4 transition" を読んでみた
Tsuyoshi Yamada
 
InfiniBand on Debian
Taisuke Yamada
 
Gingerbread
android sola
 
Osc10do linux nextstep
smokey monkey
 
Ruby でパケットパーサを作ろう
Yasuhito Takamiya
 
Tokyo.R#16 wdkz
Kazuya Wada
 
2014 dart flight school in Tokyo
nothingcosmos
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
スタート低レイヤー #0
Kiwamu Okabe
 
#logstudy 01 rsyslog入門
Takashi Takizawa
 
Debug Hacks Conference 2009
Hiro Yoshioka
 
ZabbixとAWS
真乙 九龍
 
Djangoとweb2pyをapacheに組込む
2bo 2bo
 
Linuxサーバのセキュリティ対策 part1
Kazunori Inaba
 
Start-padrino
Uchio Kondo
 
Tremaとtrema edgeの違い
hiroshi oshiba
 

More from 真乙 九龍 (20)

PDF
監視とは何か ~監視エンジニアのスキルと成長~
真乙 九龍
 
PPTX
監視論
真乙 九龍
 
PPTX
AWS ネージメントコンソール再入門 2019
真乙 九龍
 
PPTX
監視基盤 ~ZabbixとCloudWatch~
真乙 九龍
 
PPTX
レシピのすゝめ ~料理とお菓子と手順書と熱力学~
真乙 九龍
 
PPTX
子育てで覚える AWS Organizations 〜ITエンジニア英才教育〜
真乙 九龍
 
PPTX
re:invent2018 総ざらえ
真乙 九龍
 
PPTX
Zabbixを2分でインストール
真乙 九龍
 
PPTX
クラウド概論 2018
真乙 九龍
 
PPTX
NTPとうるう秒
真乙 九龍
 
PPTX
素晴らしきIAMポリシービジュアルエディタの世界
真乙 九龍
 
PPTX
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
真乙 九龍
 
PPTX
re:Invent2017で発表された新機能と運用
真乙 九龍
 
PPTX
Zabbix概論2018
真乙 九龍
 
PPTX
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
真乙 九龍
 
PDF
Systems manager ハンズオン ops jaw
真乙 九龍
 
PDF
Systems manager 入門 ops jaws
真乙 九龍
 
PPTX
Zabbix概論
真乙 九龍
 
PDF
閏秒挿入のお知らせ
真乙 九龍
 
PPTX
閏秒挿入のお知らせ
真乙 九龍
 
監視とは何か ~監視エンジニアのスキルと成長~
真乙 九龍
 
監視論
真乙 九龍
 
AWS ネージメントコンソール再入門 2019
真乙 九龍
 
監視基盤 ~ZabbixとCloudWatch~
真乙 九龍
 
レシピのすゝめ ~料理とお菓子と手順書と熱力学~
真乙 九龍
 
子育てで覚える AWS Organizations 〜ITエンジニア英才教育〜
真乙 九龍
 
re:invent2018 総ざらえ
真乙 九龍
 
Zabbixを2分でインストール
真乙 九龍
 
クラウド概論 2018
真乙 九龍
 
NTPとうるう秒
真乙 九龍
 
素晴らしきIAMポリシービジュアルエディタの世界
真乙 九龍
 
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
真乙 九龍
 
re:Invent2017で発表された新機能と運用
真乙 九龍
 
Zabbix概論2018
真乙 九龍
 
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
真乙 九龍
 
Systems manager ハンズオン ops jaw
真乙 九龍
 
Systems manager 入門 ops jaws
真乙 九龍
 
Zabbix概論
真乙 九龍
 
閏秒挿入のお知らせ
真乙 九龍
 
閏秒挿入のお知らせ
真乙 九龍
 

Recently uploaded (10)

PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 

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

  • 1. 【Zabbix2.0】 SNMPTTによる トラップメッセージの編集 2013.03 @qryuu 1 2013/3/9
  • 2. 自己紹介  HN :九龍真乙  所属 :自宅ラック勉強会  TwitterID: @qryuu 2 2013/3/9
  • 4. Zabbix2.0でのSNMPTrap監視  Zabbix2.0ではSNMPTrapメッセージを SNMPTT(SNMP Trap Translator)を使って整形し、 SNMPTrapperFileに出力されたメッセージを SNMPTrapperという専用プロセスによって収集します。 4 2013/3/9
  • 5. SNMP-Trap監視 Zabbix1.8 Zabbix2.0 snmptrapd snmptrapd サンプルスクリプト handler または SNMPTT 自作スクリプト TrapperFile zabbix_sender snmp_trapper Zabbix_Trapper snmptrap 5 2013/3/9
  • 6. snmpttによるTrapの動き SNMPTrap snmptrapd handler snmptt snmp trapper snmptt.log (.conf) +カテゴリ,重要度 key:snmptrap[< 重要度>"カテゴリ 名"] 6 2013/3/9
  • 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. 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. unmatched trapのロギング設定 アイテム登録の無いIPアドレスからのSNMPTrapを受信した際に、zabbix_server.logに unmatched trap received from[IPaddress]:~~メッセージを記録するかどうかは[一般設 定]-[その他のパラメータ]の設定により変わります。 [マッチしないSNMPトラップをログに記録]の チェックをはずした場合、zabbix_server.logにunmatched trap のメッセージは出力されな くなります。 9 2013/3/9
  • 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. 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. 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. 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. 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. 動作用ディレクトリの作成  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. 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. 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. 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. 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. 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. 監視設定のポイント  Zabbix2.0ではSNMPTTのmib変換ファイルにより、トラップ毎に別々のキー ワード、重要度を設定することができます。  SNMPTrapFileに記録されるキーワード・重要度が異なる場合、 Zabbix2.0では別々のアイテムとして登録することが出来るので トリガー設定では、データを受信したことだけを検知し、 詳細はアイテム値をみる事で、トリガーを簡略化することができます。 21 2013/3/9
  • 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