[QA (Japanese)] Fluentd 1.19(Fluent Package 6.0.0)以降はconf.dディレクトリ配下はユーザ側でファイルを配置しないことが推奨ですか。 #5075
-
        やりたいこと聞きたいことFluentd 1.19から conf.dが暗黙的に読み込まれるようになりましたがこの、conf.d配下の扱いはFluentd側管理/使用するディレクトリと考えて良いでしょうか。 原則conf.d配下はシステム側で管理/使用する領域となるのであれば、そこにユーザ側ではユーザ側で作成した設定ファイルを配置せず、conf.dを既に作成して利用しているユーザは、別のディレクトリに移すなど、conf.dを使用しない構成に変更することが推奨されますか。 背景Fluentd 1.19(Fluent Package 6.0.0)にアップデートを実施したところ、"plugin already use same buffer path"エラーでFluentdの起動に失敗しました。 原因としては conf.dを元々作成して、配下のファイルをincludeしていたので、Fluentd 1.19のconf.d配下の暗黙的読み込みによって二重に設定ファイルを読み込んでしまい、同一のバッファファイルを指定する設定が2つ存在したために、発生したエラーでした。 対処としては暫定的に、元々 conf.dに配置していたファイルを 新規に作成した local.conf.dに移して、そちらから includeするように変更しました。 設定した内容# エラー発生時の状況と対処について記載(解消済み)
### アップデート前の構成/設定ファイル(Fluentd起動成功)
fluent-package 5.0.7 LTS版(fluentd 1.16.9) 
Fluentdの起動、ログ収集に問題なし
ファイル、ディレクトリの構成は以下です。
# 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/syslog.confをinclude
# cat syslog.conf
<source>
  @type tail
  path /var/log/messages
  pos_file /var/log/fluent/syslog_messages.pos
  format syslog
  tag syslog.messages
</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>アップデート直後の構成/設定ファイル(Fluentd起動失敗)fluent-package 6.0.0 LTS版(fluentd 1.19.0) Fluentdの起動に以下エラーで失敗(fluentd.log) ファイル、ディレクトリの構成は以下です。 アップデート後に対処を実施した後の構成/設定ファイル(Fluentd起動成功)fluent-package 6.0.0 LTS版(fluentd 1.19.0) ユーザ用のディレクトリをlocal.conf.dを作成して、syslog.confを移動させた。 環境について- Fluentd version:fluentd 1.19.0
- Fluent Package version: fluent-package 6.0.0
- Operating system: Oracle Linux Server release 9.6
- Kernel version:6.12.0-102.36.5.2.el9uek.x86_64 | 
  
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
| 
         @keyaki80 
 いえ、ユーザー側でも利用していただけるように想定しています。 ただし、ここに置いた設定を 
 今後のバージョンで抜本的な改善を考えたいと思いますが、現時点での対処方法としては次があります。 
 例: <system>
  config_include_dir ""
</system>これをすると、fluent-packageがデフォルトで追加動作させたいプラグインが動作しなくなりますが、 
 もし  | 
  
Beta Was this translation helpful? Give feedback.
-
| 
         https://cloudii.jp/news/blog/oracle-cloud/fluentd-meets-oci-v6update/ を拝見しました。  | 
  
Beta Was this translation helpful? Give feedback.
@keyaki80
ご報告ありがとうございます!
いえ、ユーザー側でも利用していただけるように想定しています。
@includeを使わずに自動で追加読み込みさせたい、というケースで利用できます。ただし、ここに置いた設定を
@includeしてしまうと、重複して読み込むことになってしまいます。今回のように、既にこのパス配下に設定を置かれていて
@includeされている、というケースは想定外でした。今後のバージョンで抜本的な改善を考えたいと思いますが、現時点での対処方法としては次があります。
/etc/fluent/conf.d/配下の自動読込を無効化する例:
これをすると、fluent-packageがデフォルトで追加動作させたいプラグインが動作しなくなりますが、
今のところ次のプラグインが動作しなくなるだけなので、今までと同じ使い方をするには問題ありません。
fluent-pl…