DeNAさんの会場でFluentd Casual Talks #3が開かれたので行ってきました。
申し込んでいたのをすっかり忘れていてTwitterのTLを見ていて
「へー、そんなイベントがあるのかー」と思ってATNDを見に行ったら自分が参加になっているのに気づいて、
慌てて嫁に予定を確認してから参加しました。
Fluentdは業務で使ってみたいなーと思いながらなかなか使う機会と場を見つけられないものの、
個人的な趣味では使わせてもらっていて便利なのでやはり使う機会を狙っていかねばと思う次第です。
イベントではPluginの話やv11の話が聞けてますますFluentdを使ってみたい熱が高まりました。
あと、Go言語への興味の高まりも(ぇ
そんなわけで、年末年始でFluentdを使って何かできればいいなーと思う次第です。
以下その場でとってた適当なまとめ
Fluentd でShadowサーバ用意したら捗ったった話@sonots
Yohoushi
- 分散GFツール
困り事
- UTF-8 invalidが入ってきてあぼーん
- 本番で負荷が上がってあぼーん
Shadowサーバ
実際のリクエストをコピーしてテストするためのサーバ?
dummy_log_generator
- ログを吐き出しまくるツール
- rate(行数/秒)指定可能
- ランダム可能
- システムのI/O限界を引き出せる
- Fluentd のベンチマークテストに使える dummy_log_generator - Qiita [キータ]
ベンチマーク
- 小さいデータだとkeepaliveをすると高速化する
- socketのopen/closeが少なくなるから
- ログ送信まとめ
- 送信制御はout_forward側で行われる
- fluent-agent-liteがいい
- out_Forward安定パラメータ
- flush_interval 0s
- buffer_chunk_limit 1m(つまりがないなら10mのほうが性能は出る)
- num_threadsも大きく
@stanaka
- LTSV
- ファイルフォーマット
- immutable infrastructure / Docker
- はてな
- Web Serverのlogをmongodbやelasticsearchに流す
- Go
- Go 1.2
- Pre-emption in the scheduler
- performance improvement
- library update
- ik
- Goによるfluentd実装
- suit for leaf nodes
- support only less plugins
- in_forward, out_forward, out_stdout
- plugin system
- ビルドが必要
- ハードコードが必要
Windows版 Fluentdで幸せになれますか
- forkをspownに変更
- どこかの中川さんがcool.ioのWindwos対応
- in_tail
- inodeをWin32API"GetFileInformationByHandle"で大体
- ファイルのopen処理をWin32APIを利用する形で再実装
- out_forward
- TCPSocketのSO?LINGERオプションの適用を抑制
- 引き続き考える事
- Ctrl+Cで終了
- buf_fileのサポート
- etc...
注意:本番で使うな!
-
-
- -
-
Fluentdのモニタリングの話
データの世界をシンプルに -> fluentd
- 利用例
- Nintendo
- LINE
- AWS
- 公式ドキュメント
- Fluentd Meetup #2 @外道父 fluentdを優しく見守る関し事例
- monitによる監視
- 監視基本
- プロセス
- ポート
- システム情報(CPU/Memory/Network)
- Fluentd特化
- buffer溢れ
- buffer flushのリトライ回数
- Fluentd自体のエラー・ワーン
- fluentdのログ
モニタエージェント
- Fluentd内部情報をHTTP経由で取ってこれる
- Treasure Agent Monitoring Service
- TDのtd-agentのモニタリングサービス
- fluent-plugin-td-monitorngをインストール
- sslで内部情報をTDに送信
- 設定ファイルの書き換え(8行!簡単!)
LT
- chefを使って設定ファイルを管理
- fluentdのinclude directiveを利用
- include_recipeを使う
- data_bagsで暗号化
- 家でFluentdを使う話
- Macbook Air -> fluentd -> AWS SQS -> fluentd raspbery pi
- twitter -> fluentd -> tumblr
- postgres関連の何か
- 一番使われてる名前を言ってはいけないあのDBが辛い
- potgresで頑張る
- pg/msgpack
- pg/json
fluentd v11の新機能
- 無停止再起動がしたい
- supervisorとworkerにtcp socketをもたせる
- worker再起動時にsupervisorが新しいworkerに渡す
- マルチプロセス化
- エラーストリーム
- chunk内に3event => 処理中に2 event目でエラー発生 -> 3event目はどうなる?
- エラー処理はプラグイン依存
- fluentdコアでエラー処理することで解決
- プラグインのバージョン管理
- Gemfileでバージョン管理
- プラグインごとのログレベル
- 変数のはいった設定ファイル
- タグの書き換えがいらないストリーミング処理
- matchのネスト