【发布时间】:2016-09-07 06:49:22
【问题描述】:
我部署了 ELK 堆栈和另一个独立的 spring boot 应用程序的 docker 容器。
在 java 应用程序中,我使用 LogstashSocketAppender 将日志发送到 logstash。
- 如果 java 应用程序在没有 docker 的情况下独立运行,它可以正常工作。
- 但是当它作为 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
【问题讨论】:
-
发布所有容器的
docker port -
@user2915097 上面发布的端口
-
我的猜测:docker 容器有自己的网络接口,比如 172.160.0.10,所以 docker 容器将日志发送到自己的 5000 端口。我会建议研究如何发送到外部ip,即logstash的ip。
-
让我猜猜:给定的主机名是
localhost? -
@nurgasemetey 我在LogstashSocketAppender中配置了logstash ip,还是不行
标签: java docker spring-boot logstash elastic-stack