【发布时间】:2023-04-08 13:43:01
【问题描述】:
我想使用 elk 堆栈(Elastic search、kibana、logstash)来记录使用在 docker 中运行的多个微服务(目前在 swram 中)构建的应用程序。
我们想记录来自 stdout / stderr 的消息。我们的系统应该为每个日志条目添加 serviceName、ContainerID、时间戳(如果可能的话,可以自动和精确地完成)、主机名……而不需要开发人员做任何工作。
Docker 支持多个logging drivers,例如 Json、syslog 和 Gelf(仅 UDP),可以直接发送到 logstash 或通过发送系统(如 logspout 或其他)。
我的问题:日志记录驱动程序和日志传送选择如何影响日志? docker 是否总是包含以不同方式打包的相同数据(如容器 ID、时间戳、实际日志消息),还是它实际上会影响内容?
我的同事使用 logspout 从标准的 docker json 日志中收集日志。如果我使用 --log-driver=gelf(假设没有包丢失),我会在 logstash 中获得完全相同的信息吗?
【问题讨论】:
标签: logging docker elastic-stack