prometheus学习笔记之prometheus联邦集群

一、简介

对于大部分监控规模而言,我们只需要在每一个数据中心安装一个Prometheus Server实例,就可以在各个数据中心处理上千规模的集群。同时将Prometheus Server部署到不同的数据中心可以避免网络配置的复杂性。

在每个数据中心部署单独的Prometheus Server,用于采集当前数据中心监控数据。并由一个中心的Prometheus Server负责聚合多个数据中心的监控数据。这一特性在Promthues中称为联邦集群。

联邦集群的核心在于每一个Prometheus Server都包含一个用于获取当前实例中监控样本的接口/federate。对于中心Prometheus Server而言,无论是从其他的Prometheus实例还是Exporter实例中获取数据实际上并没有任何差异。

集群部署架构

三、部署prometheus联邦集群并抓取对应节点数据

1.中心及联邦prometheus节点部署prometheus 

100.131 100.132 100.133三台服务器上安装prometheus,二进制部署,部署步骤略,可参考:https://www.cnblogs.com/panwenbin-logs/p/18370049  ,各节点版本保持一致

2.被采集节点安装node-exporter

10.134 100.135 2台服务器上二进制部署node-exporter,部署步骤略,参考:参考:https://www.cnblogs.com/panwenbin-logs/p/18370049

3.配置prometheus联邦节点采集数据

#联邦节点1
scrape_configs:
  - job_name: "prod-app01"
    static_configs:
      - targets: ["192.168.100.134:9100"]


#联邦节点2
scrape_configs:
  - job_name: "prod-app02"
    static_configs:
      - targets: ["192.168.100.135:9100"]

验证是否抓取数据正常

4.配置中心prometheus server 抓取联邦节点prometheus

#在100.131上操作
vim prometheus.yml
 - job_name: 'prometheus-federate-100.132'
   scrape_interval: 10s
   honor_labels: true
   metrics_path: '/federate'
   params:
    'match[]':
      - '{job="prometheus"}'
      - '{__name__=~"job:.*"}'
      - '{__name__=~"node.*"}'
   static_configs:
     - targets:
       - '192.168.100.132:9090'  #下面的也可以不写,把133写在此处也是可以的

 - job_name: 'prometheus-federate-100.133'
   scrape_interval: 10s
   honor_labels: true
   metrics_path: '/federate'
   params:
    'match[]':
      - '{job="prometheus"}'
      - '{__name__=~"job:.*"}'
      - '{__name__=~"node.*"}'
   static_configs:
     - targets:
       - '192.168.100.133:9090'

systemctl restart prometheus

web端验证

grafana图标验证

可以看到数据可以正常抓取及展示 

参考文档:https://prometheus.io/docs/prometheus/latest/federation/

 

 

 

 

 

 

 

posted @ 2024-09-24 15:55  百衲本  阅读(196)  评论(0编辑  收藏  举报
cnblogs_post_body { color: black; font: 0.875em/1.5em "微软雅黑" , "PTSans" , "Arial" ,sans-serif; font-size: 15px; } cnblogs_post_body h1 { text-align:center; background: #333366; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 23px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h2 { text-align:center; background: #006699; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 20px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h3 { background: #2B6695; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 18px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } 回到顶部 博客侧边栏 回到顶部 页首代码 回到顶部 页脚代码