[デブサミ秋2015]...

14
Copyright © GREE, Inc. All Rights Reserved. 新新新新新新新新新新 新新 fluentd 新新新新新新新新新新新新新 グググググググ ググググ ググ ググ Developers Summit 2015 Autum

Upload: greetech

Post on 07-Jan-2017

3.966 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

新卒入社エンジニアが2年間 fluentd を運用して学んだ事いろいろ

グリー株式会社 開発本部山田 龍寛

@ Developers Summit 2015 Autum

Page 2: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

自己紹介

• 山田 龍寛• グリー株式会社 開発本部• 週末は野球か自転車か秋葉原

• 2013 年新卒入社• プロダクトが分析するためのログ

を回収したり• 集計の手伝いをしたり• BI ツールをつくったり

• 気づいたら fluentd とは 2年の付き合い

Page 3: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

グリーでの fluentd の利用方法

• サービスごとに数台のアグリゲーターを用意• TreasureData や 内製の Hadoop クラスタに

データ転送

web サーバ アグリゲーター

Copyright © 2014 The Apache Software Foundation. Apache Hadoop, Hadoop, Apache, the Apache feather logo, and the Apache Hadoop project logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.

Page 4: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

fluentd の運用でこうした方がよいと思うこと

Page 5: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

web サーバの fluentd の設定変更が少ないかたちに

Page 6: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

web サーバの設定変更が少ないかたちに

• サーバ台数が多く再起動のコストが高い• プロダクト側がログを追加しやすく• データの保存先は tag を利用して決定

• アグリゲータで制御可能

web サーバ アグリゲーター

容易にログを増やせるような設定にする 集計や tag の書き換えなど複雑なことはこっちで

Page 7: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

ログを追加しやすい設定例

• ログは基本的に JSON で• カラムの追加が容易

• アプリケーション側で tag をつけるようにする

<source> type unix</source>

例1<source> type tail format json path /path/to/log.json tag log</source><match log> type rewrite_tag_filter rewriterule1 _tag ^(.+)$ db.$1</match>

例2

tag と recordを

自由に渡せる

レコード内でテーブルに相当する tag を指定する

Page 8: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

プラグインを fork して改造しない

Page 9: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

プラグインを fork して改造しない

• fluentd のバージョンアップに追従しづらくなる

• 例 1: 拡張 out_webhdfs• 問題点

• fluentd のバージョンアップ時にデータが壊れてしまった• 本家のアップデートをマージするのが大変だった

• 対応• 一部のメソッドに変更点をまとめることができた• WebHDFSOutput を継承するようにした

Page 10: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

プラグインを fork して改造しない

• fluentd のバージョンアップに追従しづらくなる

• 例 2: 拡張 in_tail• 昔の fluentd の時から使ってる ( fluentd-0.10.35 以前 )• 問題点

• 公式の tail に追加された機能を取り入れるのが難しい• 内製のパーサが動かなくなった

• 対応• どうしようもなかった• 割りきって使っている• 運用でカバー• テストをたくさん追加した

Page 11: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

プラグインで何でもできるからといってやり過ぎてしまうと後々つらい ...

Page 12: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

公開されているプラグインを使う機能追加は本家にコントリビュート

シンプルな構成に留める

Page 13: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

ドキュメントを書く ( 自戒 )

Page 14: [デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ

Copyright © GREE, Inc. All Rights Reserved.

まとめ

• fluentd の運用でこうした方が良いと思うこと• web サーバの fluentd の設定変更が少ない形にする• プラグインを fork して改造しない• ドキュメントを書く ( 自戒 )

• なるべく公開されているプラグインを使う• 追加機能は本家にコントリビュート• シンプルに使う

• 困ったら #fluentd をつけて twitter でつぶやくと吉 : )