普罗米修斯联邦警报管理器

时间:2020-03-28 11:24:09

标签: kubernetes monitoring prometheus prometheus-alertmanager

我们有几个运行应用程序的集群。我们希望建立一个中央监视群集,该群集可以使用Prometheus Federation从其余群集中抓取指标。

为此,我需要在每个集群中安装Prometheus服务器,并通过联合在中央集群中安装Prometheus服务器。我还将在中央集群中也安装Grafana,以可视化我们从其他Prometheus服务器收集的指标。

问题是;

  1. 我应该在哪里设置警报管理器?仅对于中央群集还是每个群集都必须同时是警报管理器?

  2. 使用联合身份验证时的最佳做法是什么?

  3. 尽管我可以使用入口控制器公开每个Prometheus服务器?在k8s中提供Prometheus服务器与联盟之间的通信的最佳实践是什么?

1 个答案:

答案 0 :(得分:0)

基于此blog

我应该在哪里设置警报管理器?仅对于中央群集还是每个群集都必须同时是警报管理器?

使用联合身份验证时的最佳做法是什么?

答案是在每个群集上执行该操作。

如果您需要进行警报的数据从一个Prometheus移至另一个,则您添加了另一个故障点。当涉及互联网等WAN链接时,这尤其具有风险。您应尽可能尝试将警报推送到尽可能深的联盟层次结构中。例如,应该在Prometheus抓取该目标的警报上设置有关该目标已关闭的警报,而不是全局Prometheus,因为可以将其删除几步。


我虽然ı可以使用入口控制器公开每个Prometheus服务器?在Prometheus服务器和k8s中的联盟之间提供通信的最佳实践是什么?

我认为这取决于用例,在我检查的每个文档中,他们只是使用prometheus.yml中scrape_configs.static_configs中的目标


here

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

OR


here

prometheus.yml:
    rule_files:
      - /etc/config/rules
      - /etc/config/alerts

    scrape_configs:
      - job_name: 'federate'
        scrape_interval: 15s

        honor_labels: true
        metrics_path: '/federate'

        params:
          'match[]':
            - '{job="prometheus"}'
            - '{__name__=~"job:.*"}'

        static_configs:
          - targets:
            - 'prometheus-server:80'

此外,值得一提的是,他们在tutorial中是如何使用helm在两个集群上构建带有两个Prometheus服务器的中央监视集群的。

enter image description here