Prometheus联邦模式分布式监控
- 资源列表
一、联邦模式概述
- 1.1、架构设计
- 1.2、架构设计
二、prometheus子节点配置
- 2.1、子节点102配置
- 2.2、子节点103配置
- 三、prometheus主节点配置
四、grafana出图
- 4.1、添加数据源
- 4.2、导入仪表盘模板
- 4.3、验证监控效果
资源列表
| 操作系统 | 配置 | 主机名 | IP | 角色 |
|---|---|---|---|---|
| CentOS 7.9 | 2C4G | prometheus-master | 192.168.93.101 | 主节点 |
| CentOS 7.9 | 2C4G | prometheus-slave1 | 192.168.93.102 | 从节点1 |
| CentOS 7.9 | 2C4G | prometheus-slave2 | 192.168.93.103 | 从节点2 |
| CentOS 7.9 | 2C4G | grafana | 192.168.93.104 | 监控展示大屏 |
| CentOS 7.9 | 2C4G | client1 | 192.168.93.105 | 被监控节点1 |
| CentOS 7.9 | 2C4G | client2 | 192.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- 浏览器查看,是否监控到了子节点的数据

四、grafana出图
4.1、添加数据源

4.2、导入仪表盘模板

4.3、验证监控效果
- 105

- 106
