2016-10-21 14 views
3

泊坞GELF日志驱动程序允许envlabels数选择采用:使用泊坞窗GELF司机ENV /在logstash标签

标签和env选项由GELF日志驱动程序支持。它增加了对额外领域的附加键,用下划线(_)前缀(ref

我想在我的索引名用这个elasticsearch输出,但我无法弄清楚如何访问这些值或称extra字段。

假设我有运行的容器这些选项,

docker run -it \ 
    --log-driver gelf \ 
    --log-opt gelf-address=udp://127.0.0.1:12201 \ 
    --log-opt tag=some-app \ 
    --log-opt env=staging \ 
    --log-opt labels=staging \ 
    ubuntu:16.04 /bin/bash -c 'echo Hello World' 

我想用env价值,我在我的logstash配置通过这样:

input { 
    gelf { } 
} 

output { 
    elasticsearch { 
    hosts => ["http://127.0.0.1:9200"] 
    index => "logstash-%{env-value-here}-%{tag}-%{+YYYY.MM.dd}" 
    } 
} 

似乎有是另一个关于env /与格列洛格标签的问题:Docker GELF driver env option

回答

7

在阅读PR添加此选项后,我意识到我误会理解它应该如何工作。

--log-opt labels=a,b,c(与env相同)定义要包含在GELF事件中的键。这些值实际上分别从docker标签和环境变量中检索。

--log-opt labels=foo --label foo=bar将在活动中包含foo: bar

+0

非常感谢。这完美地工作,比将多个东西塞进标签要好得多。 Docker文档在这里真的不太清楚 – herm

+0

感谢您的启发! Docker的配置在这里非常具有误导性! – derFunk