使用Docker运行多个应用程序实例时,是否有最佳实践可以记录?

时间:2016-04-29 04:41:17

标签: logging docker

我正在尝试创建一个将在多台计算机上的多个Docker实例上运行的应用程序。由于我的容器将以$.ajax()作为命令运行,nginx将显示nginx日志的输出,这很好。但是,这引出了一个问题:我的应用程序应该在哪里登录?

我想到的选项如下。

登录主机文件系统

据我所知,为了能够识别哪个Docker容器已写入日志,我必须创建类似docker logs的内容,并为每个容器创建一个文件夹,并在容器内告诉我的应用程序写入该目录。例如,我必须创建/var/logs/myapplication并将其作为卷安装在我的Docker容器中。

这种方法的问题在于收集日志很困难。我将不得不ssh到不同的机器,进入每台机器的/var/logs/myapplication/instance-1目录并获取日志以阅读它们。当我知道那里有一个问题时,它非常好,但在我试图监控整个系统时会感到困惑。

登录数据库

在此方法中,所有Docker容器都将写入数据库,数据库的其中一列将为/var/logs/myapplication,以便我可以根据容器名称过滤日志。

这种方法的问题在于我还没有使用数据库来保存日志,而且我不确定它们是否应该像这样使用。

回到原来的问题

所以我的问题是,当你有多台机器上有多个容器时,是否有一个经过验证的最佳实践?

0 个答案:

没有答案