在logstash中使用docker GELF驱动程序env /标签

Docker GELF日志驱动程序允许envlabelslogin选项:

gelflogging驱动程序支持标签和env选项。 它在额外的字段上添加额外的键,以下划线(_)( 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' 

我想使用我在logstashconfiguration中传递的env值,例如:

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

似乎有关于使用Graylog: Docker GELF驱动程序env选项的 env / labels的另一个问题

在阅读了增加了这个选项的公关之后,我意识到我误解了它应该如何工作。

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

--log-opt labels=foo --label foo=bar会在事件中包含foo: bar