Docker GELF日志驱动程序允许env
和labels
log-opts:
gelf日志记录驱动程序支持标签和env选项。它会在额外字段上添加额外的键,前缀为下划线(_)(ref)
我想在弹性搜索输出的索引名称中使用它,但我无法弄清楚如何访问这些值或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'
我想使用我在logstash配置中传递的env
值:
input {
gelf { }
}
output {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "logstash-%{env-value-here}-%{tag}-%{+YYYY.MM.dd}"
}
}
关于使用Graylog的env /标签似乎还有另外一个问题:Docker GELF driver env option
答案 0 :(得分:9)
在阅读添加此选项的PR之后,我意识到我误解了它应该如何工作。
--log-opt labels=a,b,c
(与env相同)定义要包含在GELF事件中的键。这些值实际上分别从docker标签和环境变量中检索。
--log-opt labels=foo --label foo=bar
将在活动中加入foo: bar
。