本章概述
- node节点部署node_exporter
- prometheus联邦节点监控node_exporter
- 修改prometheus联邦节点配置文件
- 联邦节点监控数据验证
- prometheus server采集联邦节点数据
- 联邦server监控数据验证
前言
如果prometheus需要采集的服务器过多,会导致prometheus server节点压力过大,降低服务器性能。为了分担server节点的压力,可以配置prometheus联邦集群。
Prometheus联邦集群通过设置多个prometheus联邦从节点采集服务器数据,然后再将联邦节点的数据汇总到prometheus联邦server主节点。server主节点负责接收联邦节点数据,而采集服务器数据的任务则是由联邦节点完成,这样就可以分担server节点的压力。
架构图:
环境准备:
172.31.7.201 #prometheus联邦server主节点
172.31.7.202 #prometheus联邦节点1
172.31.7.203 #prometheus联邦节点2
172.31.7.191 #node1,prometheus联邦节点1的目标采集服务器
172.31.7.192,172.31.7.193 #node1,prometheus联邦节点2的目标采集服务器
10.1 node节点部署node_exporter
分别在三个node节点(172.31.7.191、172.31.7.192、172.31.7.193)上安装node_exporter
1、下载node-export安装包,解压做软链接
mkdir /apps && cd /apps
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz
ln -sv /apps/node_exporter-1.3.1.linux-amd64 /apps/node_exporter
2、创建service文件
vim /etc/systemd/system/node-exporter.service
[Unit]
Description=Prometheus Node Exporter
After=network.target
[Service]
ExecStart=/apps/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
3、启动服务并设置为开机自启动
systemctl daemon-reload
systemctl restart node-exporter.service
systemctl enable node-exporter.service
10.2 prometheus联邦节点监控node_exporter
由于172.31.7.201上已经部署了prometheus,无需再次部署。现在分别在prometheus联邦节点1(172.31.7.202)和节点2(172.31.7.203)上部署prometheus
注意:prometheus联邦集群中各节点prometheus的版本要保持一致
1、创建存放安装包的目录并下载安装包
mkdir /apps && cd /apps
wget https://github.com/prometheus/prometheus/releases/download/v2.36.1/prometheus-2.36.1.linux-amd64.tar.gz
2、解压安装包并做软链接
tar -xvf prometheus-2.36.1.linux-amd64.tar.gz
ln -sv /apps/prometheus-2.36.1.linux-amd64 /apps/prometheus
3、通过service文件的方式启动prometheus
(1)创建service文件
vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target
[Service]
Restart=on-failure
WorkingDirectory=/apps/prometheus/
ExecStart=/apps/prometheus/prometheus --config.file=/apps/prometheus/prometheus.yml
[Install]
WantedBy=multi-user.target
启动prometheus服务并设置为开机自启动
systemctl daemon-reload
systemctl restart prometheus
systemctl enable prometheus
10.3 修改prometheus联邦节点配置文件
修改prometheus联邦节点1和节点2的配置文件,这里prometheus联邦节点1监控node1节点,prometheus联邦节点2监控node2和node3节点
1、修改prometheus联邦节点1(172.31.7.202)的prometheus配置
vim /apps/prometheus/prometheus.yml #这里之贴出修改部分,将以下配置复制到prometheus配置文件最后面
- job_name: "prometheus-172.31.7.202"
static_configs:
- targets: ["172.31.7.191:9100"]
重启服务
systemctl restart Prometheus
2、修改prometheus联邦节点1(172.31.7.203)的prometheus配置
vim /apps/prometheus/prometheus.yml #这里之贴出修改部分,将以下配置复制到prometheus配置文件最后面
- job_name: "prometheus-172.31.7.203"
static_configs:
- targets: ["172.31.7.192:9100","172.31.7.193:9100"]
重启服务
systemctl restart Prometheus
10.4 联邦节点监控数据验证
分别访问172.31.7.202:9090和172.31.7.203:9090
1、访问172.31.7.202:9090 web页面
查看数据监控(可以看到已经对node1节点172.31.7.191进行监控)
2、访问172.31.7.203:9090 web页面
查看监控数据(可以看到已经对node1节点172.31.7.192和node2节点172.31.7.193进行监控)
10.5 prometheus server采集联邦节点数据
1、修改prometheus server节点(172.31.7.201)prometheus配置文件
vim /apps/prometheus/prometheus.yml #这里只贴出修改部分
- job_name: 'prometheus-federate-7.202' #指定job名称
scrape_interval: 10s #指定数据抓取间隔
honor_labels: true #保留源标签
metrics_path: '/federate' #指定数据抓取路径,默认为/federate
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}' #指定匹配规则
- '{__name__=~"node.*"}'
static_configs:
- targets:
- '172.31.7.202:9090' #数据抓取目标地址
- job_name: 'prometheus-federate-7.203'
scrape_interval: 10s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
- '{__name__=~"node.*"}'
static_configs:
- targets:
- '172.31.7.203:9090'
重启prometheus服务
systemctl restart Prometheus
10.6 联邦server监控数据验证
1、访问172.31.7.201:9090 web页面
2、查询指标数据
可以看到prometheus联邦server节点没有直接抓取三台node节点的数据,但却可以看到三台node节点的数据,这说明联邦server节点已经获取到联邦节点的监控数据
3、访问grafana
选择不同的节点,查看相应地监控数据
文章评论