docker - 在Logstash中使用docker GELF驱动程序env/label

标签 docker logstash

Docker GELF日志驱动程序允许envlabels log-opts:

The labels and env options are supported by the gelf logging driver. It adds additional key on the extra fields, prefixed by an underscore (_) (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'

我想使用我在logstash配置中传递的env值,例如:
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 driver env option

最佳答案

阅读添加了此选项的PR之后,我意识到我误解了它的工作原理。
--log-opt labels=a,b,c(与env相同)定义要包含在GELF事件中的键。实际上分别从docker标签和环境变量中检索值。
--log-opt labels=foo --label foo=bar将在事件中包括foo: bar

关于docker - 在Logstash中使用docker GELF驱动程序env/label,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40179691/

相关文章:

docker - 如何在 Docker 窗口中打开 paraView

java - 如何通知 Elasticsearch 客户端有新的索引文档?

elasticsearch - 集中式日志服务器/创建类似logstash- *的索引

elasticsearch - Logstash插件Elasticsearch:在Logstash中应用执行搜索

rabbitmq - Logstash 与rabbitmq 集群

php - 在 Docker 上加载自定义 php.ini(镜像 : php:8. 1.2-apache)

mysql - 在docker compose中flask无法连接mysql

docker - 有没有办法更新在Kubernetes中运行的Jenkins?

curl: (7) 无法连接到 localhost 端口 8090:连接被拒绝

elasticsearch - Logstash与模式不匹配