文章目录
- 前言
- 环境准备
- 安装prometheus
- 安装node_exporter
- Prometheus配置
-
前言
在生产环境中,如果使用一个prometheus的话,随着监控数据的持续增长,将会导致压力越来越大,这时候可以采用prometheus的集群联邦模式。
部署多个prometheus的从节点,分别负责不同的监控数据采集,prometheus主节点负责汇总数据与grafana数据展示,可以很好地解决这种问题。
环境准备
需要准备5台机子,清单与架构图如下:
主机 | 用途 | 安装软件 |
---|
主节点 | 汇总联邦节点数据 | prometheus |
联邦节点1 | 采集node1节点数据 | prometheus |
联邦节点2 | 采集node2节点数据 | prometheus |
node1 | 工作节点1 | node_exporter |
node2 | 工作节点2 | node_exporter |
安装prometheus
3个节点,同时安装prometheus。包括主节点,联邦节点1,联邦节点2。
wget https://github.com/prometheus/prometheus/releases/download/v2.37.1/prometheus-2.37.1.linux-amd64.tar.gz
tar zxvf prometheus-2.37.1.linux-amd64.tar.gz
mv prometheus-2.37.1.linux-amd64 /apps/prometheus
创建prometheus.service服务文件:
vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target
[Service]
WorkingDirectory=/apps/prometheus/
ExecStart=/apps/prometheus/prometheus --config.file=/apps/prometheus/prometheus.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
开机启动,查看端口,prometheus默认端口9090
systemctl enable --now prometheus
systemctl status prometheus
netstat -lntp | grep prometheus
tcp6 0 0 :::9090 :::* LISTEN 20797/prometheus
安装node_exporter
2个节点,同时安装node_exporter。包括node1,node2。
wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz
tar zxvf node_exporter-1.4.0.linux-amd64.tar.gz
mv node_exporter-1.4.0.linux-amd64 /apps/node_exporter
创建node-exporter.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
开机启动,查看端口,node-exporter默认端口9100
systemctl enable --now node-exporter
systemctl status node-exporter
netstat -lntp | grep exporter
tcp6 0 0 :::9100 :::* LISTEN 980/node_exporter
Prometheus配置
联邦节点1配置
在联邦节点1打开配置文件,targets为node1节点:
vim /apps/prometheus/prometheus.yml
scrape_configs:
- job_name: "node-exporter-node1"
static_configs:
- targets: ["192.168.100.194:9100"]
重启prometheus服务:
systemctl restart prometheus
联邦节点2配置
在联邦节点2打开配置文件,targets为node2节点:
vim /apps/prometheus/prometheus.yml
scrape_configs:
- job_name: "node-exporter-node2"
static_configs:
- targets: ["192.168.100.195:9100"]
重启prometheus服务:
systemctl restart prometheus
主节点配置
在主节点打开prometheus配置文件:关联到联邦节点1和联邦节点2:
vim /apps/prometheus/prometheus.yml
scrape_configs:
- job_name: 'federate1'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
- '{__name__=~"node.*"}'
static_configs:
- targets:
- '192.168.100.191:9090'
- job_name: 'federate2'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
- '{__name__=~"node.*"}'
static_configs:
- targets:
- '192.168.100.192:9090'
参数 | 含义 |
---|
job_name | 任务名称 |
scrape_interval | 每隔多久采集一次 |
honor_labels | 是否保留原始标签 |
metrics_path | 联邦节点的路径 |
match[] | 汇总所有匹配条件的数据 |
targets | 联邦节点的IP与Port |
在主机点的prometheus管理页面,可以查看两个联邦节点的数据:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)