我尝试以群集模式运行服务(mongo),并通过fluentd将日志收集到elasticsearch。成功了(!)通过以下方式:
docker-compose up但是当我通过堆栈进行部署时,服务就启动了,但是日志没有收集,我不知道如何知道原因是什么。
docker stack deploy -c docker-compose.yml env_stagingdocker-compose.yml:
version: "3"
services:
mongo:
image: mongo:3.6.3
depends_on:
- fluentd
command: mongod
networks:
- webnet
logging:
driver: "fluentd"
options:
fluentd-address: localhost:24224
tag: mongo
fluentd:
image: zella/fluentd-es
depends_on:
- elasticsearch
ports:
- 24224:24224
- 24224:24224/udp
networks:
- webnet
elasticsearch:
image: elasticsearch
ports:
- 9200:9200
networks:
- webnet
kibana:
image: kibana
depends_on:
- elasticsearch
ports:
- 5601:5601
networks:
- webnet
networks:
webnet:upd
我删除了fluentd-address: localhost:24224并解决了问题。但我不明白什么是“本地人”?为什么我们不能设置“流利”主机。如果有人解释什么是fluentd-address,我会接受答案。
发布于 2018-05-13 19:16:27
fluentd-address是fluentd守护进程驻留的地址(默认是localhost,在本例中不需要指定它)。
在您的示例中(使用堆栈),您的流畅守护进程将在一个节点上运行,您应该使用服务的名称来访问该服务(在您的例子中,fluentd,您试过吗?)
记住将fluentd-async-connect: "true"添加到您的选项中
参考地址:https://docs.docker.com/config/containers/logging/fluentd/#usage
发布于 2019-02-11 10:16:20
你不需要指定流畅地址。当您将日志驱动程序设置为fluentd时,sends会自动发现最近的fluentd实例,并将所需容器的所有stdout发送到那里。
https://stackoverflow.com/questions/50279274
复制相似问题