SlideShare a Scribd company logo
1 of 11
Download to read offline
LLD(ローレベルディスカバリ)を弄り倒せ
zabbix_senderを併用してらくらく可視化
山根 健志/ Takeshi YAMANE/ふりっぱぁ
@fripper1214
fripper1214@gmail.com
第6回 ZABBIX-JP勉強会
2014/04/12 Tokyo
zabbix_sender の動作って‥
監視対象側からサーバに向けて、任意の値を投げ込める!
zabbix_agentd 入れなくてもいけるし便利~♪
しかも‥
• 任意のホストのアイテムに対して情報を叩き込める!
対象のホスト自身からでなくてもOK!
• アイテムの型 (整数・小数・文字列) どれでもOK!
sender に渡せば、結構なんでも登録できちゃいます
• zabbix_proxy 経由でも使える!
sender の送信先を zabbix_server 宛じゃなくて zabbix_proxy 宛にすればOK!
• 複数の値をまとめて登録できる!
引数にファイルを渡す or 標準入力からリダイレクトで読ませる
• 時刻情報まで捏造できる!
日次集計とか、その日の0時指定にできてグラフもキレイ!
LLD によるアイテム登録
普通なら‥
ZabbixエージェントとかZabbixエージェント(アクティブ)で、ディスカバリルー
ルの項目を登録。
そんでもって、アイテムやトリガーのプロトタイプとかを指定して、任意の項目
を作る‥といった感じですよね?
あれ?Zabbixエージェント(アクティブ)って‥
agentd が定期的にチェックして、server へ値を
push で送信するんじゃなかったっけ?
値を送信って‥ sender でも同じなんじゃないの?
LLD でやりとりされる値
標準の‘vfs.fs.discovery’で見てみると、単なるJSON形式
[data] という項目の値として、ディスカバリ結果が配列っぽく書
かれているだけ‥
スクリプト等で適当な項目リストを作って、
送ってあげればイケそうな感じ‥‥?
LLDに値を叩き込む!-今回の目的-
目的:日次処理での http アクセスログ内容の集計
特定 cgi でファイルのアップ・ダウン要求してるログ行を
アクセス元ユーザ、get/put の種別で集計した結果が欲しい
最終的に、アイテムを以下のカタチで作りたい‥
• 「アクセス元ユーザ」別
• 「getの回数」「putの回数」 - 整数値
でも‥いつユーザ増やすかわかんないし‥
→やっぱりLLDでアイテム作るべきだよね!
集計してから、どうやってZabbixに登録する?
• どうやって回数を集計しよう‥?
ログファイルをgrepして、awkに掛ければ、
ユーザ別・get/put目的別の集計は簡単だよね‥ →シェル芸!
• 日次処理だしなぁ‥
Zabbixのアイテムだと間隔は指定できるけど、
実行タイミングは制御できない‥ → cron
• ログが大きいと時間掛かるなぁ‥
agentdだとタイムアウトが怖い‥ → zabbix_sender
• ディスカバリにするとなると‥
ディスカバリルールのためにログを舐めて項目作らせて、
結果値を登録するために、また舐めるの? →2回も舐めたくない!
LLDルールの結果を sender で送って、sleep で少し待ってから、
同じ cron 処理の中で結果値も sender で送れば1度で済むんじゃ?
cron での処理内容 -ディスカバリ部分-
• 前日のログを舐めて、ユーザ別・項目別に集計
AAA 20 0
BBB 120 337
CCC 0 78
• ruby で、ユーザIDのリストに相当する JSON を生成
senderでうまく扱うために、必ず1行の JSON データにする!改行含まないこと!
{“data”:[{“{#USRID}”:”AAA”}, {“{#USRID}”:”BBB”}, {“{#USRID}”:”CCC”}]}
• sender で、ディスカバリルールの項目値として投げ込む
投げ込む際には、標準入力に値を渡す。
ついでに –t オプションで昨日の0時のデータにしておく‥(捏造じゃないよ!)
ファイル or 標準入力だと、1行あたり1データと認識されるから、複雑なJSON値でもOK!
HOSTNAME user.log.count.discovery 1397051539 {“data”:[{“{#USRID‥ }
• ディスカバリルールの設定は [Zabbixトラッパー]に!
普通にアイテム値を投げ込む時と同じく、trapperタイプにしておけばOK!
cron での処理内容 -項目値の登録部分-
• sleepで少し待つ!(2分間)
待たなくても大丈夫かもしれない?
でも zabbix_server が重くても大丈夫かどうか心配 →とりあえず待っちゃえ
• 集計結果のリストから、sender へ渡す文字列を作る
やっぱり標準入力を使う。複数項目の値を複数行でまとめて送信!
もちろん、値のタイムスタンプは昨日の0時!
HOSTNAME user.log.count.get[AAA] 1397051539 20
HOSTNAME user.log.count.put[AAA] 1397051539 0
HOSTNAME user.log.count.get[BBB] 1397051539 120 ・・・(略)・・・
• ど~んと値を送信‥ 100ユーザなら200項目分‥
sender を1回実行すれば複数項目一括登録OKなんてチョー便利!
• アイテムのプロトタイプも、やっぱり[Zabbixトラッパー]
sender を使う場合のお約束ですね!
サーバでの設定は‥?
ディスカバリルールと、アイテムのプロトタイプはこんな感じ‥
• ディスカバリルール
• アイテムのプロトタイプ
登録された値は‥?
• 最新の値を見てみると‥?
タイムスタンプ付きで送っているから、
その日の0時のデータになってる!
• グラフも作ってみた~
毎日の変化・傾向が、放っといても可視化できて便利!
結論!
• LLD(ローレベルディスカバリ)は神!
• zabbix_sender は神!
Zabbix って、監視・警告だけじゃないよ!
こういった「可視化」だってできるんだから!
ちょ‥ワシが神様‥ >

More Related Content

What's hot

What's hot (20)

ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
 
Zabbix概論
Zabbix概論Zabbix概論
Zabbix概論
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
Zabbix概論2018
Zabbix概論2018Zabbix概論2018
Zabbix概論2018
 
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajp
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
脆弱性ハンドリングと耐える設計 -Vulnerability Response-脆弱性ハンドリングと耐える設計 -Vulnerability Response-
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
 
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
 

Recently uploaded

Recently uploaded (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

LLD(ローレベルディスカバリ)を弄り倒せ、zabbix_senderを併用してらくらく可視化