Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クラウドネイティブ時代に 進化し続けるFluentd
Search
Watson
November 20, 2025
0
2
クラウドネイティブ時代に 進化し続けるFluentd
CloudNative Days Winter 2025で発表した資料です。
Watson
November 20, 2025
Tweet
Share
More Decks by Watson
See All by Watson
RMagick, migrate to ImageMagick 7 #RubyKaigi #RubyKaigi2019
watson
0
10k
Magick
watson
0
12k
Improve JSON Performance
watson
2
1k
fastlane 奮闘記
watson
0
82
How to optimize Ruby internal.
watson
3
3k
iOS、AndroidアプリをRubyで
watson
1
490
RubyMotion 2.0
watson
6
2.8k
Differences CRuby/MacRuby/RubyMotion
watson
5
5.7k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
57
6.1k
Music & Morning Musume
bryan
46
7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Code Review Best Practice
trishagee
72
19k
Balancing Empowerment & Direction
lara
5
760
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
4 Signs Your Business is Dying
shpigford
186
22k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
Six Lessons from altMBA
skipperchong
29
4.1k
BBQ
matthewcrist
89
9.9k
Transcript
クラウドネイティブ時代に 進化し続けるFluentd CloudNative Days Winter 2025 2025/11/19 1
Fluent(d)プロジェクト Fluentd Fluent Bit 2
Fluentdはもう古い? 3
Shizuo Fujita (藤田 静男) 株式会社クリアコード Fluentd メンテナー Daijiro Fukuda (福田
大司郎) 株式会社クリアコード Fluentd メンテナー 自己紹介 4
株式会社クリアコード 5
Fluentdの歴史とクリアコードの関わり クリアコード開発参加 2015 年 6 月 CNCF Graduated Project 2019
年 4 月 クリアコード メンテナンス引き継ぎ 2021 年 3 月 Fluentd開発スタート 2011年 CNCF参加 2016 年 11 月 Fluent Package LTS版配布開始 2023 年 8 月 v1.0 2017 年 12 月 td-agent-builder (fluent-package-builder) 2020 年 3 月 fluent-plugins-nursery 2016 年 11 月 6
今日お話すること • Fluentdとは • FluentdとCloud Native • Fluentdの進化 • 最新版紹介
• OpenTelemetry対応 7
• Fluentdとは • FluentdとCloud Native • Fluentdの進化 • 最新版紹介 •
OpenTelemetry対応 8
Fluentdが実現する世界 9
Fluentdの配布形態 • Ruby gem • Package ◦ Fluent Package (fluent-package)
◦ Treasure Agent (td-agent) ◦ Calyptia Fluentd (calyptia-fluentd) • Container ◦ Docker images ◦ Daemonset for Kubernetes 10
Fluentdの特徴 • 柔軟性(カスタマイズ性) • スケールする • オープンソース 11
Fluentdの特徴: 柔軟性(カスタマイズ性) • 柔軟性の高いプラグインシステム ◦ 収集、フィルタリング、バッファリング、および送信といった主要な機 能がすべてプラグインによって提供される • 1000以上のプラグイン •
Ruby言語で新規のプラグインを簡単に自作可能 • RubyGemsのしくみによってプラグインを配布・利用可能 12
Fluentdの特徴: スケールする ※ Fluent Bitと組み合わせ可能 13
Fluentdの特徴: オープンソース • 誰でも開発に参加できる • プラグインをコミュニティで管理するしくみ ◦ https://github.com/fluent-plugins-nursery 14
FluentdとFluent Bit • Fluentdの特徴 ◦ 豊富なプラグイン、カスタマイズ性の高さ • Fluent Bitの特徴 ◦
軽量、高速 • 互いに転送可能 ◦ 例: エッジ処理をFluent Bit、集約・加工処理をFluentdで行う • OpenTelemetry対応 ◦ Fluentdが未対応の状態が続いていたが、ついに部分的に対応 15
• Fluentdとは • FluentdとCloud Native • Fluentdの進化 • 最新版紹介 •
OpenTelemetry対応 16
FluentdとCloud Native • 2019年にCNCFのGraduatedレベルに認定 • 分散システムの可観測性を実現する • 近年、サブプロジェクトであるFluent Bitが、コンテナ環境に適したログ 転送エージェントとして普及
17
Node Pod Pod kubelet 分散システムにおけるFluentd 引用: Fluentd/Fluent Bit で実現する楽なKubernetesのログ運用 CloudNative
Days Tokyo 2021 Node Pod Pod kubelet Node Pod Pod kubelet + 18
FluentdとFluent Bitの併用例 引用: Fluentd/Fluent Bit で実現する楽なKubernetesのログ運用 CloudNative Days Tokyo 2021
Node Pod Pod kubelet Node Pod Pod kubelet Node Pod Pod kubelet AWS S3 19
• Fluentdとは • FluentdとCloud Native • Fluentdの進化 • 最新版紹介 •
OpenTelemetry対応 20
Fluentdの進化 • 継続的な不具合修正による動作の安定化 • 継続的に便利な新機能を追加 • リリースサイクルの改善(LTS版の提供) 21
Fluentdの進化: 過去の主な不具合修正 年月 Fluentd 修正した不具合 2018年3月 1.1.2 マルチスレッドで転送が失敗することがある 2019年8月 1.7.0
圧縮データを解凍するときにログ欠損が生じることがある 2022年7月 1.15.1 マルチワーカーでのファイル追記出力がデータ破損することがある 2023年11月 1.16.3 データ収集がエラーを出さすに停止してしまうことがある 2024年3月 1.16.4 大きいデータのバッファー書き込みに失敗してログ欠損が生じることがある 2025年7月 1.19.0 設定によっては日本語などの非 ASCII文字が収集時に破損することがある ※ 公式Wiki「影響度の高い不具合の一覧」 22
不具合診断ツール • Fluentd v1.12.1 (td-agent v4.1.0) ~ v1.16.2 (fluent-package v5.0.1)
にかけて、ログ収集(in_tailプラグイン)がエラーなく止まってしまうこと がある深刻な不具合があった • 診断ツールを開発・提供 ◦ https://github.com/clear-code/fluent-tail_checker ◦ 診断ツールガイド 23
Fluentdの進化: 過去の機能追加 年月 Fluentd 修正した不具合 2022年6月 1.15.0 YAML形式の設定ファイルをサポート 2023年3月 1.16.0
バッファーファイル破損時の対応強化 2024年4月 1.17.0 より柔軟な収集対象ファイルパスの指定を可能に 2024年11月 1.18.0 組み込みRubyコードをArrayやHash表記内でも利用可能に 1.18.0 ゼロダウンタイム・リスタート機能を追加 2025年7月 1.19.0 より高速なzstd圧縮形式に対応 ※ https://www.fluentd.org/blog/archive/ 24
Fluentdの進化: リリースサイクル改善 • 長期サポート(LTS)版の提供を開始 ◦ サポート期間を事前アナウンス(約2年間) ◦ セキュリティー・バグフィックスのみを提供 • 現在のLTS版
◦ Fluentd v1.16.x == Fluent Package v5.0.x ▪ 2025年いっぱいまで ◦ Fluentd v1.19.x == Fluent Package v6.0.x ▪ 2027年いっぱいまで 25
• Fluentdとは • FluentdとCloud Native • Fluentdの進化 • 最新版紹介 •
OpenTelemetry対応 26
最新版: Fluentd v1.19 / Fluent Package v6 • ゼロダウンタイム・リスタート •
耐障害性の強化 • パフォーマンス改善 • OpenTelemetryの一部対応 27
これまでの Fluentd 更新作業 • これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ イル更新、Fluentdアップデートが煩雑 AWS S3 この Fluentd
を更新したい!! syslog syslog 28
これまでの Fluentd 更新作業 • これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ イル更新、Fluentdアップデートが煩雑 AWS S3 1.送信側を停止 syslog
syslog 29
これまでの Fluentd 更新作業 • これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ イル更新、Fluentdアップデートが煩雑 AWS S3 2.Fluentd を停止
syslog syslog 30
これまでの Fluentd 更新作業 • これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ イル更新、Fluentdアップデートが煩雑 AWS S3 3.Fluentd を更新
syslog syslog 31
これまでの Fluentd 更新作業 • これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ イル更新、Fluentdアップデートが煩雑 AWS S3 4.Fluentd を再開
syslog syslog 32
これまでの Fluentd 更新作業 • これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ イル更新、Fluentdアップデートが煩雑 AWS S3 5.送信側を再開 syslog
syslog 33
ゼロダウンタイム・リスタート • UDP/TCP通信を止めずにFluentdをリスタート可能に ◦ 設定リロードによる受信取りこぼしを気にせずに済む! • ゼロダウンタイムでの Fluentd アップデートもサポート AWS
S3 syslog syslog 1.ゼロダウンタイム機能で更新、以上。 34
耐障害性の強化 • リカバリーの簡易化 ◦ バッファーファイル破損の検出機能の強化 • メトリクスの強化 ◦ input プラグインのメトリクスをデフォルトで取得
◦ メトリクスを新規に追加 35
パフォーマンス改善(1) • Zstandard (zstd)圧縮形式をサポート • 低負荷で高効率な圧縮 9.4% (ランダムな 10 GBのデータを読み込み、それぞれの形式で圧縮し転送)
48.1% 36
パフォーマンス改善(2) • ログファイルを読み込み、集約した結果をファイル出力する途中処理の JSONパフォーマンス改善 18.3% 18.3% (ランダムな 10 GBのデータを読み込み出力) 37
メモリ使用量の改善 • ログファイルを読み込み、集約した結果をファイル出力する際のメモリ 使用量を改善 9% (1 GBのログファイル読込・出力) 38
• Fluentdとは • FluentdとCloud Native • Fluentdの進化 • 最新版紹介 •
OpenTelemetry対応 39
OpenTelemetry とは • CNCF主導プロジェクト • ログ・メトリクス・トレース統合の標準仕様 ◦ ベンダーに依存しないオブザーバビリティの共通言語 ◦ ログ:テキストや構造化イベント
◦ メトリクス:リクエスト数、レイテンシなど ◦ トレース:リクエストや処理の経路情報 40
Fluentd、OpenTelemetry ✅ アプリケーションのテレメトリーデータを転送可能 ◦ Fluentdでテレメトリーデータを受信 ◦ OpenTelemetry Collector へ OTLP
形式で転送 ✅ FluentdのメトリクスデータをOTLP 形式で送信可能 ⚠ OTLP 形式でないテキストのログデータの転送は今後対応予定 ◦ Fluent Forward 形式でログを Collector に転送可能 41
システム構築例 app ファイル AWS S3 既存のログ収集システムをベースに・・・ 42
システム構築例 app ファイル AWS S3 OTLP形式のデータ経路を、既存のシステムに追加 app OTLP OTLP or
Fluent bit OpenTelemetry コレクター Prometheus Fluent Forward 43
設定例:OTLPデータの受信 <source> @type opentelemetry tag opentelemetry <http> bind 0.0.0.0 port
4318 </http> </source> アプリケーションなど 44
設定例:OTLPデータの送信 <match tag> @type opentelemetry <http> endpoint "http://collector:4318" </http> ...
</match> OpenTelemetryコレクター receivers: otlp: protocols: http: endpoint: 0.0.0.0:4318 service: pipelines: traces: receivers: [otlp] metrics: receivers: [otlp] logs: receivers: [otlp] 45
設定例:ログ送信 <match tag> @type forward <server> host collector port 24224
</server> ... </match> OpenTelemetryコレクター receivers: fluentforward: endpoint: 0.0.0.0:24224 service: pipelines: logs: receivers: [fluentforward] OTLP 形式でないテキストのログデータの転送は今後対応予定 Fluent Forward 形式でログを Collector に転送可能 46
まとめ • Fluentdは今も進化を続けています ◦ ゼロダウンタイムで運用を止めずに更新 ◦ 耐障害性の向上で安定稼働 ◦ パフォーマンス改善で高速化 ◦
OpenTelemetry対応 47
Discussionに日本語Q&Aあります! https://github.com/fluent/fluentd/discussions/categories/q-a-japanese 日本語での問い合わせも、 お待ちしてます!! Issue報告やPull Requestもお待ちしてます! 48