Azure上的Docker Swarm:正确使用docker4x / logger-azure

时间:2017-05-02 09:16:53

标签: azure logging docker docker-swarm

我正在使用predefined build of Docker on Azure(边缘频道),其中一项功能是日志记录功能。在管理器节点上检查docker ps我看到有这个editions_logger容器(docker4x/logger-azure),它捕获所有容器日志并将它们写入Azure存储帐户。

如何直接使用此容器获取容器的日志?

  1. 我的第一个方法是找到合适的存储空间,直接从Azure门户网站共享和下载日志。
  2. 第二种方法是使用docker exec -ti editions_logger cat /logmnt/xxx.log
  3. 直接连接到容器
  4. 正在投放docker service logs xxx投掷only supported with experimental daemon
  5. 所有方法(不是第三种方法)似乎都过于复杂。有没有更好的办法?

2 个答案:

答案 0 :(得分:2)

我在群集上检查了两种方法,但我们现在找到了一种检查日志的相当简单的方法。 Azure OMS方法非常好,我可以推荐它,但目前设置对我们来说太大了。 logstash方法也很好。

幸运的是,tail命令支持通配符,使用它我们可以很好地查看我们的日志。

docker exec -ti editions_logger bash
cd /logmnt 
tail -f service_name*

非常感谢您采用不同的方法!我期待着新的Swarm功能(已经有docker service logs命令,因此将来检查日志应该更容易。)

答案 1 :(得分:1)

另一种方法是,我们可以使用--volumes将容器日志存储到主机,然后使用 Logstash 从卷中收集日志。

在主机上打开固定目录D,并将日志挂载到D目录的子目录,然后将挂载D挂载到Logstash。通过这种方式,Logstash容器可以从其他容器中收集所有日志 它的工作原理如下:
enter image description here