我可以有选择地禁用单个fluentd插件而不从配置文件中删除它们吗?

我可以有选择地禁用单个fluentd插件而不从配置文件中删除它们吗?,fluentd,Fluentd,我有一个docker compose设置,容器登录到fluentd。为了支持不同的演示环境,我将事件输出到多个目的地(ElasticSearch、Splunk、Syslog等) 我想维护一个配置文件,但禁用不需要的输出插件。如果我有4个潜在的输出目标,我必须维护10个不同的配置文件,以支持所有可能的不同组合 我知道插件可以使用环境变量作为配置参数,这将是理想的。然而,我看不到在底层插件架构中有一个通用的“enabled”或“disable”参数 有没有办法从外部禁用插件?还是必须从外部脚本动态构

我有一个docker compose设置,容器登录到fluentd。为了支持不同的演示环境,我将事件输出到多个目的地(ElasticSearch、Splunk、Syslog等)

我想维护一个配置文件,但禁用不需要的输出插件。如果我有4个潜在的输出目标,我必须维护10个不同的配置文件,以支持所有可能的不同组合

我知道插件可以使用环境变量作为配置参数,这将是理想的。然而,我看不到在底层插件架构中有一个通用的“enabled”或“disable”参数


有没有办法从外部禁用插件?还是必须从外部脚本动态构建配置文件?

我通过外部指定插件类型来使用环境变量完成此操作:

<label @SPLUNK>
  <match docker.**>
    @type "#{ENV['FLUENTD_SPLUNK_PLUGIN']}"
    ...

@键入“#{ENV['FLUENTD_SPLUNK_PLUGIN']}”
...

在外部,我根据是否应该启用输出设置FLUENTD\u SPLUNK\u PLUGIN=SPLUNK\u hec或FLUENTD\u SPLUNK\u PLUGIN=null。到目前为止,唯一的缺点是“null”输出插件对配置块中定义的参数发出了一系列警告。

不确定fluentd核心插件是否存在类似警告。你已经提到的另一个选择是前进的道路。您可以将配置划分为多个文件,例如,然后在entrypoint脚本中使用环境变量,例如。