pka*_*mol 3 syslog elasticsearch logstash docker docker-compose
我想将日志从一个运行的容器发送my_service到另一个运行ELK带有syslog驱动程序的堆栈的容器(因此我需要logstash-input-syslog安装该插件)。
我正在通过以下方式调整此麋鹿图像(并将其标记为)elk-customDockerfile-elk
(使用端口514,因为这似乎是默认端口)
FROM sebp/elk
WORKDIR /opt/logstash/bin
RUN ./logstash-plugin install logstash-input-syslog
EXPOSE 514
Run Code Online (Sandbox Code Playgroud)
通过以下方式运行我的服务docker-compose或多或少:
elk-custom:
# image: elk-custom
build:
context: .
dockerfile: Dockerfile-elk
ports:
- 5601:5601
- 9200:9200
- 5044:5044
- 514:514
my_service:
image: some_image_from_my_local_registry
depends_on:
- elk-custom
logging:
driver: syslog
options:
syslog-address: "tcp://elk-custom:514"
Run Code Online (Sandbox Code Playgroud)
然而:
错误:对于 b4cd17dc1142_namespace_my_service_1 无法启动服务 my_service:无法初始化日志记录驱动程序:拨打 tcp:在 10.14.1.31:53 上查找 elk-custom:服务器行为不当
错误:对于 api 无法启动服务 my_service:无法初始化日志记录驱动程序:拨打 tcp:在 10.14.1.31:53 上查找 elk-custom:服务器行为不当错误:启动项目时遇到错误。
有什么建议么?
更新:显然端口上似乎没有任何东西正在侦听514,因为从容器内部,该命令netstat -a在该端口上没有显示任何内容......不知道为什么......
您需要使用tcp://127.0.0.1:514而不是tcp://elk-custom:514. 原因是该地址正在被容器使用docker,而不是被容器使用。这就是为什么elk-custom无法到达的原因。
因此,只有当您映射端口(您已经完成)并且首先启动 elk-service(您已经完成)并且可以从 docker 主机访问 IP(您将使用该 IP)时,这才有效tcp://127.0.0.1:514
| 归档时间: |
|
| 查看次数: |
2490 次 |
| 最近记录: |