k.sasakiです。Fluent Package v6が 2025/8/29にリリースされました。本日は前回の記事で構築した、Fluent Package v5 の環境のv6へのアップデートを行いました。
アップデート自体は問題なく実行できたのですが、Fluentdの起動時にエラーが発生し起動に失敗したため、調査と対処を行い解決しました。
Fluent Package v6へのアップデートを検討している方や、同じエラーに遭遇した方の参考になれば幸いです。
エラーの発生理由と対処法
Fluent Package v6にアップデートした直後に、Fluentdの起動に失敗した際のエラーの発生理由と対処についてまとめておきます。
- Fluentd v1.16系(Fluent Package v5)で "@include conf.d/syslog.conf" と明示的にファイルを読み込んでいた
- Fluentd v1.19系(Fluent Package v6)から、暗黙的にconf.d/*をincludeする機能が追加された
- conf.d/syslog.conf ファイルが暗黙的な読み込みと @includeによる明示的な読み込みで二重に読み込まれた
- 二重に設定が読み込まれた結果、複数の出力設定で同一のバッファファイルを指定した設定となった
- Fluentd起動時に、"plugin already use same buffer path"というエラーにより起動に失敗した
エラー発生時のディレクトリの構成やincludeの設定は以下の通りです。
(rootユーザ)
# tree /etc/fluent/
/etc/fluent/
├── conf.d # ユーザ用のincludeするファイル用ディレクトリ
│ └── syslog.conf
├── fluentd.conf
├── fluentd.conf_bk
└── plugin
3 directories, 5 files
# cat /etc/fluent/fluentd.conf
<system>
log_level info
</system>
@include conf.d/syslog.conf
conf.d配下にアップデートによりいくつかファイルが追加されて、読み込まれている状態だったため、私はconf.dはシステム用に明け渡して、別のディレクトリにincludeしたいファイルを移すという対処を選択しました。
最終的なディレクトリ構成は以下の通りです。
(rootユーザ)
# tree /etc/fluent/
/etc/fluent/
├── conf.d # システム用のincludeするファイル用ディレクトリ
│ ├── obsolete_plugins.conf
│ └── update_notifier.conf
├── fluentd.conf
├── fluentd.conf_bk
├── local.conf.d # ユーザ用のincludeするファイル用ディレクトリ
│ └── syslog.conf
└── plugin
3 directories, 5 files
# cat /etc/fluent/fluentd.conf
<system>
log_level info
</system>
@include local.conf.d/syslog.conf
目次
はじめに
前回の記事では、Fluentd(Fluent Package v5) をインストールして、SyslogをOCI ObjectStorageにリアルタイムに転送する環境を構築しました。
今回の記事では、前回導入したFluent Package v5を v6へアップデートを行います。
前回の環境の情報は以下のとおりです。
- Oracle Linux Server release 9.6 / x86_64
- fluent-package 5.0.7 LTS版(fluentd 1.16.9)
- fluent-plugin-s3 (1.7.2)
今回はFluent Package v6へアップデートするため、以下の構成となります。
- Oracle Linux Server release 9.6 / x86_64
- fluent-package 6.0.0 LTS版(fluentd 1.19.0)
- fluent-plugin-s3 (1.8.3)
Fluent Package v6 リリース
2025年8月29日にFluent Package v6 LTS がリリースされました。
Fluentdがv1.16系から1.19系へアップデートされる他、対応するプラットフォーム情報なども更新があります。アップデートの詳細はFluentd Blog fluent-package v6.0.0 has been releasedなどをご確認ください
Fluent Package LTS版(6.0.x)は現時点では、2027年12月までセキュリティやバグフィックスなどが提供される予定です。LTS版(5.0.x)は2025年12月までのサポートとなっているため、期間内のアップデートが推奨されます。(図はScheduled support lifecycle announcement about Fluent Package v6 より)
Fluent Package v6へのアップデートの実行
今回は Fluent Package 5からのアップデートです。Fluentd 公式のドキュメントでは現時点で、v6へのアップデートのガイドを確認できなかったため、Fluentdの開発をリードする株式会社クリアコード様のFluent Package v6 LTS へのアップデート手順に従い進めていきます。
手順は以下の通りです。
1.追加されているプラグインを確認します
2.Fluentdサービスを停止します
3.レジストリをバックアップします(Windows版のみ)
4.Fluent Package v6 LTS をインストールします
5.プラグインをインストールします
6.Fluentdサービスを再開します
前回の記事でserviceファイルについても、rootユーザで動作するように修正を加えたため、設定ファイルに加えてserviceファイルについてもバックアップを取得します。
(rootユーザ)
(環境確認)
# fluentd --version
fluent-package 5.0.7 fluentd 1.16.9 (daccbc6f0551611c65d3ce7efd81dfc7b693f3e3)
# fluent-gem list | grep fluent-plugin-s3
fluent-plugin-s3 (1.7.2)
# fluent-gem list > /home/opc/fluent-package-5.0.7.$(date +%Y%m%d)
(バックアップ)
# cp -r /etc/fluent /home/opc/fluent.backup.$(date +%Y%m%d)
# cp /usr/lib/systemd/system/fluentd.service /home/opc/fluent.service.backup.$(date +%Y%m%d)
(取得ファイルの確認)
# tree /home/opc/
/home/opc/
├── fluent.backup.20250901
│ ├── conf.d
│ │ └── syslog.conf
│ ├── fluentd.conf
│ ├── fluentd.conf_bk
│ └── plugin
├── fluent-package-5.0.7.20250901
└── fluent.service.backup.20250901
バックアップが完了したので、手順に従いアップデートを進めます。
1.追加されているプラグインを確認します
Linuxでは、Fluentd v5.0.2以降であれば診断ツールのfluent-diagtoolを使用して確認ができるとのことです。
手動で追加したプラグインはありませんが、手順通り実行してみます。
(rootユーザ)
(全文記載)
# /opt/fluent/bin/fluent-diagtool -t fluentd -o /tmp
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] Parsing command options...
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] Option : Output directory = /tmp
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] Option : Mask = no
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] Option : Word list = []
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] Option : Hash Seed =
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] Initializing parameters...
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Loading the environment parameters...
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] operating system = Oracle Linux Server 9.6
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] kernel version = Linux 6.12.0-102.36.5.2.el9uek.x86_64
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] fluent-package conf path = /etc/fluent/
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] fluent-package conf file = fluentd.conf
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] fluent-package log path = /var/log/fluent/
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] fluent-package log = fluentd.log
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting log files of fluent-package...
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting config file of fluent-package...
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] config file is stored in ["/tmp/20250901031912/etc/fluent/fluentd.conf", "/tmp/20250901031912/etc/fluent/conf.d-syslog.conf"]
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting fluent-package gem information...
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] fluent-package gem information is stored in /tmp/20250901031912/output/tdgem_list.output
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] fluent-package gem information (bundled by default) is stored in /tmp/20250901031912/output/gem_bundled_list.output
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] fluent-package manually installed gem information is stored in /tmp/20250901031912/output/gem_local_list.output
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting config file of OS log...
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] config file is stored in /tmp/20250901031912/var/log/messages
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting date/time information...
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] date/time information is stored in /tmp/20250901031912/output/chronyc_sources.txt
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting command output : command = ps -eo pid,ppid,stime,time,%mem,%cpu,cmd
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting command output ps stored in /tmp/20250901031912/output/ps_-eo_pid_ppid_stime_time_%mem_%cpu_cmd.txt
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting command output : command = cat /proc/meminfo
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting command output cat stored in /tmp/20250901031912/output/cat_-proc-meminfo.txt
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] Collecting command output : command = netstat -plan
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Collect] Collecting command output netstat stored in /tmp/20250901031912/output/netstat_-plan.txt
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Collect] Collecting command output : command = netstat -s
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Collect] Collecting command output netstat stored in /tmp/20250901031912/output/netstat_-s.txt
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Collect] Collecting sysctl information...
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Collect] sysctl information is stored in /tmp/20250901031912/output/sysctl_-a.txt
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Validating sysctl information...
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_core_netdev_max_backlog => 5000 is correct (recommendation is 5000)
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_core_rmem_max => 16777216 is correct (recommendation is 16777216)
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_core_somaxconn => 1024 is correct (recommendation is 1024)
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_core_wmem_max => 16777216 is correct (recommendation is 16777216)
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_ipv4_ip_local_port_range => ["10240", "65535"] is correct (recommendation is ["10240", "65535"])
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_ipv4_tcp_max_syn_backlog => 8096 is correct (recommendation is 8096)
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_ipv4_tcp_rmem => ["4096", "12582912", "16777216"] is correct (recommendation is ["4096", "12582912", "16777216"])
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_ipv4_tcp_slow_start_after_idle => 0 is correct (recommendation is 0)
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_ipv4_tcp_tw_reuse => 1 is correct (recommendation is 1)
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Sysctl: net_ipv4_tcp_wmem => ["4096", "12582912", "16777216"] is correct (recommendation is ["4096", "12582912", "16777216"])
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Collect] Collecting ulimit information...
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Collect] ulimit information is stored in /tmp/20250901031912/output/sh_-c_'ulimit_-n'.txt
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] Validating ulimit information...
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Valid] ulimit => 65536 is correct (recommendation is >65535)
2025-09-01 03:19:13 +0000: [Diagtool] [INFO] [Collect] Generate tar file /tmp/diagout-20250901031912.tar.gz
手順によると、以下のように追加したプラグインがあれば表示されるとのことです。
(手順に記載の出力: 例 fluent-plugin-remote_syslogが追加されている場合)
(...)
2025-07-17 08:13:31 +0000: [Diagtool] [INFO] [Collect] fluent-package manually installed gem information is stored in /tmp/20250717081331/output/gem_local_list.output
2025-07-17 08:13:31 +0000: [Diagtool] [INFO] [Collect] fluent-package manually installed gems:
2025-07-17 08:13:31 +0000: [Diagtool] [INFO] [Collect] * fluent-plugin-remote_syslog
(...)
本環境では、追加したプラグインがないので、以下の表示のみでした。
(本環境の出力)
(...)
2025-09-01 03:19:12 +0000: [Diagtool] [INFO] [Collect] fluent-package manually installed gem information is stored in /tmp/20250901031912/output/gem_local_list.output
(...)
次に進みます。
2.Fluentdサービスを停止します
"フォワーダー、アグリゲーター、の順に停止してください"と記載がありますが、本環境はサーバ1台にFluentdを導入しているのみなので、停止順序は関係なく、そのままFluentdを停止します。
(rootユーザ)
# systemctl stop fluentd
停止できたので次に進みます。
💭 余談:Fluentdのフォワーダー/アグリゲーター構成
フォワーダー(転送役)が各サーバやコンテナ内でローカルログを収集し、アグリゲーター(集約役)がこれを受信・加工して最終データストアに格納する 2段階のアーキテクチャ)を指します。
3.レジストリをバックアップします(Windows版のみ)
本環境のOSはOracle Linuxなのでこの手順をスキップして次に進みます。
4.Fluent Package v6 LTS をインストールします
パッケージのインストールを行います。
(rootユーザ)
(全文記載)
# curl -fsSL https://fluentd.cdn.cncf.io/sh/install-redhat-fluent-package6-lts.sh | sh
==============================
fluent-package Installation Script
==============================
This script requires superuser access to install rpm packages.
You will be prompted for your password by sudo.
file /etc/yum.repos.d/fluent-package-lts.repo is not owned by any package
Backup unmanaged .repo to fluent-package-lts.repo.rpmsave
Last metadata expiration check: 1:59:18 ago on Mon 01 Sep 2025 01:39:30 AM GMT.
Dependencies resolved.
====================================================================================================================================================================================================
Package Architecture Version Repository Size
====================================================================================================================================================================================================
Installing:
fluent-lts-release noarch 2025.8.29-1.el9 @commandline 12 k
Transaction Summary
====================================================================================================================================================================================================
Install 1 Package
Total size: 12 k
Installed size: 6.7 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : fluent-lts-release-2025.8.29-1.el9.noarch 1/1
Verifying : fluent-lts-release-2025.8.29-1.el9.noarch 1/1
Installed:
fluent-lts-release-2025.8.29-1.el9.noarch
Complete!
Fluentd Project 97 kB/s | 79 kB 00:00
fluent-package.x86_64 6.0.0-1.el9 fluent-package-v6-lts
kernel.x86_64 5.14.0-570.37.1.0.1.el9_6 ol9_baseos_latest
kernel-core.x86_64 5.14.0-570.37.1.0.1.el9_6 ol9_baseos_latest
kernel-headers.x86_64 5.14.0-570.37.1.0.1.el9_6 ol9_appstream
kernel-modules.x86_64 5.14.0-570.37.1.0.1.el9_6 ol9_baseos_latest
kernel-modules-core.x86_64 5.14.0-570.37.1.0.1.el9_6 ol9_baseos_latest
kernel-tools.x86_64 5.14.0-570.37.1.0.1.el9_6 ol9_baseos_latest
kernel-tools-libs.x86_64 5.14.0-570.37.1.0.1.el9_6 ol9_baseos_latest
perf.x86_64 5.14.0-570.37.1.0.1.el9_6 ol9_appstream
python3-perf.x86_64 5.14.0-570.37.1.0.1.el9_6 ol9_baseos_latest
python39-oci-sdk.x86_64 2.159.0-1.el9 ol9_oci_included
Last metadata expiration check: 0:00:01 ago on Mon 01 Sep 2025 03:38:52 AM GMT.
Package fluent-package-5.0.7-1.el9.x86_64 is already installed.
Dependencies resolved.
====================================================================================================================================================================================================
Package Architecture Version Repository Size
====================================================================================================================================================================================================
Upgrading:
fluent-package x86_64 6.0.0-1.el9 fluent-package-v6-lts 22 M
Transaction Summary
====================================================================================================================================================================================================
Upgrade 1 Package
Total download size: 22 M
Downloading Packages:
fluent-package-6.0.0-1.el9.x86_64.rpm 15 MB/s | 22 MB 00:01
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 15 MB/s | 22 MB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: fluent-package-6.0.0-1.el9.x86_64 1/2
Upgrading : fluent-package-6.0.0-1.el9.x86_64 1/2
Running scriptlet: fluent-package-6.0.0-1.el9.x86_64 1/2
prelink detected. checking /etc/prelink.conf.d/ ...
Running scriptlet: fluent-package-5.0.7-1.el9.x86_64 2/2
Cleanup : fluent-package-5.0.7-1.el9.x86_64 2/2
Running scriptlet: fluent-package-5.0.7-1.el9.x86_64 2/2
Running scriptlet: fluent-package-6.0.0-1.el9.x86_64 2/2
Running scriptlet: fluent-package-5.0.7-1.el9.x86_64 2/2
Verifying : fluent-package-6.0.0-1.el9.x86_64 1/2
Verifying : fluent-package-5.0.7-1.el9.x86_64 2/2
Upgraded:
fluent-package-6.0.0-1.el9.x86_64
Complete!
Installation completed. Happy Logging!
無事インストールが完了しました。
リポジトリが追加されていることも確認できました。
(rootユーザ)
# cat /etc/yum.repos.d/fluent-package-lts.repo
[fluent-package-v5-lts]
name=Fluentd Project
baseurl=https://fluentd.cdn.cncf.io/lts/5/redhat/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-td-agent
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fluent-package
[fluent-package-v6-lts]
name=Fluentd Project
baseurl=https://fluentd.cdn.cncf.io/lts/6/redhat/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-td-agent
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fluent-package
serviceファイルも置き換えられて、実行ユーザがfluentdとなっていました。
検証用の環境のためrootユーザに変更して、ログファイルのパーミッションを問わずログを読み込むことをできるようにします。
(rootユーザ)
# vi /usr/lib/systemd/system/fluentd.service
(修正前)
[Service]
User=fluentd
Group=fluentd
(修正後)
[Service]
User=root
Group=root
(修正完了後更新を反映)
# systemctl daemon-reload
インストールが完了しましたので、次に進みます。
5.プラグインをインストールします
手動で追加したプラグインを再インストールする手順です。
本環境ではプラグインの手動追加は実施していませんので、この手順もスキップします。
6.Fluentdサービスを再開します
あとはFluentdを起動するだけですが、ここで起動に失敗しました。
(rootユーザ)
# systemctl start fluentd
Job for fluentd.service failed because the control process exited with error code.
See "systemctl status fluentd.service" and "journalctl -xeu fluentd.service" for details.
# systemctl status fluentd.service
× fluentd.service - fluentd: All in one package of Fluentd
Loaded: loaded (/usr/lib/systemd/system/fluentd.service; enabled; preset: disabled)
Active: failed (Result: exit-code) since Mon 2025-09-01 03:57:23 GMT; 3min 14s ago
Duration: 22min 15.880s
Docs: https://docs.fluentd.org/
Process: 20475 ExecStart=/opt/fluent/bin/fluentd --log $FLUENT_PACKAGE_LOG_FILE --daemon /var/run/fluent/fluentd.pid $FLUENT_PACKAGE_OPTIONS (code=exited, status=1/FAILURE)
CPU: 670ms
Sep 01 03:57:23 ol9 systemd[1]: fluentd.service: Scheduled restart job, restart counter is at 5.
Sep 01 03:57:23 ol9 systemd[1]: Stopped fluentd: All in one package of Fluentd.
Sep 01 03:57:23 ol9 systemd[1]: fluentd.service: Start request repeated too quickly.
Sep 01 03:57:23 ol9 systemd[1]: fluentd.service: Failed with result 'exit-code'.
Sep 01 03:57:23 ol9 systemd[1]: Failed to start fluentd: All in one package of Fluentd.
Job for fluentd.service failed because the control process exited with error code.
See "systemctl status fluentd.service" and "journalctl -xeu fluentd.service" for details.
より詳細な調査を進めます。
エラー調査(plugin already use same buffer pat)
fluentd.logを確認してみると、"他のs3プラグインが既に同じバッファパスを使用している"というエラーを確認することができました。
2025-09-01 03:57:22 +0000 [error]: config error file="/etc/fluent/fluentd.conf" error_class=Fluent::ConfigError error="Other 's3' plugin already use same buffer path: type = s3, buffer path = /var/log/fluent/buffer/syslog.messages/"
しかし、実行時に読み込まれた設定では1つのログ収集設定のみで、バッファファイルのパス重複は発生しません。
(アップデート前のfluentd.log 一部抜粋)
2025-09-01 03:14:45 +0000 [info]: using configuration file: <ROOT>
<system>
log_level info
</system>
<source>
@type tail
path "/var/log/messages"
pos_file "/var/log/fluent/syslog_messages.pos"
format syslog
tag "syslog.messages"
<parse>
@type syslog
unmatched_lines
</parse>
</source>
<match syslog.messages>
@type s3
s3_bucket "obs-nrt"
s3_region "ap-tokyo-1"
s3_endpoint "https://xxxxxx.compat.objectstorage.ap-tokyo-1.oraclecloud.com"
aws_key_id xxxxxx
aws_sec_key xxxxxx
force_path_style true
path "logs/${tag}/%Y/%m/%d/"
<format>
@type "json"
</format>
<inject>
time_key "time"
time_type string
time_format "%Y-%m-%dT%H:%M:%S%z"
</inject>
<buffer tag, time>
@type "file"
path "/var/log/fluent/buffer/syslog.messages/"
timekey 60
timekey_wait 10
</buffer>
</match>
</ROOT>
アップデート前のバッファファイルが残っていることが原因かもと考え、確認してみましたが、バッファファイルは残っていませんでした。posファイルは読み込んだ位置の記録なので影響はないと判断しました。
(rootユーザ)
# ll /var/log/fluent/buffer/syslog.messages/
total 0
# more /var/log/fluent/syslog_messages.pos
/var/log/messages 000000000045e1cc 000000000000033f
GithubのFluentdのDiscussionページをのぞいてみましたが、ざっと見て同様のチケットは起票されていないようです。
状況を整理します。
- "他のs3プラグインが既に同じバッファパスを使用している"というエラーが出てFluentdの起動に失敗する
- しかし、設定ファイル上では、重複する設定は見当たらず、そもそも1つのログ収集設定だけ
- 同様の問題が上がっている様子は見られない。
ここで、一旦ログメッセージの内容を追いかけるのはやめて、原因と思しき s3の出力プラグインを除外してFluentdを起動させることで、問題の被疑箇所を絞り込む方向にアプローチを変更します。
本環境では、ログ収集の設定について管理しやすくなるように設定ファイルを分割する構成としています。
syslog収集用の設定はconf.d/syslog.confに保存して、fluentd.confで明示的にincludeして読み込んでいますので、これをコメントアウトして起動させるためにファイルを編集します。
(rootユーザ)
# tree /etc/fluent/
/etc/fluent/
├── conf.d
│ ├── obsolete_plugins.conf (知らないファイル!)
│ ├── syslog.conf
│ └── update_notifier.conf (知らないファイル!)
├── fluentd.conf
├── fluentd.conf_bk
└── plugin
2 directories, 7 files
# cat /etc/fluent/fluentd.conf
<system>
log_level info
</system>
#@include conf.d/syslog.conf
と、ここで気づいたのですが、conf.d 配下に見慣れないファイルが作成されていました。
ファイル名からすると、今回のアップデートで追加されたファイルのようです。
(rootユーザ)
# cat conf.d/obsolete_plugins.conf
<source>
@type obsolete_plugins
</source>
# cat conf.d/update_notifier.conf
<source>
@type fluent_package_update_notifier
</source>
自分で追加した conf.dの中に、アップデート後にファイルが追加されたという、違和感のある状態です。
検証用の環境ですので、一旦この違和感も置いておき、s3プラグインを除外したFuentdの起動を進めます。
(rootユーザ)
# systemctl start fluentd
今度はエラーなく起動できました。やはり、s3のプラグインに関係する何かしらの問題なのかなと考えつつ、fluentd.logを確認してみます。
すると、コメントアウトしたconf.d/syslog.confがしっかり読み込まれています。
というか、アップデートで追加されたobsolete_plugins.confと、update_notifier.confも特にincludeしてないのに読み込まれているではありませんか。
(抜粋 /var/log/fluent/fluentd.log)
2025-09-01 07:03:26 +0000 [info]: gem 'fluentd' version '1.19.0'
2025-09-01 07:03:26 +0000 [warn]: 'force_path_style' parameter is deprecated: S3 will drop path style API in 2020: See https://aws.amazon.com/blogs/aws/amazon-s3-path-deprecation-plan-the-rest-of-the-story/
2025-09-01 07:03:26 +0000 [warn]: The default value of s3_object_key_format will use ${chunk_id} instead of %{index} to avoid object conflict in v2
2025-09-01 07:03:26 +0000 [info]: using configuration file: <ROOT>
<system>
log_level info
</system>
<source>
@type obsolete_plugins
</source>
<source>
@type tail
path "/var/log/messages"
pos_file "/var/log/fluent/syslog_messages.pos"
format syslog
tag "syslog.messages"
<parse>
@type syslog
unmatched_lines
</parse>
</source>
<match syslog.messages>
@type s3
s3_bucket "obs-nrt"
s3_region "ap-tokyo-1"
s3_endpoint "https://xxxxxx.compat.objectstorage.ap-tokyo-1.oraclecloud.com"
aws_key_id xxxxxx
aws_sec_key xxxxxx
force_path_style true
path "logs/${tag}/%Y/%m/%d/"
<format>
@type "json"
</format>
<inject>
time_key "time"
time_type string
time_format "%Y-%m-%dT%H:%M:%S%z"
</inject>
<buffer tag, time>
@type "file"
path "/var/log/fluent/buffer/syslog.messages/"
timekey 60
timekey_wait 10
</buffer>
</match>
<source>
@type fluent_package_update_notifier
</source>
</ROOT>
2025-09-01 07:03:26 +0000 [info]: starting fluentd-1.19.0 pid=27573 ruby="3.4.5"
2025-09-01 07:03:26 +0000 [info]: spawn command to main: cmdline=["/opt/fluent/bin/ruby", "-Eascii-8bit:ascii-8bit", "/opt/fluent/bin/fluentd", "--log", "/var/log/fluent/fluentd.log", "--daemon", "/var/run/fluent/fluentd.pid", "--under-supervisor"]
つまり、アップデートによって /etc/fluentd/conf.d ディレクトリ直下のファイルが、暗黙的に読み込まれる仕様になったと、ここで理解しました。
ここまでわかると、Fluentdの起動が失敗した際の、"他のs3プラグインが既に同じバッファパスを使用している"というメッセージが示すものは明白です。
conf.d/syslog.confを暗黙的に読み込む処理と、@include conf.d/syslog.confで明示的に読み込む処理が重なったため、二重に同じ設定ファイルが読み込まれ、結果バッファバスの重複が発生したということでした。
local.conf.dを別に作って対処する
原因が確認できたので、対処を進めていきます。
今後もconf.d配下がシステムで使用され、かつ暗黙的に読み込まれるとなると、同じ領域にユーザ側で作成したファイルを共存させることは避けるべきと判断しました。そして、local.conf.d というディレクトリを作成して、ユーザ作成の設定ファイルを管理する方針としました。
最終的なディレクトリ構成とincludeの設定は以下の通りです。
(rootユーザ)
# tree /etc/fluent/
/etc/fluent/
├── conf.d
│ ├── obsolete_plugins.conf
│ └── update_notifier.conf
├── fluentd.conf
├── fluentd.conf_bk
├── local.conf.d # new !!
│ └── syslog.conf # conf.d から 移動
└── plugin
3 directories, 5 files
# cat /etc/fluent/fluentd.conf
<system>
log_level info
</system>
@include local.conf.d/syslog.conf # パス修正
設定ファイルを変更して、Fluentdの起動も確認できました。
動作確認
若干ハマりましたが、無事アップデートが完了したので、元の設定である、SyslogをObjectStorageへリアルタイムに転送する設定が動作しているか確認します。
以下の通り、Fluent Package v6 のアップデートで、Fluentd本体とs3プラグインが更新されました。
(rootユーザ)
# fluentd --version
fluent-package 6.0.0 fluentd 1.19.0 (ed15edc4b7c86c1fcea3fbf326b7c42325e6fc71)
# fluent-gem list | grep fluent-plugin-s3
fluent-plugin-s3 (1.8.3)
ObjectStorageを確認すると、ファイルのアップロードを確認できました。
ファイルの内容も問題ありませんでした。
{"host":"ol9","ident":"systemd","pid":"1","message":"Starting Check pmlogger instances are running...","time":"2025-09-01T07:25:05+0000"}
{"host":"ol9","ident":"systemd","pid":"1","message":"Started Check pmlogger instances are running.","time":"2025-09-01T07:25:05+0000"}
{"host":"ol9","ident":"systemd","pid":"1","message":"pmlogger_check.service: Deactivated successfully.","time":"2025-09-01T07:25:06+0000"}
{"host":"ol9","ident":"systemd","pid":"1","message":"Starting Check and migrate non-primary pmlogger farm instances...","time":"2025-09-01T07:25:15+0000"}
{"host":"ol9","ident":"systemd","pid":"1","message":"Started Check and migrate non-primary pmlogger farm instances.","time":"2025-09-01T07:25:15+0000"}
{"host":"ol9","ident":"systemd","pid":"1","message":"pmlogger_farm_check.service: Deactivated successfully.","time":"2025-09-01T07:25:16+0000"}
これでアップデート後の動作確認についても完了です。
conf.d/*を暗黙的に読み込むようになったのはいつから?
ここで、今回ハマったconf.d/*の暗黙的な読み込みについてもう少し調べていきます。
Fluent Package 5.0.7 LTS版(fluentd 1.16.9)~ Fluent Package 6.0.0 LTS版(fluentd 1.19.0)の間の変更であることは確定しているので、該当の区間のリリース情報をチェックすることにします。
Fluentdのリリース情報を確認すると、すぐに見つかりました。
下記画像の一番下の#4893 System configuration: support built-in config filesが該当しますのでFluentd 1.19.0からの機能追加だと判明しました。
config_include_dirオプションでconf.dの読み込みを無効化できる
ドキュメント上でもconfig_include_dirオプションを確認できました。
以下のように無効化した場合、conf.f/*のファイルを読み込まずに起動することも確認できました。
(rootユーザ)
# cat /etc/fluent/fluentd.conf
<system>
log_level info
config_include_dir ""
</system>
@include local.conf.d/syslog.conf
アップデート後のFluentdの起動確認を行う場合は、暫定的にこのオプションを追加することで、アップデート前と同じファイルのみincludeで読み込む形になるので、アップデート後の動作確認時にこのオプションを使用するという判断はありだと思います。
dry run を実行するとFluentdを起動する前に異常を検知できる
今回のトラブルに有効なのは、Fluentdを起動する前に設定ファイルのdry-runを実行することです。
元の設定ファイルに戻した状態で、dry-runによる設定ファイルのチェックを実施すると、エラーが出力されていることを確認できます。
(root)
# fluentd -c /etc/fluent/fluentd.conf --dry-run
(中略)
2025-09-02 05:29:13 +0000 [error]: config error file="/etc/fluent/fluentd.conf" error_class=Fluent::ConfigError error="Other 's3' plugin already use same buffer path: type = s3, buffer path = /var/log/fluent/buffer/syslog.messages/"
本環境のように、conf.dを使用していなかったとしても、設定ファイルの内容が出力されるので、アップデートで追加されたファイルが意図せず読み込まれている点から、conf.d/*の暗黙的な読み込みの動作に気づくことができます。
さいごに
以上で、Fluentd(Fluent Package v5) から Fluentd(Fluent Package v6) へアップデートが完了しました。
アップデート自体の手順は非常に簡単でしたが、私の環境でconf.dディレクトリを使用していたため、アップデート後にFluentdの起動に失敗した時は、状況がすぐに把握できず、ハマってしまいました。
使用していたconf.dがシステムで使用されるようになったため、最終的にlocal.conf.dを作成して、そちらに設定ファイルを移すというファイル構成を組み直すことで、恒久的な対処としました。
conf.dを作成して設定ファイルを分割するという方法を採用している環境では、アップデートする際は注意が必要です。リリースノートの "support built-in config files"という表記を見てそのまま流していると、同じトラブルが発生します。Fluentdを起動する前にdry-runを実行することで、より早く問題の発見から解決に進むことができます。
なお、FluentdのGithubには日本語QA用のカテゴリがあり、こちらで質問できるようです。
ならびに、Fluentdの日本コミュニティ向けのXアカウントも先日開設されており、アップデートに関する情報の収集に活用させていただきました。
最後までご覧いただきありがとうございました。今後もFluetdとOCIの記事を投稿していく予定です。
Appendixとしてserviceファイルやgemファイルのリストを記載しておきますので、アップデートをご検討の方はご活用ください。
参考URL
Fluentd(Fluent Package v5) でSyslogをOCI ObjectStorageにリアルタイムに転送する
fluent-package v6.0.0 has been released
Scheduled support lifecycle announcement about Fluent Package v6
Fluent Package v6 LTS へのアップデート手順
system_config: support built-in config files #4893
日本コミュニティ向けのXアカウントを開設しました! #5021
Appendix
fluent-package 5.0.7 LTS版(fluentd 1.16.9)
fluent.service
(rootで実行)
(User/Groupのみrootに編集)
# cat fluent.service.backup.20250901
[Unit]
Description=fluentd: All in one package of Fluentd
Documentation=https://docs.fluentd.org/
After=network-online.target
Wants=network-online.target
[Service]
User=root
Group=root
LimitNOFILE=65536
Environment=LD_PRELOAD=/opt/fluent/lib/libjemalloc.so
Environment=GEM_HOME=/opt/fluent/lib/ruby/gems/3.2.0/
Environment=GEM_PATH=/opt/fluent/lib/ruby/gems/3.2.0/
Environment=FLUENT_CONF=/etc/fluent/fluentd.conf
Environment=FLUENT_PLUGIN=/etc/fluent/plugin
Environment=FLUENT_SOCKET=/var/run/fluent/fluentd.sock
Environment=FLUENT_PACKAGE_LOG_FILE=/var/log/fluent/fluentd.log
EnvironmentFile=-/etc/sysconfig/fluentd
PIDFile=/var/run/fluent/fluentd.pid
RuntimeDirectory=fluent
Type=forking
# XXX: Fix fluentd executables path
ExecStart=/opt/fluent/bin/fluentd --log $FLUENT_PACKAGE_LOG_FILE --daemon /var/run/fluent/fluentd.pid $FLUENT_PACKAGE_OPTIONS
ExecStop=/bin/kill -TERM ${MAINPID}
ExecReload=/bin/kill -HUP ${MAINPID}
Restart=always
TimeoutStopSec=120
[Install]
WantedBy=multi-user.target
Alias=td-agent.service
fluent-gem list
(rootで実行)
# fluent-gem list
abbrev (default: 0.1.1)
addressable (2.8.7)
async (1.31.0)
async-http (0.61.0)
async-io (1.38.1)
async-pool (0.4.0)
aws-eventstream (1.2.0)
aws-partitions (1.785.0)
aws-sdk-core (3.178.0)
aws-sdk-kms (1.71.0)
aws-sdk-s3 (1.129.0)
aws-sdk-sqs (1.61.0)
aws-sigv4 (1.6.0)
base64 (0.2.0, default: 0.1.1)
benchmark (default: 0.2.1)
bigdecimal (default: 3.1.3, 3.0.2)
bindata (2.4.15)
bundler (default: 2.4.19, 2.3.27)
cgi (default: 0.3.7)
cmetrics (0.3.3)
concurrent-ruby (1.2.3)
console (1.23.7)
cool.io (1.8.1)
csv (default: 3.2.6)
date (default: 3.3.3)
debug (1.7.1)
delegate (default: 0.3.0)
did_you_mean (default: 1.6.3)
digest (default: 3.1.1)
digest-crc (0.6.5)
digest-murmurhash (1.1.1)
drb (default: 2.1.1)
elastic-transport (8.3.5)
elasticsearch (8.8.0)
elasticsearch-api (8.8.0)
english (default: 0.7.2)
erb (default: 4.0.2)
error_highlight (default: 0.5.1)
etc (default: 1.4.2)
excon (0.104.0)
faraday (2.7.12)
faraday-excon (2.1.0)
faraday-net_http (3.0.2)
faraday_middleware-aws-sigv4 (1.0.1)
fcntl (default: 1.0.2)
ffi (1.15.5)
fiber-annotation (0.2.0)
fiber-local (1.0.0)
fiddle (default: 1.1.1)
fileutils (1.7.3, default: 1.7.0)
find (default: 0.1.1)
fluent-config-regexp-type (1.0.0)
fluent-diagtool (1.0.5)
fluent-logger (0.9.1)
fluent-plugin-calyptia-monitoring (0.1.3)
fluent-plugin-elasticsearch (5.4.4)
fluent-plugin-flowcounter-simple (0.1.0)
fluent-plugin-kafka (0.19.3)
fluent-plugin-metrics-cmetrics (0.1.2)
fluent-plugin-opensearch (1.1.4)
fluent-plugin-prometheus (2.1.0)
fluent-plugin-prometheus_pushgateway (0.1.1)
fluent-plugin-record-modifier (2.1.1)
fluent-plugin-rewrite-tag-filter (2.4.0)
fluent-plugin-s3 (1.7.2)
fluent-plugin-sd-dns (0.1.0)
fluent-plugin-systemd (1.1.0)
fluent-plugin-td (1.2.0)
fluent-plugin-utmpx (0.5.0)
fluent-plugin-webhdfs (1.5.0)
fluentd (1.16.9)
forwardable (default: 1.3.3)
getoptlong (default: 0.2.0)
hirb (0.7.3)
http_parser.rb (0.8.0)
httpclient (2.8.3)
io-console (default: 0.6.0)
io-nonblock (default: 0.2.0)
io-wait (default: 0.3.0)
ipaddr (default: 1.2.5)
irb (default: 1.6.2)
jmespath (1.6.2)
json (2.7.6, default: 2.6.3)
linux-utmpx (0.3.0)
logger (1.6.6, default: 1.5.3)
ltsv (0.1.2)
matrix (0.4.2)
mini_portile2 (2.8.2)
minitest (5.25.1)
msgpack (1.7.5)
multi_json (1.15.0)
mutex_m (default: 0.1.2)
net-ftp (0.2.1)
net-http (default: 0.4.1)
net-imap (0.3.8)
net-pop (0.1.2)
net-protocol (default: 0.2.1)
net-smtp (0.3.4)
nio4r (2.6.1)
nkf (default: 0.1.2)
observer (default: 0.1.1)
oj (3.16.5)
open-uri (default: 0.3.0)
open3 (default: 0.1.2)
opensearch-api (2.2.0)
opensearch-ruby (2.1.0)
opensearch-transport (2.1.0)
openssl (3.3.0, default: 3.1.0)
optparse (default: 0.3.1)
ostruct (default: 0.5.5, 0.3.3)
parallel (1.20.1)
pathname (default: 0.2.1)
power_assert (2.0.3)
pp (default: 0.4.0)
prettyprint (default: 0.1.1)
prime (0.1.2)
prometheus-client (2.1.0)
protocol-hpack (1.4.3)
protocol-http (0.25.0)
protocol-http1 (0.16.1)
protocol-http2 (0.15.1)
pstore (default: 0.1.2)
psych (default: 5.0.1)
public_suffix (5.0.5)
racc (default: 1.6.2)
rake (13.1.0, 13.0.6)
rbs (2.8.2)
rdkafka (0.12.0)
rdoc (default: 6.5.1.1)
readline (default: 0.0.3)
readline-ext (default: 0.1.5)
reline (default: 0.3.2)
resolv (default: 0.2.2)
resolv-replace (default: 0.1.1)
rexml (3.3.9, 3.2.9)
rinda (default: 0.1.1)
rss (0.3.1)
ruby-kafka (1.5.0)
ruby-progressbar (1.13.0)
ruby2_keywords (default: 0.0.5)
rubyzip (1.3.0)
securerandom (default: 0.2.2)
serverengine (2.3.2)
set (default: 1.0.3)
shellwords (default: 0.1.0)
sigdump (0.2.5)
singleton (default: 0.1.1)
stringio (default: 3.0.4)
strptime (0.2.5)
strscan (default: 3.0.7, 1.0.3)
syntax_suggest (default: 1.1.0)
syslog (default: 0.1.1)
systemd-journal (2.0.0)
td (0.17.1)
td-client (1.0.8)
td-logger (0.3.28)
tempfile (default: 0.1.3)
test-unit (3.5.7)
time (default: 0.2.2)
timeout (default: 0.3.1)
timers (4.3.5)
tmpdir (default: 0.1.3)
traces (0.11.1)
tsort (default: 0.1.1)
typeprof (0.21.3)
tzinfo (2.0.6)
tzinfo-data (1.2025.2)
un (default: 0.2.1)
uri (default: 0.12.4)
weakref (default: 0.1.2)
webhdfs (0.10.2)
webrick (1.8.2)
yajl-ruby (1.4.3)
yaml (default: 0.2.1)
zip-zip (0.3)
zlib (default: 3.0.0)
fluent-package 6.0.0 LTS版(fluentd 1.19.0)
fluent.service
(rootで実行)
(User/Groupのみrootに編集)
# cat /usr/lib/systemd/system/fluentd.service
[Unit]
Description=fluentd: All in one package of Fluentd
Documentation=https://docs.fluentd.org/
After=network-online.target
Wants=network-online.target
[Service]
User=root
Group=root
LimitNOFILE=65536
Environment=LD_PRELOAD=/opt/fluent/lib/libjemalloc.so
Environment=FLUENT_CONF=/etc/fluent/fluentd.conf
Environment=FLUENT_CONF_INCLUDE_DIR=/etc/fluent/conf.d
Environment=FLUENT_PLUGIN=/etc/fluent/plugin
Environment=FLUENT_SOCKET=/var/run/fluent/fluentd.sock
Environment=FLUENT_PACKAGE_LOG_FILE=/var/log/fluent/fluentd.log
EnvironmentFile=-/etc/sysconfig/fluentd
PIDFile=/var/run/fluent/fluentd.pid
RuntimeDirectory=fluent
Type=forking
# XXX: Fix fluentd executables path
ExecStart=/opt/fluent/bin/fluentd --log $FLUENT_PACKAGE_LOG_FILE --daemon /var/run/fluent/fluentd.pid $FLUENT_PACKAGE_OPTIONS
ExecStop=/bin/kill -TERM ${MAINPID}
ExecReload=/bin/kill -HUP ${MAINPID}
Restart=always
TimeoutStopSec=120
[Install]
WantedBy=multi-user.target
Alias=td-agent.service
fluent-gem list
(rootで実行)
# fluent-gem list
*** LOCAL GEMS ***
abbrev (0.1.2)
addressable (2.8.7)
async (2.24.0)
async-http (0.89.0)
async-pool (0.11.0)
aws-eventstream (1.4.0)
aws-partitions (1.1150.0)
aws-sdk-core (3.230.0)
aws-sdk-kms (1.110.0)
aws-sdk-s3 (1.197.0)
aws-sdk-sqs (1.101.0)
aws-sigv4 (1.12.1)
base64 (0.3.0, 0.2.0)
benchmark (default: 0.4.0)
bigdecimal (3.2.2, 3.1.8)
bindata (2.4.15)
bundler (default: 2.6.9, 2.3.27)
capng_c (0.2.3)
cgi (default: 0.4.2)
cmetrics (0.3.3)
concurrent-ruby (1.3.5)
console (1.33.0)
cool.io (1.9.0)
csv (3.3.5, 3.3.2)
date (default: 3.4.1)
debug (1.11.0)
delegate (default: 0.4.0)
did_you_mean (default: 2.0.0)
digest (default: 3.2.0)
digest-crc (0.7.0)
digest-murmurhash (1.1.1)
drb (2.2.3, 2.2.1)
elastic-transport (8.4.0)
elasticsearch (8.19.0)
elasticsearch-api (8.19.0)
english (default: 0.8.0)
erb (default: 4.0.4)
error_highlight (default: 0.7.0)
etc (default: 1.4.6)
excon (1.3.0)
faraday (2.13.4)
faraday-excon (2.3.0)
faraday-net_http (3.4.1)
faraday_middleware-aws-sigv4 (1.0.1)
fcntl (default: 1.2.0)
ffi (1.17.0)
fiber-annotation (0.2.0)
fiber-local (1.1.0)
fiber-storage (1.0.1)
fiddle (default: 1.1.6)
fileutils (default: 1.7.3)
find (default: 0.2.0)
fluent-config-regexp-type (1.0.0)
fluent-diagtool (1.0.5)
fluent-logger (0.9.1)
fluent-plugin-elasticsearch (6.0.0)
fluent-plugin-flowcounter-simple (0.1.0)
fluent-plugin-fluent-package-update-notifier (0.2.3)
fluent-plugin-kafka (0.19.5)
fluent-plugin-metrics-cmetrics (0.1.2)
fluent-plugin-obsolete-plugins (0.2.2)
fluent-plugin-opensearch (1.1.5)
fluent-plugin-opentelemetry (0.3.0)
fluent-plugin-prometheus (2.2.1)
fluent-plugin-prometheus_pushgateway (0.2.1)
fluent-plugin-record-modifier (2.2.1)
fluent-plugin-rewrite-tag-filter (2.4.0)
fluent-plugin-s3 (1.8.3)
fluent-plugin-sd-dns (0.1.0)
fluent-plugin-systemd (1.1.1)
fluent-plugin-td (1.2.0)
fluent-plugin-utmpx (0.5.0)
fluent-plugin-webhdfs (1.6.0)
fluentd (1.19.0)
forwardable (default: 1.3.3)
getoptlong (0.2.1)
google-protobuf (4.32.0 x86_64-linux-gnu)
hirb (0.7.3)
http_parser.rb (0.8.0)
httpclient (2.9.0)
io-console (default: 0.8.1)
io-endpoint (0.15.2)
io-event (1.10.2)
io-nonblock (default: 0.3.2)
io-stream (0.7.0)
io-wait (default: 0.3.2)
ipaddr (default: 1.2.7)
irb (default: 1.14.3)
jmespath (1.6.2)
json (2.13.2, default: 2.9.1)
linux-utmpx (0.3.0)
logger (1.7.0, default: 1.6.4)
ltsv (0.1.2)
matrix (0.4.2)
metrics (0.14.0)
mini_portile2 (2.8.9)
minitest (5.25.4)
msgpack (1.8.0)
multi_json (1.17.0)
mutex_m (0.3.0)
net-ftp (0.3.8)
net-http (default: 0.6.0)
net-imap (0.5.8)
net-pop (0.1.2)
net-protocol (default: 0.2.2)
net-scp (4.1.0)
net-smtp (0.5.1)
net-ssh (7.3.0)
net-telnet (0.2.0)
nkf (0.2.0)
observer (0.1.2)
oj (3.16.11)
open-uri (default: 0.5.0)
open3 (default: 0.2.1)
opensearch-ruby (3.4.0)
openssl (default: 3.3.0)
optparse (default: 0.6.0)
ostruct (0.6.3, default: 0.6.1)
parallel (1.20.1)
pathname (default: 0.4.0)
power_assert (2.0.5)
pp (default: 0.6.2)
prettyprint (default: 0.2.0)
prime (0.1.3)
prism (default: 1.2.0)
prometheus-client (4.2.5)
protocol-hpack (1.5.1)
protocol-http (0.53.0)
protocol-http1 (0.35.0)
protocol-http2 (0.22.1)
pstore (default: 0.1.4)
psych (default: 5.2.2)
public_suffix (6.0.2)
racc (1.8.1)
rake (13.3.0, 13.2.1)
rbs (3.8.0)
rdkafka (0.21.0)
rdoc (default: 6.14.0)
readline (default: 0.0.4)
reline (default: 0.6.0)
repl_type_completor (0.1.9)
resolv (default: 0.6.2)
resolv-replace (0.1.1)
rexml (3.4.1, 3.4.0)
rinda (0.2.0)
rss (0.3.1)
ruby-kafka (1.5.0)
ruby-progressbar (1.13.0)
ruby2_keywords (default: 0.0.5)
rubyzip (1.3.0)
securerandom (default: 0.4.1)
serverengine (2.4.0)
set (default: 1.1.1)
sfl (2.3)
shellwords (default: 0.2.2)
sigdump (0.2.5)
singleton (default: 0.3.0)
specinfra (2.94.1)
stringio (default: 3.1.2)
strptime (0.2.5)
strscan (default: 3.1.2)
syntax_suggest (default: 2.0.2)
syslog (0.2.0)
systemd-journal (2.1.1)
td (0.19.0)
td-client (3.0.0)
td-logger (0.5.0)
tempfile (default: 0.3.1)
test-unit (3.6.7)
time (default: 0.4.1)
timeout (default: 0.4.3)
tmpdir (default: 0.3.1)
traces (0.18.1)
tsort (default: 0.2.0)
typeprof (0.30.1)
tzinfo (2.0.6)
tzinfo-data (1.2025.2)
un (default: 0.3.0)
uri (default: 1.0.3)
weakref (default: 0.1.3)
webhdfs (0.11.0)
webrick (1.9.1)
yajl-ruby (1.4.3)
yaml (default: 0.4.0)
zip-zip (0.3)
zlib (default: 3.2.1)
zstd-ruby (1.5.7.0)