4

我有多个用节点编写的微服务,微服务安装到 docker 容器中,我们使用 Mesos+Marathon 进行集群。

如何聚合不同实例上所有容器(微服务)的日志。?

4

3 回答 3

3

我们也在使用 Docker+Mesos,并将所有日志发送到日志分析服务(这是我工作的公司提供的服务, http: //logz.io)。有几种方法可以实现:

  • 在每个 docker 中都有一个日志传送代理 - 像 rsyslog、nxlog、logstash、logstash-forwarder 这样的代理 - 该代理会将数据传送到中央日志记录解决方案
  • 创建一个运行 shipper 代理(如 rsyslog、nxlog、logstash、logstash-forwarder)的 Docker,该代理从每台机器上的所有 Docker 读取日志并将它们发送到一个中心位置 - 这是我们正在采用的路径
于 2015-07-30T05:15:55.527 回答
2

这是一个广泛的问题,但我建议您设置一个 Elastic Search、Logstash、Kibana 堆栈(ELK)

https://www.elastic.co/products/elasticsearch

https://www.elastic.co/products/logstash

https://www.elastic.co/products/kibana

然后在您的每个容器上,您可以运行logstash forwarder/shipper以将日志发送到您的 logstash 前端。

日志存储在 Elastic Search 中,然后您使用 Kibana 或Elastic Search API进行搜索

希望能帮助到你。

于 2015-07-28T05:29:08.003 回答
1

我也在做一些 Docker + Mesos + Marathon 的工作,所以,我想,我将面临同样的疑问。

我不知道是否有任何本机解决方案。但是elastic.io上的人们有一篇关于他们如何解决这个问题的博客。

这是链接 - Mesos / Marathon 集群中 Docker 容器的日志聚合

于 2015-07-28T05:28:23.587 回答