Можете ли вы использовать переменные среды в файле конфигурации для Fluent

Мне было интересно, как использовать env vars в конфигурации Fluentd, я пробовал:

<match **>
type elasticsearch
logstash_format true
logstash_prefix $ENV_VAR
host ***
port ***
include_tag_key true
tag_key _key
</match>

но это не работает, есть идеи?


person Daniel Conde Garcia    schedule 01.12.2014    source источник


Ответы (1)


РЕДАКТИРОВАТЬ:

Вот гораздо лучшее решение:

Если вы передадите параметр «--use-v1-config» в Fluentd, это возможно с «#{ENV['env_var_name']» следующим образом:

<match foobar.**> # ENV["FOO"] is foobar
  type elasticsearch
  logstash_prefix "#{ENV['FOO']}"
  logstash_format true
  include_tag_key true
  tag_key _key
  host ****
  port ****
</match>

Старый, неуклюжий ответ здесь.

  1. Установите fluent-plugin-record-reformer и fluent-plugin-forest
  2. Обновите конфигурацию следующим образом.

<match hello.world>
  type record_reformer
  tag ${ENV["FOO"]}.${tag_prefix[-1]} # adding the env variable as a tag prefix
</match>

<match foobar.**> # ENV["FOO"] is foobar
  type forest
  subtype elasticsearch
  <template>
    logstash_prefix ${tag_parts[0]}
    logstash_format true
    include_tag_key true
    tag_key _key
    host ****
    port ****
  </template>
</match>

В частности, НЕ используйте там <match **>. Это перехватит все события и приведет к поведению, которое трудно отладить.

person Kiyoto Tamura    schedule 02.12.2014
comment
Из groups.google.com/forum/#!topic/fluentd/z -1vIsQ4kHU вам нужно сохранить переменные среды для --use-v1-config в /etc/default/td-agent следующим образом: export FOO="foobar" - person arun; 21.04.2015
comment
/etc/default/td-agent предназначен для семейства Debian. Для семейства RedHat вместо этого используйте /etc/sysconfig/td-agent. - person sMiLo; 24.11.2016
comment
--use-v1-config теперь является настройкой по умолчанию, поэтому вам не нужно указывать ее вручную. - person Yep_It's_Me; 13.11.2018
comment
Нашел это сегодня. Часто задаваемые вопросы по Fluentd и найдите Как использовать переменные среды - person D.Fitz; 20.03.2020