提问者:小点点

从单独的prometheus服务器监控kubernetes集群及其所有服务、节点和pod


我的场景如下

有一个prometheus服务器,我想监控我的devops服务器,开发部署(这是一个有10个pod的kubernetes集群),qa部署和prod部署。

我想通过中央prometheus服务器监控所有这些部署和devops服务器。

我在这种情况下看过几篇文章。但它们都提到了在Kubernetes集群上设置prometheus。

寻找有关如何在单独的prometheus服务器上配置k8s集群的帮助。


共1个答案

匿名用户

基于Prometheus Github及其留档的问题,从几个K8s集群获取数据的唯一最佳方法是使用联邦。

无论如何,您将拥有多个Prometheus服务器(不仅是因为存储数据,还因为,例如,处理用于定义检查的自定义资源,请参阅有关其工作原理的设计文档),但在联合模式下,可以一起使用它的数据。

因此,您可以配置例如Prometheus的分层联邦。在这种模式下,您可以将单独的Prometheus用作更高级别的服务器,它将从集群上的服务器收集数据。

您可以配置您的服务器以从运行在K8s集群上的Prometheus服务器的/联邦endpoint获取指标。

来自文章:

- 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'