Prometheus联邦模式分布式监控

  • 资源列表
  • 一、联邦模式概述

    • 1.1、架构设计
    • 1.2、架构设计
  • 二、prometheus子节点配置

    • 2.1、子节点102配置
    • 2.2、子节点103配置
  • 三、prometheus主节点配置
  • 四、grafana出图

    • 4.1、添加数据源
    • 4.2、导入仪表盘模板
    • 4.3、验证监控效果

资源列表

操作系统配置主机名IP角色
CentOS 7.92C4Gprometheus-master192.168.93.101主节点
CentOS 7.92C4Gprometheus-slave1192.168.93.102从节点1
CentOS 7.92C4Gprometheus-slave2192.168.93.103从节点2
CentOS 7.92C4Ggrafana192.168.93.104监控展示大屏
CentOS 7.92C4Gclient1192.168.93.105被监控节点1
CentOS 7.92C4Gclient2192.168.93.106被监控节点2
  • 基础环境
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
hostnamectl set-hostname prometheus-master
hostnamectl set-hostname prometheus-slave1
hostnamectl set-hostname prometheus-slave2
hostnamectl set-hostname grafana
hostnamectl set-hostname client1
hostnamectl set-hostname client2

一、联邦模式概述

  • 本文详细介绍了如何在大型企业中使用Prometheus的联邦模式进行分布式监控,包括配置子节点监控目标、主节点的联邦聚合设置以及Grafana的数据源导入。通过实例展示了如何配置Prometheus节点以监控多个节点并整合数据到主节点上展示。

1.1、架构设计

  • 由于,在大型企业中,被监控项目比较多,多到一台prometheus服务无法承载大量的监控数据的传输,所以,联邦模式应运而生,它同等于zabbix的分布式监控,就是将大量的被监控,分开进行监控,然后再汇总到一台prometheus的服务器上。

图片

1.2、架构设计

图片

二、prometheus子节点配置

2.1、子节点102配置

[root@prometheus-slave1 ~]# vim /usr/local/prometheus/prometheus.yml
# my global config
global:
  scrape_interval: 3s    evaluation_interval: 15s 
alerting:  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]  #直接监控105节点
  - job_name: "node-exporter-01"
    static_configs:
      - targets: ["192.168.93.105:9100"]
[root@prometheus-slave1 ~]# curl -X POST http://192.168.93.102:9090/-/reload
  • 查看浏览器验证

图片

2.2、子节点103配置

[root@prometheus-slave2 ~]# vim /usr/local/prometheus/prometheus.yml
global:
  scrape_interval: 3s 
  evaluation_interval: 15s 
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
    #直接监控106节点
  - job_name: "node-exporter-02"
    static_configs:
      - targets: ["192.168.93.106:9100"]
[root@prometheus-slave2 ~]# curl -X POST http://192.168.93.103:9090/-/reload
  • 查看浏览器验证

图片

三、prometheus主节点配置

  • 注意:prometheus主节点,取的数据是:prometheus子节点的数据;
[root@prometheus-master ~]# vim /usr/local/prometheus/prometheus.yml
global:
  scrape_interval: 3s 
  evaluation_interval: 15s 
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  - job_name: "prometheus-102"
    metrics_path: "/federate"
    #用于解决标签冲突问题,有效值为true和false(false)
    #设置为true,保留抓取的标签以忽略服务器自身的标签,就是覆盖原来的标签;
    #设置为false,不覆盖原来的标签,而是在标签前加了一个“exporter_”前缀;
    honor_labels: true
    params:
      "match[]":
      - '{job="prometheus"}'
      - '{__name__=~"job:.*"}'
      - '{__name__=~"node.*"}'
    static_configs:
      - targets: ["192.168.93.102:9090"]
    #子节点103
  - job_name: "prometheus-103"
    metrics_path: "/federate"
    honor_labels: true
    params:
      "match[]":
      - '{job="prometheus"}'
      - '{__name__=~"job:.*"}'
      - '{__name__=~"node.*"}'
    static_configs:
      - targets: ["192.168.93.103:9090"]
[root@prometheus-master ~]# curl -X POST http://192.168.93.101:9090/-/reload
  • 浏览器查看,是否监控到了子节点的数据

image.png

四、grafana出图

4.1、添加数据源

image.png

4.2、导入仪表盘模板

image.png

4.3、验证监控效果

  • 105

image.png

  • 106

image.png

正文到此结束
  • 本文作者:xinyu.he
  • 文章标题:Prometheus联邦模式分布式监控
  • 本文地址:https://www.hxy.bj.cn/archives/141/
  • 版权说明:若无注明,本文皆Xinyu.he blog原创,转载请保留文章出处。
最后修改:2025 年 04 月 24 日
如果觉得我的文章对你有用,请随意赞赏