Java Docker容器无法将日志发送到Docker ELK堆栈
我部署了ELK stack和另一个独立的spring boot应用程序docker容器 在java应用程序中,我使用LogstashSocketAppender将日志发送到logstashJava Docker容器无法将日志发送到Docker ELK堆栈,java,docker,spring-boot,logstash,elastic-stack,Java,Docker,Spring Boot,Logstash,Elastic Stack,我部署了ELK stack和另一个独立的spring boot应用程序docker容器 在java应用程序中,我使用LogstashSocketAppender将日志发送到logstash 如果java应用程序在没有docker的情况下独立运行,那么它可以正常工作 但是当它作为docker容器运行时,logstash无法接收日志 有人能帮我弄清楚吗 日志存储配置的一部分: input { udp { port => 5000 type => s
input {
udp {
port => 5000
type => syslog
codec => json
}
}
dcoker端口:
您可以通过如下配置Logstash来获取容器日志,并通过将默认日志驱动程序更改为syslog来运行要查看其日志的容器
#logstash.conf
input {
tcp {
port => 5000
}
}
output {
stdout {}
}
docker run --log-driver=syslog --log-opt syslog-address=tcp://<logstash-system-ip>:5000 <image>
下面容器的日志将到达日志库,并可通过stdout查看
#logstash.conf
input {
tcp {
port => 5000
}
}
output {
stdout {}
}
docker run --log-driver=syslog --log-opt syslog-address=tcp://<logstash-system-ip>:5000 <image>
docker-run--log-driver=syslog--log-opt-syslog-address=tcp://:5000
postdocker端口containers@user2915097发布的端口超出了我的猜测:docker容器有自己的网络接口,比如172.160.0.10,所以docker容器将日志发送到自己的5000端口。我建议研究如何发送到外部ip,即logstash的ip。让我猜一下:给定的主机名是localhost
?@nurgasemetey我已经在LogstashSocketAppender中配置了logstash ip,但仍然不起作用