1

谁能建议从节点集群(每个节点都是带有 Java 应用程序的 Tomcat Docker 容器)收集指标的最佳模式?

我们计划使用 ELK 堆栈(ElasticSearch、Logstash、Kibana)作为可视化工具,但我们的问题是如何将指标传递给 Kibana?

我们正在使用 DropWizard 指标库,它提供每个实例的指标(仪表、计时器、直方图)。

显然,应该为每个实例收集一些指标(例如,cpu、内存等)——在每个集群中聚合它们没有任何意义。

但是对于诸如平均 API 响应时间、数据库调用持续时间等指标,我们需要一个清晰的全局图——即不是每个具体实例。

这就是我们犹豫的地方。我们应该吗:

  1. 只需将简单的仪表值发送到 ElasticSearch 并允许 Kibana 计算平均值、百分位数等。在这种方法中,所有聚合都发生在 Kibana 中。
  2. 使用每个实例的计时器和直方图并改为发送它们 - 但由于每个实例已经汇总了这些数据(即计时器已经提供了百分位数和 1 分钟、5 分钟和 15 分钟的速率) - Kibana 应该如何处理这个以显示全局图片?聚合已经聚合的数据是否有意义?

提前致谢,

4

1 回答 1

2

您将需要使用Metricbeat。它支持系统级模块、Docker APIDropwizard。这将为您收集事件(没有任何预聚合)。

对于聚合和可视化,我将使用时间序列可视化构建器,您可以在其中聚合每个容器、节点、服务、所有内容……它应该非常灵活,可以为您获得正确的数据粒度。

于 2017-12-31T04:06:40.293 回答