从“运营商”集群监控 k8s 应用

Ben*_*Odr 5 kubernetes prometheus prometheus-operator prometheus-blackbox-exporter

我们有几个 K8S 集群,我们需要从一个操作员集群(集群 A)监控我们在每个集群上使用 Prometheus 来监控集群本身,现在另外我们想从应用程序的特定 api 进行监控,它会告诉我们我们的集群(根据我们的具体服务)是否正常,我不是在谈论监控集群,我们希望运营商在每个集群上监控 3 个应用程序(所有 3 个应用程序都部署在所有被监控的集群上)

集群 A(运营商)应监控集群 B、C、D 等上的服务/应用程序

例如,运营商集群将调用集群A中的已部署应用程序,例如 host://app1/status获取0或1的状态,并将状态保存在某个数据库中。(可能是 prometehusDB)并在集群外报告它们。

目前经过一些搜索,我找到了这个选项,但也许还有更多我不知道的

  1. 使用黑盒导出器 - https://github.com/prometheus/blackbox_exporter

  2. 创建我自己的程序(在 golang 中),它会像 cronjob 一样并且将使用 prom lib 在操作员集群中运行。

https://github.com/prometheus/client_golang

我的意思是运行一个休息调用并使用 Prometheus apitsdb通过 go "github.com/prometheus/client_golang/prometheus/promhttp" 代码将状态存储在 Prometheus 中。但不确定如何..

  1. 联邦??

此外,如果我能够将集群中的所有数据收集到操作员集群中,我应该如何以及在哪里保存它?在普罗米修斯数据库 tsdb 中?另一种方式 ?

支持我们的案例的最佳实践应该是什么?我们应该怎么做?

小智 1

我看到您考虑使用 Thanos,它还不错,我们已经在生产环境中运行了一段时间。但它不太适合我们的要求,你的看起来与我们的要求很熟悉,所以我建议你看看 VictoriaMetrics,你在这里有一篇很好的文章: https: //medium.com/faun/comparing-thanos-to- victoriametrics-cluster-b193bea1683

另外一个很大的进步是他们对 Slack 的支持!祝你好运!