EDIT:
Tutaj jest dużo lepszym rozwiązaniem:
Jeśli zdasz "--use-V1-config" opcji do Fluentd, jest to możliwe z „# {ENV [ 'env_var_name' ]”tak:
<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>
Stary, odpowiedź kludgey jest tutaj.
- Install
fluent-plugin-record-reformer
i fluent-plugin-forest
- zaktualizować swój config następująco.
<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>
W szczególności nie należy używać <match **>
tam. To złapie wszystkie zdarzenia i doprowadzi do zachowań trudnych do debugowania.
Z https://groups.google.com/forum/#!topic/fluentd/z-1vIsQ4kHU zachowaj zmienne środowiskowe dla --use-v1-config w '/ etc/default/td-agent 'like this:' export FOO = "foobar" ' – arun
/etc/default/td-agent jest dla rodziny debian. Dla rodziny redhat użyj zamiast tego/etc/sysconfig/td-agent. – sMiLo