我的场景如下
有一个 Prometheus 服务器,我想监控我的 DevOps 服务器、dev 部署(这是一个有 10 个 pod 的 kubernetes 集群(、qa 部署和 prod 部署。
我想通过中央普罗米修斯服务器监控所有这些部署和DevOps服务器。
我看过几篇关于这种情况的文章。 但它们都提到了 Kubernetes 集群上的 Setup Prometheus。
查看有关如何在单独的普罗米修斯服务器上配置 k8s 集群的帮助。
根据 Prometheus Github 及其文档上的问题,从多个 K8s 集群获取数据的唯一最佳方法是使用 Federation。
无论如何,您都会有几个 Prometheus 服务器(不仅因为存储数据,还因为,例如,处理用于定义检查的自定义资源,请参阅设计文档了解它是如何工作的(,但在联合模式下,可以一起使用它的数据。
因此,您可以配置普罗米修斯的分层联邦。在该模式下,您可以将单独的 Prometheus 用作更高级别的服务器,它将从集群上的服务器收集数据。
您可以配置服务器以从在 K8s 集群上运行/federate
Prometheus 服务器的端点获取指标。
来自文章:
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
static_configs:
- targets:
- 'source-prometheus-1:9090'
- 'source-prometheus-2:9090'
- 'source-prometheus-3:9090'