Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
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
Prochain SlideShare
Chargement dans…5
×

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

  • Soyez le premier à commenter

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

    Soyez le premier à commenter

    Identifiez-vous pour voir les commentaires

  • TokyoIncidents

    May. 23, 2014
  • ayumimunakata7

    Jul. 8, 2014
  • hifumis

    Nov. 4, 2014
  • ymizush

    Nov. 5, 2014
  • tunepolo

    Nov. 19, 2014
  • YoshihiroNomura

    Feb. 5, 2015
  • MasachikaYamaguchi

    Mar. 17, 2015
  • HiromichiYukawa

    May. 11, 2015
  • terumba

    May. 11, 2015
  • ssuserff8d04

    May. 13, 2015
  • takashiimura10

    Jun. 11, 2015
  • toutoutakataka

    Jul. 4, 2015
  • footlooser

    Jul. 10, 2015
  • takoba_

    Sep. 1, 2015
  • hirokzuhata

    Feb. 2, 2016
  • yanana

    May. 23, 2016
  • tomonori_kimura

    Jun. 29, 2016
  • AoiroAoino

    Dec. 5, 2016
  • hironobuu

    Jun. 16, 2017
  • coga2000

    Mar. 1, 2019

Vues

Nombre de vues

20 667

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

10 919

Actions

Téléchargements

0

Partages

0

Commentaires

0

Mentions J'aime

54

×