gpt4 book ai didi

java - Docker容器无法将日志发送到docker ELK堆栈

转载 作者:行者123 更新时间:2023-11-30 02:48:40 25 4
gpt4 key购买 nike

我部署了 ELK 堆栈和 Spring Boot 应用程序的另一个独立的 docker 容器。

在java应用程序中,我使用LogstashSocketAppender将日志发送到logstash。

  1. 如果 Java 应用程序在没有 Docker 的情况下独立运行,则它可以正常工作。
  2. 但是当它作为 Docker 容器运行时,logstash 无法接收日志。

谁能帮我解答一下吗?

部分logstash配置:

input {
udp {
port => 5000
type => syslog
codec => json
}
}

dcoker port:

logstash$ 5000/udp -> 0.0.0.0:5000
springboot$ 8088/tcp -> 0.0.0.0:32981
elasticsearch$ 9200/tcp -> 0.0.0.0:9200 9300/tcp -> 0.0.0.0:9300
kibana$ 5601/tcp -> 0.0.0.0:5601

最佳答案

您可以通过如下方式配置 Logstash 来获取容器日志,并通过将默认日志驱动程序更改为 syslog 来运行要查看其日志的容器。

#logstash.conf

input {
tcp {
port => 5000
}
}

output {
stdout {}
}

以下容器的日志将到达logstash,并且可以通过stdout查看。

docker run --log-driver=syslog --log-opt syslog-address=tcp://<logstash-system-ip>:5000 <image>

关于java - Docker容器无法将日志发送到docker ELK堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39362983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com