有什么方法可以在 Docker Swarm 中获取日志?
Is there any way to get logs in Docker Swarm?
我想查看我的 Docker Swarm 服务的日志。不仅因为我希望出于通常的原因收集我的所有日志,还因为我想弄清楚服务崩溃的原因"task: non-zero exit (1)"
。
我在管道中看到 there is work to implement docker logs
,但是有办法访问生产服务的日志吗?或者 Docker Swarm 尚未准备好进行生产 wrt 日志记录?
我们成功地利用了 GrayLog。如果您查看 docker 运行 文档,您可以指定一个日志驱动程序和日志选项,允许您将所有控制台消息发送到 graylog 集群。
docker run... --log-driver=gelf --log-opt gelf-address=udp://your.gelf.ip.address:port --log-opt tag="YourIdentifier"
您也可以在技术上为 docker 守护程序在全局级别配置它,但我不建议这样做。它不会让您添加 "Tag" 选项,这对于过滤结果非常有用。
Docker 服务定义还支持日志驱动程序和日志选项,因此您可以使用 docker 服务更新来调整您的服务而不会破坏它们。
使用 Docker Swarm 17.03,您现在可以通过命令行访问多实例服务的日志。
docker service logs -f {NAME_OF_THE_SERVICE}
您可以通过以下方式获取服务名称:
docker service ls
请注意,这是一个实验性功能(尚未准备好生产),要使用它,您必须启用实验模式:
更新: docker 服务日志 现在是 docker >= 17.06 的标准功能。 https://docs.docker.com/engine/reference/commandline/service_logs/#parent-command
类似问题:How to log container in docker swarm mode
如文件所述:
docker service logs [OPTIONS] SERVICE|TASK
资源:https://docs.docker.com/engine/reference/commandline/service_logs/
我想查看我的 Docker Swarm 服务的日志。不仅因为我希望出于通常的原因收集我的所有日志,还因为我想弄清楚服务崩溃的原因"task: non-zero exit (1)"
。
我在管道中看到 there is work to implement docker logs
,但是有办法访问生产服务的日志吗?或者 Docker Swarm 尚未准备好进行生产 wrt 日志记录?
我们成功地利用了 GrayLog。如果您查看 docker 运行 文档,您可以指定一个日志驱动程序和日志选项,允许您将所有控制台消息发送到 graylog 集群。
docker run... --log-driver=gelf --log-opt gelf-address=udp://your.gelf.ip.address:port --log-opt tag="YourIdentifier"
您也可以在技术上为 docker 守护程序在全局级别配置它,但我不建议这样做。它不会让您添加 "Tag" 选项,这对于过滤结果非常有用。
Docker 服务定义还支持日志驱动程序和日志选项,因此您可以使用 docker 服务更新来调整您的服务而不会破坏它们。
使用 Docker Swarm 17.03,您现在可以通过命令行访问多实例服务的日志。
docker service logs -f {NAME_OF_THE_SERVICE}
您可以通过以下方式获取服务名称:
docker service ls
请注意,这是一个实验性功能(尚未准备好生产),要使用它,您必须启用实验模式:
更新: docker 服务日志 现在是 docker >= 17.06 的标准功能。 https://docs.docker.com/engine/reference/commandline/service_logs/#parent-command
类似问题:How to log container in docker swarm mode
如文件所述:
docker service logs [OPTIONS] SERVICE|TASK
资源:https://docs.docker.com/engine/reference/commandline/service_logs/