Docker Azure 上的 Swarm:正确使用 docker4x/logger-azure
Docker Swarm on Azure: Correct use of docker4x/logger-azure
我正在使用 predefined build of Docker on Azure (Edge Channel) and one of the features is the logging feature. Checking with docker ps
on the manager node I saw there is this editions_logger
container (docker4x/logger-azure),它会捕获所有容器日志并将它们写入 Azure 存储帐户。
如何直接使用这个容器来获取我的容器的日志?
- 我的第一个方法是找到合适的存储并直接从 Azure 门户共享和下载日志。
- 第二种方法是使用
docker exec -ti editions_logger cat /logmnt/xxx.log
直接连接到容器
- 运行
docker service logs xxx
抛出 only supported with experimental daemon
所有方法(虽然不是第三种方法)似乎都过于复杂。有没有更好的办法?
另一种方式,我们可以使用--volumes
将容器日志存储到Host,然后使用Logstash从卷中收集日志。
在宿主机打开固定目录D,将日志挂载到D目录的子目录下,再挂载D到Logstash。这样Logstash容器就可以收集其他容器的所有日志了。
它是这样工作的:
我在我们的集群上检查了这两种方法,但我们现在找到了一种相当简单的方法来检查日志。 Azure OMS 方法非常好,我可以推荐它,但目前的设置对我们来说太大了。 logstash 方法也很好。
幸运的是,tail 命令支持通配符,使用它我们可以很好地查看我们的日志。
docker exec -ti editions_logger bash
cd /logmnt
tail -f service_name*
非常感谢您提供不同的方法!很期待Swarm的新功能(已经有docker service logs
命令了,以后查看日志应该会更方便)
我正在使用 predefined build of Docker on Azure (Edge Channel) and one of the features is the logging feature. Checking with docker ps
on the manager node I saw there is this editions_logger
container (docker4x/logger-azure),它会捕获所有容器日志并将它们写入 Azure 存储帐户。
如何直接使用这个容器来获取我的容器的日志?
- 我的第一个方法是找到合适的存储并直接从 Azure 门户共享和下载日志。
- 第二种方法是使用
docker exec -ti editions_logger cat /logmnt/xxx.log
直接连接到容器
- 运行
docker service logs xxx
抛出only supported with experimental daemon
所有方法(虽然不是第三种方法)似乎都过于复杂。有没有更好的办法?
另一种方式,我们可以使用--volumes
将容器日志存储到Host,然后使用Logstash从卷中收集日志。
在宿主机打开固定目录D,将日志挂载到D目录的子目录下,再挂载D到Logstash。这样Logstash容器就可以收集其他容器的所有日志了。
它是这样工作的:
我在我们的集群上检查了这两种方法,但我们现在找到了一种相当简单的方法来检查日志。 Azure OMS 方法非常好,我可以推荐它,但目前的设置对我们来说太大了。 logstash 方法也很好。
幸运的是,tail 命令支持通配符,使用它我们可以很好地查看我们的日志。
docker exec -ti editions_logger bash
cd /logmnt
tail -f service_name*
非常感谢您提供不同的方法!很期待Swarm的新功能(已经有docker service logs
命令了,以后查看日志应该会更方便)