Text
Page: 1
クラウドネイティブ時代に
進化し続けるFluentd
CloudNative Days Winter 2025
2025/11/19
1
Page: 2
自己紹介
Shizuo Fujita (藤田 静男)
株式会社クリアコード
Fluentd メンテナー
Daijiro Fukuda (福田 大司郎)
株式会社クリアコード
Fluentd メンテナー
2
Page: 4
Fluentdの歴史とクリアコードの関わり
Fluent Package
LTS版配布開始
CNCF
Graduated Project
Fluentd開発スタート
2011年
2023 年 8 月
2019 年 4 月
v1.0
2017 年 12 月
CNCF参加
2016 年 11 月
fluent-plugins-nursery
2016 年 11 月
td-agent-builder
(fluent-package-builder)
2020 年 3 月
クリアコード開発参加クリアコード
メンテナンス引き継ぎ
2015 年 6 月2021 年 3 月
4
Page: 5
今日お話すること
● Fluentdとは
● FluentdとCloud Native
● Fluentdの進化
● 最新版紹介
● OpenTelemetry対応
5
Page: 6
● Fluentdとは
● FluentdとCloud Native
● Fluentdの進化
● 最新版紹介
● OpenTelemetry対応
6
Page: 8
Fluent(d)プロジェクト
Fluentd
Fluent Bit
8
Page: 9
Fluentdの配布形態
● Ruby gem
● Package
○ Fluent Package (fluent-package)
○ Treasure Agent (td-agent)
○ Calyptia Fluentd (calyptia-fluentd)
● Container
○ Docker images
○ Daemonset for Kubernetes
9
Page: 10
Fluentdの特徴
● 柔軟性(カスタマイズ性)
● スケールする
● オープンソース
10
Page: 11
Fluentdの特徴: 柔軟性(カスタマイズ性)
● 柔軟性の高いプラグインシステム
○ 収集、フィルタリング、バッファリング、および送信といった主要な機
能がすべてプラグインによって提供される
● 1000以上のプラグイン
● Ruby言語で新規のプラグインを簡単に自作可能
● RubyGemsのしくみによってプラグインを配布・利用可能
11
Page: 12
Fluentdの特徴: スケールする
※ Fluent Bitと組み合わせ可能
12
Page: 13
Fluentdの特徴: オープンソース
● 誰でも開発に参加できる
● プラグインをコミュニティで管理するしくみ
○ https://github.com/fluent-plugins-nursery
13
Page: 14
FluentdとFluent Bit
● Fluentdの特徴
○ 豊富なプラグイン、カスタマイズ性の高さ
● Fluent Bitの特徴
○ 軽量、高速
● 互いに転送可能
○ 例: エッジ処理をFluent Bit、集約・加工処理をFluentdで行う
● OpenTelemetry対応
○ Fluentdが未対応の状態が続いていたが、ついに部分的に対応
14
Page: 15
● Fluentdとは
● FluentdとCloud Native
● Fluentdの進化
● 最新版紹介
● OpenTelemetry対応
15
Page: 16
FluentdとCloud Native
● 2019年にCNCFのGraduatedレベルに認定
● 分散システムの可観測性を実現する
● 近年、サブプロジェクトであるFluent Bitが、コンテナ環境に適したログ
転送エージェントとして普及
16
Page: 17
分散システムにおけるFluentd
Node
Node
Node
Pod
Pod
Pod
Pod
Pod
Pod
+
kubelet
kubelet
kubelet
引用: Fluentd/Fluent Bit で実現する楽なKubernetesのログ運用
CloudNative Days Tokyo 2021
17
Page: 18
FluentdとFluent Bitの併用例
Node
Node
Node
AWS S3
Pod
Pod
Pod
Pod
Pod
Pod
kubelet
kubelet
kubelet
引用: Fluentd/Fluent Bit で実現する楽なKubernetesのログ運用
CloudNative Days Tokyo 2021
18
Page: 19
Fluentdはもう古い?
19
Page: 20
● Fluentdとは
● FluentdとCloud Native
● Fluentdの進化
● 最新版紹介
● OpenTelemetry対応
20
Page: 21
Fluentdの進化
● 継続的な不具合修正による動作の安定化
● 継続的に便利な新機能を追加
● リリースサイクルの改善(LTS版の提供)
21
Page: 22
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
Page: 23
不具合診断ツール
● 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
Page: 24
Fluentdの進化: 過去の機能追加
年月Fluentd修正した不具合
2022年6月1.15.0YAML形式の設定ファイルをサポート
2023年3月1.16.0バッファーファイル破損時の対応強化
2024年4月1.17.0より柔軟な収集対象ファイルパスの指定を可能に
2024年11月1.18.0組み込みRubyコードをArrayやHash表記内でも利用可能に
1.18.0ゼロダウンタイム・リスタート機能を追加
1.19.0より高速なzstd圧縮形式に対応
2025年7月
※ https://www.fluentd.org/blog/archive/
24
Page: 25
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
Page: 26
● Fluentdとは
● FluentdとCloud Native
● Fluentdの進化
● 最新版紹介
● OpenTelemetry対応
26
Page: 27
最新版: Fluentd v1.19 / Fluent Package v6
● ゼロダウンタイム・リスタート
● 耐障害性の強化
● パフォーマンス改善
● OpenTelemetryの一部対応
27
Page: 28
これまでの Fluentd 更新作業
● これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ
イル更新、Fluentdアップデートが煩雑
syslog
AWS S3
syslog
この Fluentd を更新したい!!
28
Page: 29
これまでの Fluentd 更新作業
● これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ
イル更新、Fluentdアップデートが煩雑
syslog
AWS S3
syslog
1.送信側を停止
29
Page: 30
これまでの Fluentd 更新作業
● これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ
イル更新、Fluentdアップデートが煩雑
syslog
AWS S3
syslog
2.Fluentd を停止
30
Page: 31
これまでの Fluentd 更新作業
● これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ
イル更新、Fluentdアップデートが煩雑
syslog
AWS S3
syslog
3.Fluentd を更新
31
Page: 32
これまでの Fluentd 更新作業
● これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ
イル更新、Fluentdアップデートが煩雑
syslog
AWS S3
syslog
4.Fluentd を再開
32
Page: 33
これまでの Fluentd 更新作業
● これまで、アプリケーションのログ欠損なしで稼働中のFluentd設定ファ
イル更新、Fluentdアップデートが煩雑
syslog
AWS S3
syslog
5.送信側を再開
33
Page: 34
ゼロダウンタイム・リスタート
● UDP/TCP通信を止めずにFluentdをリスタート可能に
○ 設定リロードによる受信取りこぼしを気にせずに済む!
● ゼロダウンタイムでの Fluentd アップデートもサポート
syslog
AWS S3
syslog
1.ゼロダウンタイム機能で更新、以上。
34
Page: 35
耐障害性の強化
● リカバリーの簡易化
○ バッファーファイル破損の検出機能の強化
● メトリクスの強化
○ input プラグインのメトリクスをデフォルトで取得
○ メトリクスを新規に追加
35
Page: 36
パフォーマンス改善(1)
● Zstandard (zstd)圧縮形式をサポート
● 低負荷で高効率な圧縮
9.4%
48.1%
(ランダムな 10 GBのデータを読み込み、それぞれの形式で圧縮し転送)
36
Page: 37
パフォーマンス改善(2)
● ログファイルを読み込み、集約した結果をファイル出力する途中処理の
JSONパフォーマンス改善
18.3%
18.3%
(ランダムな 10 GBのデータを読み込み出力)
37
Page: 38
メモリ使用量の改善
● ログファイルを読み込み、集約した結果をファイル出力する際のメモリ
使用量を改善
9%
(1 GBのログファイル読込・出力)
38
Page: 39
● Fluentdとは
● FluentdとCloud Native
● Fluentdの進化
● 最新版紹介
● OpenTelemetry対応
39
Page: 40
OpenTelemetry とは
● CNCF主導プロジェクト
● ログ・メトリクス・トレース統合の標準仕様
○ ベンダーに依存しないオブザーバビリティの共通言語
○ ログ:テキストや構造化イベント
○ メトリクス:リクエスト数、レイテンシなど
○ トレース:リクエストや処理の経路情報
40
Page: 41
Fluentd、OpenTelemetry
✅ アプリケーションのテレメトリーデータを転送可能
○ Fluentdでテレメトリーデータを受信
○ OpenTelemetry Collector へ OTLP 形式で転送
✅ FluentdのメトリクスデータをOTLP 形式で送信可能
⚠ OTLP 形式でないテキストのログデータの転送は今後対応予定
○ Fluent Forward 形式でログを Collector に転送可能
41
Page: 42
システム構築例
既存のログ収集システムをベースに・・・
AWS S3
app
ファイル
42
Page: 43
システム構築例
OTLP形式のデータ経路を、既存のシステムに追加
AWS S3
app
ファイル
OTLP
OTLP or
Fluent
Forward
app
OpenTelemetry
コレクター
Fluent bit
43
Prometheus
Page: 44
設定例:OTLPデータの受信
<source>
@type opentelemetry
tag opentelemetry
<http>
bind 0.0.0.0
port 4318
</http>
</source>
アプリケーションなど
44
Page: 45
設定例:OTLPデータの送信
<match tag>
receivers:
otlp:
protocols:
http:
endpoint: 0.0.0.0:4318
@type opentelemetry
<http>
endpoint "http://collector:4318"
</http>
...
</match>
OpenTelemetryコレクター
45
service:
pipelines:
traces:
receivers: [otlp]
metrics:
receivers: [otlp]
logs:
receivers: [otlp]
Page: 46
設定例:ログ送信
<match tag>
receivers:
@type forward
fluentforward:
endpoint: 0.0.0.0:24224
<server>
host collector
service:
port 24224
pipelines:
</server>
logs:
receivers: [fluentforward]
...
</match>
OpenTelemetryコレクター
OTLP 形式でないテキストのログデータの転送は今後対応予定
Fluent Forward 形式でログを Collector に転送可能
46
Page: 47
まとめ
● Fluentdは今も進化を続けています
○ ゼロダウンタイムで運用を止めずに更新
○ 耐障害性の向上で安定稼働
○ パフォーマンス改善で高速化
○ OpenTelemetry対応
47
Page: 48
Discussionに日本語Q&Aあります!
https://github.com/fluent/fluentd/discussions/categories/q-a-japanese
日本語での問い合わせも、
お待ちしてます!!
Issue報告やPull Requestもお待ちしてます!
48