【发布时间】:2018-10-29 15:47:52
【问题描述】:
我可以在 Docker 文档中看到: https://docs.docker.com/config/containers/logging/gelf/
在 GELF 中,每条日志消息都是一个包含以下字段的字典: ... 您自己配置的任何自定义字段
是不是说这个驱动支持自定义字段?
我想为每条 GELF 消息添加自定义字段环境。 我该怎么做?
【问题讨论】:
我可以在 Docker 文档中看到: https://docs.docker.com/config/containers/logging/gelf/
在 GELF 中,每条日志消息都是一个包含以下字段的字典: ... 您自己配置的任何自定义字段
是不是说这个驱动支持自定义字段?
我想为每条 GELF 消息添加自定义字段环境。 我该怎么做?
【问题讨论】:
文档确实不是很清楚,但正如here 解释的那样,有一种方法可以在您的 GELF 消息中添加额外的字段,这对我有用:
您需要通过 --log-opt env=... 选项提供要添加的额外字段的名称,然后通过您的 docker env 提供字段值,如下所示:
docker run --log-driver gelf --log-opt env=mycustomfield --log-opt gelf-address=udp://<your-domain>:12201 --env mycustomfield=mycustomvalue alpine echo hello world
生成的日志消息将包含额外字段 "mycustomfield": "mycustomvalue"。
【讨论】:
您是否将 GELF 消息发送到 Docker 容器中的 Graylog?如果是这样,Graylog GELF 格式确实支持自定义字段。要提供自定义字段,只需在字段名称前添加下划线,如此处所示。只要您还提供了必填字段(请参阅下面的文档参考),那么消息将被成功解析。
请参阅GELF section in the Graylog docs 了解更多信息。
【讨论】: