2014-12-01 6 views

Odpowiedz

9

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.

  1. Install fluent-plugin-record-reformer i fluent-plugin-forest
  2. 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.

+0

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

+0

/etc/default/td-agent jest dla rodziny debian. Dla rodziny redhat użyj zamiast tego/etc/sysconfig/td-agent. – sMiLo