ruby 如何在fluentd config中使用环境变量?

pbpqsu0x  于 2022-11-22  发布在  Ruby
关注(0)|答案(2)|浏览(169)

我在td-agent配置中使用env时遇到问题,我尝试过:

<source>
  @type tail
  path /home/td-agent/test.txt
  tag "#{ENV['WEBTEST']}"
  pos_file /var/log/td-agent/td-agent-test.pos
  @include /etc/td-agent/web_parse_regex.conf
</source>

/etc/系统配置/td-agent:

export WEBTEST="webtest"

当我启动td-agent并检查td-agent.log时,标记为空

2020-06-09 15:40:20 +0900 [info]: using configuration file: <ROOT>
  <source>
    @type tail
    path "/home/td-agent/test.txt"
    tag ""
    pos_file "/var/log/td-agent/td-agent-test.pos"
    .....

+我正在使用centos

pqwbnv8z

pqwbnv8z1#

您需要确保/etc/sysconfig/td-agent具有执行权限

chmod a+x /etc/sysconfig/td-agen

并确保init脚本正在执行这些文件,下面的行需要在文件/etc/init.d/td-agent

TD_AGENT_DEFAULT=/etc/sysconfig/td-agent
# Read configuration variable file if it is present
if [ -f "${TD_AGENT_DEFAULT}" ]; then
  . "${TD_AGENT_DEFAULT}"
fi
ki1q1bka

ki1q1bka2#

找不到从conf文件内部设置env vars的方法,但可以在system块中用ruby设置变量值,并在conf文件中重用它们。

<system>
  "#{MONGO_CONNECTION_STRING='mongodb://localhost:27017/test'}"
</system>

<match>
  @type mongo
  connection_string "#{MONGO_CONNECTION_STRING}"
  # database test
  collection fluentd
</match>

相关问题