Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Fluentdを優しく見守る監視事例    2012/08/22 Fluentd Meetup #2外道父@GedowFather                 Copyright © DRECOM Co., Ltd All Rights R...
自己紹介       Copyright © DRECOM Co., Ltd All Rights Reserved.   2
自己紹介■私は    外道父@GedowFather■所属    ドリコム■職種    インフラエンジニア■ブログ   http://blog.father.gedow.net/                        Copyright...
目 次      Copyright © DRECOM Co., Ltd All Rights Reserved.   4
目次      動作環境      ローカル監視      リモート監視      ・・・の3本くらいです              Copyright © DRECOM Co., Ltd All Rights Reserved.    ...
動作環境       Copyright © DRECOM Co., Ltd All Rights Reserved.   6
IDC (2)                              IDC (3)                                                             Agent            ...
プラグイン   Agent      大事なログ                                           flowcount log                                path に * ...
Fluentd      VS           Flume            OG            Copyright © DRECOM Co., Ltd All Rights Reserved.                 ...
Flume OG   十分な    機能        信頼の   (暗号化以外)             CDH付属      Javaだから       うんぬん                                       ...
Flume OG             不安定               数百台規模で              MASTERが不安定                メモリ不足 Agentのキューからの再送が不安定(タンス貯金現象)不安  ...
VS Fluentd     一択           Copyright © DRECOM Co., Ltd All Rights Reserved.                                              ...
td-agent にした方針としてパッケージ管理は大事社内にRubyエンジニアだらけ機能不足はプラグインでなんとかなる?全機能を満たせたインストール簡単で周知しやすい少し頑張ったら満足いく安定度になった               ...
ローカル監視     Copyright © DRECOM Co., Ltd All Rights Reserved.   14
ローカル監視が必要な理由               プライベートアラートメール               ネットワークグラフ作成         でやる               ローカルでプロセス操作               ...
管理制限      IDC (3)                                  Agent            Agent   サーバが社外管理の場合   サーバ調査   頻繁な設定変更   プライベートネットワー...
ログ配送の注意点                ログを記録しているか   Agent                ログの内容が正しいか                        → ジョブで           td-agentが正しく起...
ローカル監視に monit 使ってます プロセスの監視やリソース監視 HTTPリクエストのステータス条件 スクリプト実行の返り値条件 ※  条件判定によるアクション実行   起動スクリプト実行   スクリプト実行   アラートメー...
monit でやってる監視内容 ① td-agent 基本プロセス監視 ② td-agent 重複デーモン対策 ③ flowcounterで転送状態監視                  Copyright © DRECOM Co., Ltd ...
monit (1) td-agent 基本プロセス監視   Memo 常に起動している必要があり、主に人災対策Check point Agentは check process によるチェック  (run/pidファイルのIDとプロセスの存在...
monit (2) td-agent 重複デーモン対策 Memo (1) fluentd は UDP/TCP の2プロセスで成る プロセスの過不足は異常とみなす   1プロセスしかない   3プロセス以上ある   run/pid のプ...
monit (2) td-agent 重複デーモン対策 Check point プロセスの表示     ps w -C ruby -C td-agent --no-heading | ¥                   ①        ...
monit (2) td-agent 重複デーモン対策  if failed /etc/init.d/td-agent stop ① pkill -KILL -f td-agent      ② /etc/init.d/td-agent ...
monit (2) td-agent 重複デーモン対策 Memo (4) v1.1.7 までの td-agentの起動スクリプトに  はバグがあり、td-agent.conf の内容により     start を実行した数だけデーモンが起動...
@mazgi事件  ※@mazgi = プラグイン製作者          Copyright © DRECOM Co., Ltd All Rights Reserved.                                    ...
@mazgi事件       ~ 開発 ~              @mazgi                          は、はぁ・・・                           頑張りますflumeアカンな~      ...
@mazgi事件        ~ 導入 ~               @mazgi   できました!                   pull request                           送っちゃうぞ~えぇ感じや...
@mazgi事件        ~ 確認 ~               @mazgi                            は、はぁ・・・                             頑張ります          ...
@mazgi事件        ~ 次の日 ~WEBサーバは16台か・・・     @GedowFather      全台のプロセス                             チェックしてみるか ん?4プロセスのサーバが2台ある...
@mazgi事件      ~ 解決 ~             @mazgi                         そ、それはよかった                         (マジこいつら・・・) 直ったっぽ!      ...
@mazgi事件  濡れ衣                                           完      Copyright © DRECOM Co., Ltd All Rights Reserved.           ...
monit (3) flowcounterで転送状態監視   目的  アプリがログを記録している証明  Fluentdがログを拾って配送している証明 ☓ 部分的な記録ミスや極端な増減は無視  (アプリの事情は把握しきれない) ☓ やりすぎチ...
monit (3) flowcounterで転送状態監視  <match **.log>                                                     Memo (1)   type copy   <s...
monit (3) flowcounterで転送状態監視flowcountログ2012-08-06T20:44:21+09:00      flowcount{"count":1302372,"bytes":474494367,"count_r...
monit (3) flowcounterで転送状態監視Check point 2時間分のログに 1つでも10以上のカウントがあればOK 0だけじゃなく1~9 も無効値とした   数時間に1度しかログが来ない場合、    ALERTとR...
monit (3) flowcounterで転送状態監視  if failed  スクリプト内で原因をエラー出力                   1>&2  返り値を 1 にしてmonit に知らせる  monitがアラートメール(エ...
ローカル監視まとめ 1. td-agent の強制起動 2. td-agent プロセスの正常性確認と自動    修正 3. ログ配送の正常性確認• Fluentd+monit だけで結構十分• 足りなすぎず、やりすぎず適度な監視       ...
リモート監視     Copyright © DRECOM Co., Ltd All Rights Reserved.   38
リモート監視の目的  目的 アラート/グラフ作成の集約 状態の可視化 特にCollectorのキャパシティ管理   Agentにキャパシティの心配はほぼないが、   Collectorは増設対応が必要                  ...
アラートは Nagios+nagios-nrpe-server               Agent         monit                nrpe        flowcounter.sh  Nagios       ...
グラフは Cacti とか+snmpd                   Agent                   snmpd       Cacti                  Collector                ...
Collectorの実際のグラフを紹介  Collectorの仕事   flowcounterより  in_forward    復号化          1行平均350byte    解凍           毎秒500行  fl...
圧縮で受け取って平文でHDFSへ  Agent          flush / 10s                              ←0.7 Mbps          圧縮/暗号化          状態でINPUTColle...
CPU利用率のキャパシティ    in_forward                         CPU 25%      復号化      解凍    flowcounter    webhdfs・350 bytes / ro...
何が最もCPU利用率に影響するのか波の形状が・・・?CPUとトラフィックの波の形状が一致しない!まさかの・・・?CPU利用率はログ量の影響が低い!?何が影響する?Agentの数?フラッシュ数?              Copyright © ...
こんなこといいな できたらいいな      Copyright © DRECOM Co., Ltd All Rights Reserved.   46
CollectorでAgentを把握したいこ    様々な環境に散らばった大量のAgentんな    何のAgentがいてどのAgentが正常なのかことい    Collectorの位置でまとめて確認できるのが最いな     も的確で  ...
fin監視の設定をしたらぐっすり眠ってね!!         Copyright © DRECOM Co., Ltd All Rights Reserved.   48
Upcoming SlideShare
Loading in …5
×

54

Share

Fluentd Meetup #2 @外道父 Fluentdを優しく見守る監視事例

Related Books

Free with a 30 day trial from Scribd

See all

Fluentd Meetup #2 @外道父 Fluentdを優しく見守る監視事例

  1. 1. Fluentdを優しく見守る監視事例 2012/08/22 Fluentd Meetup #2外道父@GedowFather Copyright © DRECOM Co., Ltd All Rights Reserved. 1
  2. 2. 自己紹介 Copyright © DRECOM Co., Ltd All Rights Reserved. 2
  3. 3. 自己紹介■私は 外道父@GedowFather■所属 ドリコム■職種 インフラエンジニア■ブログ http://blog.father.gedow.net/ Copyright © DRECOM Co., Ltd All Rights Reserved. 3
  4. 4. 目 次 Copyright © DRECOM Co., Ltd All Rights Reserved. 4
  5. 5. 目次  動作環境  ローカル監視  リモート監視 ・・・の3本くらいです Copyright © DRECOM Co., Ltd All Rights Reserved. 5
  6. 6. 動作環境 Copyright © DRECOM Co., Ltd All Rights Reserved. 6
  7. 7. IDC (2) IDC (3) Agent Agent Agent Agent GLOBAL  圧縮  暗号化 ☓ VPNIDC (1) Agent Collector HDFS Agent Copyright © DRECOM Co., Ltd All Rights Reserved. 7
  8. 8. プラグイン Agent 大事なログ flowcount log  path に * tail (改)  tag に basename copy forward (改) flowcounter  圧縮/暗号化 flowcount log Collector  復号化/解凍  特定hostnameのtag改変(*test*) forward (改) copy forest flowcounter HDFS webhdfs  path /logs/__TAG__/%Y%m%d-%H%M___HOSTNAME__.log Copyright © DRECOM Co., Ltd All Rights Reserved. 8
  9. 9. Fluentd VS Flume OG Copyright © DRECOM Co., Ltd All Rights Reserved. 9
  10. 10. Flume OG 十分な 機能 信頼の (暗号化以外) CDH付属 Javaだから うんぬん 1 Copyright © DRECOM Co., Ltd All Rights Reserved.
  11. 11. Flume OG 不安定 数百台規模で MASTERが不安定 メモリ不足 Agentのキューからの再送が不安定(タンス貯金現象)不安 配送途中に余計な改行が 入ったり復号化にたまに定 失敗するもJavaは難しい 1 Copyright © DRECOM Co., Ltd All Rights Reserved.
  12. 12. VS Fluentd 一択 Copyright © DRECOM Co., Ltd All Rights Reserved. 12
  13. 13. td-agent にした方針としてパッケージ管理は大事社内にRubyエンジニアだらけ機能不足はプラグインでなんとかなる?全機能を満たせたインストール簡単で周知しやすい少し頑張ったら満足いく安定度になった Copyright © DRECOM Co., Ltd All Rights Reserved. 13
  14. 14. ローカル監視 Copyright © DRECOM Co., Ltd All Rights Reserved. 14
  15. 15. ローカル監視が必要な理由 プライベートアラートメール ネットワークグラフ作成 でやる ローカルでプロセス操作 やるべき Copyright © DRECOM Co., Ltd All Rights Reserved. 15
  16. 16. 管理制限 IDC (3) Agent Agent サーバが社外管理の場合  サーバ調査  頻繁な設定変更  プライベートネットワーク経由監視 Copyright © DRECOM Co., Ltd All Rights Reserved.
  17. 17. ログ配送の注意点 ログを記録しているか Agent ログの内容が正しいか → ジョブで td-agentが正しく起動しているか Collectorに送っているか Collector td-agentが正しく起動しているか HDFSに送っているか HDFS HDFSに記録されているか → ジョブで Copyright © DRECOM Co., Ltd All Rights Reserved. 17
  18. 18. ローカル監視に monit 使ってます プロセスの監視やリソース監視 HTTPリクエストのステータス条件 スクリプト実行の返り値条件 ※  条件判定によるアクション実行  起動スクリプト実行  スクリプト実行  アラートメール ※check program >= v5.3 Copyright © DRECOM Co., Ltd All Rights Reserved. 18
  19. 19. monit でやってる監視内容 ① td-agent 基本プロセス監視 ② td-agent 重複デーモン対策 ③ flowcounterで転送状態監視 Copyright © DRECOM Co., Ltd All Rights Reserved. 19
  20. 20. monit (1) td-agent 基本プロセス監視 Memo 常に起動している必要があり、主に人災対策Check point Agentは check process によるチェック (run/pidファイルのIDとプロセスの存在) Collectorはさらに LISTEN 24224 if failed /etc/init.d/td-agent restart Copyright © DRECOM Co., Ltd All Rights Reserved. 20
  21. 21. monit (2) td-agent 重複デーモン対策 Memo (1) fluentd は UDP/TCP の2プロセスで成る プロセスの過不足は異常とみなす  1プロセスしかない  3プロセス以上ある  run/pid のプロセス番号で動いていない Copyright © DRECOM Co., Ltd All Rights Reserved. 21
  22. 22. monit (2) td-agent 重複デーモン対策 Check point プロセスの表示 ps w -C ruby -C td-agent --no-heading | ¥ ① grep td-agent | ¥ ② grep -v "¥]$“ ③ プロセス数のカウントが2 Memo (2)① プロセス名は td-agent v1.1.8 (fluentd v0.10.25) から ruby でそれ以前は td-agent② unicornなど他のrubyプロセスを除外③ 瞬間的に出現する特権モード [td-agent] を除外 Copyright © DRECOM Co., Ltd All Rights Reserved. 22
  23. 23. monit (2) td-agent 重複デーモン対策 if failed /etc/init.d/td-agent stop ① pkill -KILL -f td-agent ② /etc/init.d/td-agent start Memo (3)① 可能な限り正常終了し② 残りは名前を含むプロセスを強制終了 Copyright © DRECOM Co., Ltd All Rights Reserved. 23
  24. 24. monit (2) td-agent 重複デーモン対策 Memo (4) v1.1.7 までの td-agentの起動スクリプトに はバグがあり、td-agent.conf の内容により  start を実行した数だけデーモンが起動  ファイルのIDが誤った値に変わる v1.1.8 で修復されたが、どのようなログ配送 システムにおいてもデーモンの正常性は確認す べきである・・・でないと・・・ Copyright © DRECOM Co., Ltd All Rights Reserved. 24
  25. 25. @mazgi事件 ※@mazgi = プラグイン製作者 Copyright © DRECOM Co., Ltd All Rights Reserved. 25
  26. 26. @mazgi事件 ~ 開発 ~ @mazgi は、はぁ・・・ 頑張りますflumeアカンな~ fluentdの時代やプラグインいるな @mazgi先生のこんな感じで 出番やで よろしく~ @GedowFather @matsuou1 Copyright © DRECOM Co., Ltd All Rights Reserved. 26
  27. 27. @mazgi事件 ~ 導入 ~ @mazgi できました! pull request 送っちゃうぞ~えぇ感じやん さすが1アプリに @mazgi先生や入れてみるわいいね、やるやん HDFSに@mazgi 先生! きたきた @GedowFather @matsuou1 Copyright © DRECOM Co., Ltd All Rights Reserved. 27
  28. 28. @mazgi事件 ~ 確認 ~ @mazgi は、はぁ・・・ 頑張ります (マジわかんねぇ) あれ?ログ多くね? Agent分より18/16 倍くらい HDFSが多いね に増えてる? 明日までに 水増し直しておいてね! プラグインや @GedowFather @matsuou1 Copyright © DRECOM Co., Ltd All Rights Reserved. 28
  29. 29. @mazgi事件 ~ 次の日 ~WEBサーバは16台か・・・ @GedowFather 全台のプロセス チェックしてみるか ん?4プロセスのサーバが2台ある!? 2台で重複・・・ 18 / 16 倍・・・ とりあえずプロセスを 正常化してみよう! タ、ターンッ!! Copyright © DRECOM Co., Ltd All Rights Reserved. 29
  30. 30. @mazgi事件 ~ 解決 ~ @mazgi そ、それはよかった (マジこいつら・・・) 直ったっぽ! 行数一致した!プラグイン万歳! さすがの @mazgi先生や 公開しようぜ @GedowFather @matsuou1 Copyright © DRECOM Co., Ltd All Rights Reserved. 30
  31. 31. @mazgi事件 濡れ衣 完 Copyright © DRECOM Co., Ltd All Rights Reserved. 31
  32. 32. monit (3) flowcounterで転送状態監視 目的  アプリがログを記録している証明  Fluentdがログを拾って配送している証明 ☓ 部分的な記録ミスや極端な増減は無視 (アプリの事情は把握しきれない) ☓ やりすぎチェックはアラートが増えて 重要なアラートが埋もれる Copyright © DRECOM Co., Ltd All Rights Reserved. 32
  33. 33. monit (3) flowcounterで転送状態監視 <match **.log> Memo (1) type copy <store>  1時間に1回記録する type forward ...snip...  1月1ファイルで十分 </store> <store> type flowcounter count_keys * unit hour aggregate all </store> </match> <match flowcount> type file path /var/log/td-agent/flowcount/flowcount.log time_slice_format %Y%m </match> Copyright © DRECOM Co., Ltd All Rights Reserved. 33
  34. 34. monit (3) flowcounterで転送状態監視flowcountログ2012-08-06T20:44:21+09:00 flowcount{"count":1302372,"bytes":474494367,"count_rate":361.77,"bytes_rate":131803.99}2012-08-06T21:44:21+09:00 flowcount{"count":1582649,"bytes":577411574,"count_rate":439.62,"bytes_rate":160392.1}2012-08-06T22:44:21+09:00 flowcount{"count":1682872,"bytes":614115172,"count_rate":467.46,"bytes_rate":170587.54} 最新2時間分のカウントを利用する Copyright © DRECOM Co., Ltd All Rights Reserved. 34
  35. 35. monit (3) flowcounterで転送状態監視Check point 2時間分のログに 1つでも10以上のカウントがあればOK 0だけじゃなく1~9 も無効値とした  数時間に1度しかログが来ない場合、 ALERTとRECOVERYが繰り返され鬱陶い 2時間以上のメンテナンスや障害だとアラート になるがそれはご愛嬌 Copyright © DRECOM Co., Ltd All Rights Reserved. 35
  36. 36. monit (3) flowcounterで転送状態監視 if failed  スクリプト内で原因をエラー出力 1>&2  返り値を 1 にしてmonit に知らせる  monitがアラートメール(エラー出力記載) 問題点  copy なので forward に失敗しても flowcounterのカウント記録は成功する  Collectorが全部落ちたり、HDFSが落ちたら flowcounterどころではないので問題ない! Copyright © DRECOM Co., Ltd All Rights Reserved. 36
  37. 37. ローカル監視まとめ 1. td-agent の強制起動 2. td-agent プロセスの正常性確認と自動 修正 3. ログ配送の正常性確認• Fluentd+monit だけで結構十分• 足りなすぎず、やりすぎず適度な監視 Copyright © DRECOM Co., Ltd All Rights Reserved. 37
  38. 38. リモート監視 Copyright © DRECOM Co., Ltd All Rights Reserved. 38
  39. 39. リモート監視の目的 目的 アラート/グラフ作成の集約 状態の可視化 特にCollectorのキャパシティ管理  Agentにキャパシティの心配はほぼないが、 Collectorは増設対応が必要 Copyright © DRECOM Co., Ltd All Rights Reserved. 39
  40. 40. アラートは Nagios+nagios-nrpe-server Agent monit nrpe flowcounter.sh Nagios Collector monit nrpe flowcounter.sh  monit で実行しているスクリプトを nagios- nrpe-server を通してNagiosに実行させる  Collectorは必須、Agentも可能ならやる Copyright © DRECOM Co., Ltd All Rights Reserved. 40
  41. 41. グラフは Cacti とか+snmpd Agent snmpd Cacti Collector snmpd  Collectorは必須、Agentは既に入ってるべ  CPUとTrafficは最低限必要  特殊なグラフは作っていない Copyright © DRECOM Co., Ltd All Rights Reserved. 41
  42. 42. Collectorの実際のグラフを紹介 Collectorの仕事 flowcounterより  in_forward  復号化  1行平均350byte  解凍  毎秒500行  flowcounter  webhdfs Copyright © DRECOM Co., Ltd All Rights Reserved. 42
  43. 43. 圧縮で受け取って平文でHDFSへ Agent flush / 10s ←0.7 Mbps 圧縮/暗号化 状態でINPUTCollector 平文でHDFSへ OUTPUT ←1.5 Mbps HDFS うわっ…この圧縮率、低すぎ・・・? Copyright © DRECOM Co., Ltd All Rights Reserved. 43
  44. 44. CPU利用率のキャパシティ in_forward CPU 25%  復号化  解凍 flowcounter webhdfs・350 bytes / row・500 rows / sec  fluentdは 1vCPU 100% が限界  最大であと4倍まで可能  とすると 2000 rows / sec が1台の限界? Copyright © DRECOM Co., Ltd All Rights Reserved. 44
  45. 45. 何が最もCPU利用率に影響するのか波の形状が・・・?CPUとトラフィックの波の形状が一致しない!まさかの・・・?CPU利用率はログ量の影響が低い!?何が影響する?Agentの数?フラッシュ数? Copyright © DRECOM Co., Ltd All Rights Reserved. 45
  46. 46. こんなこといいな できたらいいな Copyright © DRECOM Co., Ltd All Rights Reserved. 46
  47. 47. CollectorでAgentを把握したいこ  様々な環境に散らばった大量のAgentんな  何のAgentがいてどのAgentが正常なのかことい  Collectorの位置でまとめて確認できるのが最いな も的確で  NATだとsource address / port は使えないきたら  Agentからhostname / PrivateAddrを送りいい  hostname の prefix 等でグループ化な  1日以内に1度でも配送したAgentを確認 Copyright © DRECOM Co., Ltd All Rights Reserved. 47
  48. 48. fin監視の設定をしたらぐっすり眠ってね!! Copyright © DRECOM Co., Ltd All Rights Reserved. 48
  • coga2000

    Mar. 1, 2019
  • hironobuu

    Jun. 16, 2017
  • AoiroAoino

    Dec. 5, 2016
  • tomonori_kimura

    Jun. 29, 2016
  • yanana

    May. 23, 2016
  • hirokzuhata

    Feb. 2, 2016
  • takoba_

    Sep. 1, 2015
  • footlooser

    Jul. 10, 2015
  • toutoutakataka

    Jul. 4, 2015
  • takashiimura10

    Jun. 11, 2015
  • ssuserff8d04

    May. 13, 2015
  • terumba

    May. 11, 2015
  • HiromichiYukawa

    May. 11, 2015
  • MasachikaYamaguchi

    Mar. 17, 2015
  • YoshihiroNomura

    Feb. 5, 2015
  • tunepolo

    Nov. 19, 2014
  • ymizush

    Nov. 5, 2014
  • hifumis

    Nov. 4, 2014
  • ayumimunakata7

    Jul. 8, 2014
  • TokyoIncidents

    May. 23, 2014

Views

Total views

20,773

On Slideshare

0

From embeds

0

Number of embeds

10,991

Actions

Downloads

0

Shares

0

Comments

0

Likes

54

×