Можно ли использовать переменные окружения в файле конфигурации для fluentd
Мне было интересно, как использовать env vars в конфигурации Fluentd, я попробовал:
<match **>
type elasticsearch
logstash_format true
logstash_prefix $ENV_VAR
host ***
port ***
include_tag_key true
tag_key _key
</match>
Но это не работает, есть идея?
1 ответ:
Правка:
Вот гораздо лучшее решение:
, Если вы проходите "- использовать-В1-конфигурации" возможность 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>Старый, kludgey ответ здесь.
- установить
fluent-plugin-record-reformerиfluent-plugin-forest- обновите конфигурацию следующим образом.
<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 **>там. Это будет ловить все события и приведет к поведению, которое трудно отладить.
Comments