繁体   English   中英

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

[英]Docker container cannot send log to docker ELK stack

我部署了ELK堆栈和Spring Boot应用程序的另一个分隔的Docker容器。

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

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

谁能帮我解决这个问题?

logstash配置的一部分:

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

dcoker端口:

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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM