Address
:
[go:
up one dir
,
main page
]
Include Form
Remove Scripts
Accept Cookies
Show Images
Show Referer
Rotate13
Base64
Strip Meta
Strip Title
Session Cookies
More Web Proxy on the site http://driver.im/
Submit Search
それFluentdで! #fluentd
•
Download as PPTX, PDF
•
41 likes
•
8,689 views
Atsuko Shibuya
Follow
社内で実はあまり知らない、という声もあって、それfluentdでできるんだけどなぁという実装が多かったので、勉強会してみました。
Read less
Read more
1 of 52
Download now
Downloaded 91 times
More Related Content
それFluentdで! #fluentd
1.
それfuentdで! - 社内勉強会資料 - 2014/03/04 @boheanimato
2.
自己紹介 のりしろエンジニア。 プロジェクトで落っこちてきた、 なんか細々としたことを拾い上げてやってます。 Twitter : boheanimato -SIer
1999/10~ -Yahoo! 2005/11~ -Indival 2007/7~
3.
INDEX -fluentdの紹介 – こんなことができるようになります – アーキテクチャ簡単紹介 -こんなことをやってみました –
apacheのログを集約して、elasticsearchにいれて、kibanaでみてみる – apacheのログをURL毎にグルーピングしてレスポンスタイムを GrowthForecastでみてみる -現状をこうしよう! – apacheログの集約、集計、活用 – MySQLの更新履歴をfluentdでSolrにいれる -可視化について – 事前に考え抜くこと – 目的の明確化、KGIとKPI – 設計サンプル
4.
INDEX -fluentdの紹介 – こんなことができるようになります – アーキテクチャ簡単紹介 -こんなことをやってみました –
apacheのログを集約して、elasticsearchにいれて、kibanaでみてみる – apacheのログをURL毎にグルーピングしてレスポンスタイムを GrowthForecastでみてみる -現状をこうしよう! – Apacheログの集約、集計、活用 – MYSQLの更新履歴をfluentdでSolrにいれる – もっといろんなこと -可視化について – 事前に考え抜くこと – 目的の明確化、KGIとKPI – 設計サンプル
5.
こんなことができるようになります -ログを一箇所に集約!集計!格納! MySQL、MongoDB、Solr、Redis、 elasticsearch、 Hadoopに簡単にはいります -サーバの閾値監視、通知! Zabbixに値を送れたりします メールおくれます、電話もかけれます
6.
アーキテクチャ簡単紹介 一般的にログ収集ソフトウェアは 何らかの「イベント」を検知し、 その内容を発生時刻などの情報とともに ファイルやデータベースなどのストレージなどに出力す る、という処理を行います。 fluentdでも同じです。 ただ、fluentdでは イベントの受け取り(input)、 バッファに一時的に保存し(buffer)、 ストレージなどへの出力(output) がすべてプラグインとして実装されています。
7.
アーキテクチャ簡単紹介 柔軟なログ収集を可能にする「fluentd」入門 - さくらのナレッジ
: http://knowledge.sakura.ad.jp/tech/1336/ ・テキストファイルの末尾か らイベントを読み込む ・TCPソケットをリッスンし て、イベントストリームを受 信する ・syslogプロトコル経由でレ コードを取得 ・ほかのfluentdのノートに 出力する ・MongoDBへとレコードを出 力する ・ファイルに書き出す
8.
アーキテクチャ簡単紹介
9.
プラグイン 超豊富 Fluentd plugins :
http://fluentd.org/plugin/
10.
こんなことができるようになります 「細かい単位で常にログを回収し続ける仕組み」 をいったんfluentdでつくっておくと → プラグイン実装 → プラグインが豊富 なので、 回収したログをファイルに出力していたが、 elasticsearchにも格納しようとした場合、 プラグインを追加して設定するだけで、 その要求にすぐに応えられます。
11.
INDEX -fluentdの紹介 – こんなことができるようになります – アーキテクチャ簡単紹介 -こんなことをやってみました –
apacheのログを集約して、elasticsearchにいれて、kibanaでみてみる – apacheのログをURL毎にグルーピングしてレスポンスタイムを GrowthForecastでみてみる -現状をこうしよう! – apacheログの集約、集計、活用 – MySQLの更新履歴をfluentdでSolrにいれる -可視化について – 事前に考え抜くこと – 目的の明確化、KGIとKPI – 設計サンプル
12.
システム構成 APIServerWebServer Elasticsearch Redis GrouthForcast Raw File StorageServer WebServer forwarder fluent-agent-lite Aggregator Worker serializer Fluentd +
plugin watcher Raw File
13.
APIServerWebServer Elasticsearch Redis GrouthForcast Raw File StorageServer WebServer forwarder fluent-agent-lite Aggregator Worker serializer Fluentd +
plugin watcher Raw File apacheのログを集約(Forwarder)
14.
apacheのログを集約(Forwarder) LTSV - Labeled
Tab-Separated Values テキストのフォーマットの仕様。 タブ区切りのフィールドで、ラベルと値を持ちます。 主にログ、特に httpd のアクセスログなどに適用すると便利。 後で、ログの解析の属性指定やelasticsearchに格納する際のカ ラム名として利用。 LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイア リー : http://d.hatena.ne.jp/naoya/20130209/1360381374
15.
apacheのログを集約(Forwarder) LTSV - Labeled
Tab-Separated Values Apacheの設定をこうしておくと、 LogFormat "domain:%Vthost:%htserver:%Atident:%ltuser:%uttime:%{%Y/%m/%d %H:%M:%S %z}ttmethod:%mtpath:%U%qtprotocol:%Htstatus:%>stsiz e:%btreferer:%{Referer}itagent:%{User-Agent}itresponse_time:%D" combined_lts こうなります タブ区切りで、ラベル:値で出力されます。
16.
apacheのログを集約(Forwarder) fluent-agent-lite INPUTプラグイン ログ収集専用のエージェント 正規表現をパースしないため、動作が軽く、負荷の高いアプリ ケーションサーバに同居させてもCPUを使わない。 現状、そのままのログをシェルで集約して、それをもとにバッ チが動いて集計しているので、 既存の仕組みをそのままで、導入できる! #fluentd 用ログ収集専用のエージェント fluent-agent-lite
書いた - tagomorisのメモ置き場 : http://d.hatena.ne.jp/tagomoris/20120314/1331716214
17.
apacheのログを集約(Forwarder) fluent-agent-lite インストールはプラグインを rpmで入れるか、 Gitからcloneして./install.shするか td-agentはインストールしません
18.
apacheのログを集約(Forwarder) fluent-agent-lite Forward先のサーバ 集約したいログ
19.
apacheのログを集約(Forwarder) Fluentdのログ構造 -Tag – ログの種類。 Fluentdではログの管理を「タグ」で管理します。 タグはイベントを発生させる側などで指定します。 -Time – ログの時刻をUNIX時刻で表したもの -Record –
ログの内容がJSONオブジェクトではいります アプリケーション側でのパースが容易 Tag : koala.www. Time : 137084495 Record: {k1:100, k2 :value1}
20.
apacheのログを集約(Forwarder) fluent-agent-lite -Tag 前述の記述の場合、 以下の3つのタグがついたレコードが流れます。 -koala.www -koala.app -koala.stat -Record そのまま、messageというattributeが付いた中に入っ て送られます。 レコードのattributeも変更可 (デフォルトmessage) Tag : koala.www.
Time : 137084495 message : {ログが1行づつ入りま す}
21.
apacheのログを集約 (Aggregater/worker/serializer) APIServerWebServer Elasticsearch Redis GrouthForcast Raw File StorageServer WebServer forwarder fluent-agent-lite Aggregator Worker serializer Fluentd +
plugin watcher Raw File
22.
td-agentをインストール http://docs.fluentd.org/categories/installation apacheのログを集約 (Aggregater/worker/serializer)
23.
fluent-plugin-file-alternative OUTPUTプラグイン 出力フォーマットを自由に変更できる! (fluentd 標準のファイル出力プラグイン out_file
はメッ セージをJSONにシリアライズして出力するというものなので) 前述のプラグインとあわせると、 「そのままのログを集約して一か所で出力!」がfluentdで実現 できるわけです。 #fluentd fluent-plugin-file-alternative released! - tagomorisのメモ置 き場 : http://d.hatena.ne.jp/tagomoris/20120316/1331886385 apacheのログを集約 (Aggregater/worker/serializer)
24.
設定ファイルの記述ポイント2つ /etc/td-agent/td-agnet.conf -source イベントの受信方法を指定 -match 受信したイベントをどのように処理するかを 条件文とともに指定 条件はタグの名前 条件にマッチしたら、次のプラグインに 処理が渡されます apacheのログを集約 (Aggregater/worker/serializer)
25.
fluent-plugin-file-alternative koala.www.*のタグにマッチしたイベントを処理 apacheのログを集約 (Aggregater/worker/serializer) forward TCP/IPを使ってイベントを受け取る。
26.
ログでました /tmp/ koala.access.20140228_0.log.gz apacheのログを集約 (Aggregater/worker/serializer)
27.
さらに、このLTSVのログをパースして elasticsearchにいれてしまいます apacheのログを集約 (Aggregater/worker/serializer)
28.
apacheのログを集約 (Aggregater/worker/serializer) LTSV形式をパースして Elasticsearchにいれてる fluent-plugin-parser fluent-plugin-elasticsearch
29.
fluent-plugin-parser 最初、そのままelasticsearchにデータを流すと、messageタグの中には いったまんまelasticsearchインデックスが作成されてしまい、うおおお とか思っていたのですが、 @tagomorisさんから、アドバイスいただきました。 fluent-plugin-parser released! -
tagomorisのメモ置き場 : http://d.hatena.ne.jp/tagomoris/20120402/1333363444 apacheのログを集約 (Aggregater/worker/serializer) 負荷の問題がないのなら、 fluent-plugin-parser で ltsv をparse してしまえばいいと思いますよ
30.
-parse実行前 apacheのログを集約 (Aggregater/worker/serializer)
31.
elasticsearch apacheのログを集約 (Aggregater/worker/serializer)
32.
kibana apacheのログを集約 (Aggregater/worker/serializer)
33.
kibana apacheのログを集約 (Aggregater/worker/serializer) LTSVでつけたラベル毎に検索 できる
34.
INDEX -fluentdの紹介 – こんなことができるようになります – アーキテクチャ簡単紹介 -こんなことをやってみました –
apacheのログを集約して、elasticsearchにいれて、kibanaでみてみる – apacheのログをURL毎にグルーピングしてレスポンスタイムを GrowthForecastでみてみる -現状をこうしよう! – apacheログの集約、集計、活用 – MySQLの更新履歴をfluentdでSolrにいれる -可視化について – 事前に考え抜くこと – 目的の明確化、KGIとKPI – 設計サンプル
35.
apacheのログをURL毎にグルーピング (Aggregater/worker/serializer) 画像、JS、CSSを対象外に 200以外のステータスは捨てる GET以外のメソッドは捨てる fluent-plugin-rewrite Index.phpはtopとして扱う グルーピングする
36.
apacheのログをURL毎にグルーピング (Aggregater/worker/serializer) fluent-plugin-rewrite このプラグインを用いると、ひとつひとつのmessageについて、 指定したkeyのvalueが特定のパタンにマッチしたら、 -valueを書き換えて、再emitする -そのmessageを無視する -マッチした文字列をtagに追加して、再emitする ということができる。また、それらのルールを複数指定するこ とも可能。 fluent-plugin-rewriteというプラグインを作成した #fluentd -
delirious thoughts : http://blog.kentarok.org/entry/2012/07/01/000518
37.
apacheのログをURL毎にグルーピング (Aggregater/worker/serializer) fluent-plugin-rewrite タグ毎にグルーピングできました
38.
apacheのログをURL毎にグルーピング (Aggregater/worker/serializer) fluent-plugin-numeric-monitor fluent-plugin-forest / fluent-plugin-growthforecast レスポンスタイムの集計 集計をgrowthforcastにくわせる
39.
apacheのログをURL毎にグルーピング (Aggregater/worker/serializer) fluent-plugin-numeric-monitor 指定したフィールド(の数値)について、min/max/avg およ び指定したパーセンタイル値を算出する。 パーセンタイル値は複数指定できるので、 たとえば 90,
95, 98, 99 パーセンタイル値をそれぞれ出 力したりできる。 fluent-plugin-numeric-monitor v0.1.0 and fluent-plugin-numeric- counter v0.1.0 released! - tagomorisのメモ置き場 : http://d.hatena.ne.jp/tagomoris/20120706/1341560190
40.
apacheのログをURL毎にグルーピング (Aggregater/worker/serializer) Growthforcast 定期的にGrowthForecastに値をPOSTするだけで、設定なしでグ ラフが作れます GrowthForecast - Lightning
fast Graphing / Visualization : http://kazeburo.github.io/GrowthForecast/index.ja.html
41.
apacheのログをURL毎にグルーピング (Aggregater/worker/serializer) Growthforcast
42.
INDEX -fluentdの紹介 – こんなことができるようになります – アーキテクチャ簡単紹介 -こんなことをやってみました –
apacheのログを集約して、elasticsearchにいれて、kibanaでみてみる – apacheのログをURL毎にグルーピングしてレスポンスタイムを GrowthForecastでみてみる -現状をこうしよう! – apacheログの集約、集計、活用 – MySQLの更新履歴をfluentdでSolrにいれる -可視化について – 事前に考え抜くこと – 目的の明確化、KGIとKPI – 設計サンプル
43.
現状をこうしよう! (apacheログの集約、集計、活用) そこfluentdで! APIServerWebServer MySQL StorageServer WebServer SCP SCP SCP Batch
44.
現状をこうしよう! (MySQLの更新履歴をSolrにいれる) fluent-plugin-mysql-replicator
45.
運用面メモ Aggregator側:1プロセスでは1つのCPUコアしか使わない ので、サーバのリソースを使い切るために、複数プロセス を起動 →8プロセス起動させる (プロセッサ8つ、物理CPUは1つ、コア数4の場合) 割り当てポートは、24200~24207などに Forwarderから送信時に、ポート指定で送信するようにす る。 INPUTで受け取る大きさを考慮してバッファは指定するな ど、実運用で検討すべきパラメータはたくさんあります。 本番運用のまえに 各種パラメータとか流量は検討しよう!
46.
INDEX -fluentdの紹介 – こんなことができるようになります – アーキテクチャ簡単紹介 -こんなことをやってみました –
apacheのログを集約して、elasticsearchにいれて、kibanaでみてみる – apacheのログをURL毎にグルーピングしてレスポンスタイムを GrowthForecastでみてみる -現状をこうしよう! – apacheログの集約、集計、活用 – MySQLの更新履歴をfluentdでSolrにいれる -可視化について – 事前に考え抜くこと – 目的の明確化、KGIとKPI – 設計サンプル
47.
可視化について 今回はプロトタイプ作成のために、 とりあえず可視化できるよ! というのをしたのですが、 できることが把握できた後は、 何のため?という目的を明確化して 本番の実装はすすめていこう(自戒)
48.
可視化について 事前に考え抜くこと 「何を可視化するか」 「可視化すべきKPIを決める」 「具体的なKPIの中身を定義する」 目的から指標を決める 目的は何かを考え抜くこと
49.
可視化について 目的の明確化、KGIとKPIを決める 目標:「売り上げ向上」 KGI(Key Goal indicator) 目標そのものを定量的に評価するもの –
「売上」 KPI(Key Performance indicator) KGIの構成要素を細分化したもの KGIを達成するために何が必要かを定量的にあらわ す指標 – 「顧客数、一人あたり単価、PV、継続率」
50.
可視化について 項目 内容 目的 一目でサーバ情報の異常や傾向を把握できるだけでなく、気になった ところを拡大して調査できるようにする データ変数 ⇔視覚変数 時間(間隔尺度)⇔
X座標(定量性・順序性) 各種サーバ情報(比例尺度)⇔ Y座標(定量性・順序性) 利用する 可視化手法 折れ線グラフ 推奨Web特性 アニメーション(リアルタイムでのデータ反映) インタラクション(時間の選択範囲)
51.
可視化について 読むといいかも(参考図書)
52.
おわりに ありがとうございました
Download