You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fluentd教程:如何在record配置中使用环境变量

正确引用容器环境变量到Fluentd配置的方法

你当前配置里用#{ENV['POD_NAME']}的写法不符合Fluentd的变量引用规则,可根据你的Fluentd版本选择以下两种正确方案:

方案一:使用ERB语法(兼容所有Fluentd版本)

Fluentd支持通过ERB解析配置文件来读取环境变量,操作步骤如下:

  1. 修改配置中的变量引用方式,将#{ENV['POD_NAME']}替换为<%= ENV['POD_NAME'] %>,同时保证JSON格式的引号配对正确:
    <parse>
         @type openmetrics
         <record>
           namespace ns1
           resourceGroup rg1
           dimensions {"a": "1234", "b": "xyz", "node": "<%= ENV['POD_NAME'] %>"}
        </record> 
    </parse>
    
  2. 让Fluentd解析ERB内容:
    • 要么将配置文件后缀改为.conf.erb,Fluentd启动时会自动识别并解析;
    • 要么通过命令行预处理后启动:erb your-config.conf | fluentd -c -

方案二:使用Fluentd内置环境变量占位符(Fluentd v1.10+支持)

如果你的Fluentd版本是v1.10或更高,可直接用${变量名}的格式引用环境变量,无需额外的ERB解析步骤,配置更简洁:

<parse>
     @type openmetrics
     <record>
       namespace ns1
       resourceGroup rg1
       dimensions {"a": "1234", "b": "xyz", "node": "${POD_NAME}"}
    </record> 
</parse>

注意事项

  • 无论采用哪种方案,都要确保dimensions后的JSON格式完全正确,引号无遗漏或错位;
  • 确认容器的POD_NAME环境变量已正确注入,且Fluentd进程有权限读取该变量。

内容的提问来源于stack exchange,提问作者Marcelo BD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:05:07