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

2024-04-04

Docker GELF 日志驱动程序允许env and labels日志选项:

gelf 日志记录驱动程序支持 lab​​els 和 env 选项。它添加了额外的密钥extra字段,以下划线 (_) 为前缀(ref https://docs.docker.com/engine/admin/logging/overview/#/gelf-options)

我想在我的索引名称中使用它来进行elasticsearch输出,但我不知道如何访问这些值或说extra fields.

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

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}"
  }
}

似乎还有另一个关于 Graylog 的 env/labels 的问题:Docker GELF 驱动程序环境选项 https://stackoverflow.com/questions/40030555/docker-gelf-driver-env-option


阅读添加此选项的 PR 后,我意识到我误解了它的工作原理。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在logstash中使用docker GELF驱动程序env/labels 的相关文章

随机推荐