10-1 基于Prometheus联邦收集Node指标数据

发布于:2022-11-01 ⋅ 阅读:(258) ⋅ 点赞:(0)

前言

在生产环境中,如果使用一个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。

# 下载 prometheus-2.37 LTS 长期稳定版
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管理页面,可以查看两个联邦节点的数据:

在这里插入图片描述



本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到