当前位置: 首页 > news >正文

Prometheus+Grafana+node_exporter监控linux服务器资源的方案

文章目录

    • 一、离线资源下载
    • 二、部署步骤(x86监控服务器)
      • 安装Prometheus
      • 安装Grafana
    • 三、配置ARM被监控服务器
      • 安装Node Exporter
      • 配置Prometheus抓取ARM节点
    • 四、Grafana可视化配置
    • 关键注意事项
      • 防火墙规则
      • 开放ARM服务器的 9100(Node Exporter)端口

一、离线资源下载

Prometheus (x86监控服务器或者arm,我选了x86的)

官方下载页:https://prometheus.io/download/

选择 linux-amd64.tar.gz(x86架构)

备用地址(若官网无法访问):

Gitee镜像:https://gitee.com/mirrors/prometheus/releases
Node Exporter (ARM被监控服务器)

ARM版下载地址:https://prometheus.io/download/#node_exporter

选择 linux-armv7 或 linux-arm64 版本(根据ARM芯片类型)
Grafana (x86监控服务器)

官方二进制包:https://grafana.com/grafana/download

选择 linux-amd64.tar.gz[citation:9][citation:10]

RPM包(适用于CentOS/RedHat):

  wget https://dl.grafana.com/oss/release/grafana-<版本号>.x86_64.rpm

⚠️ 操作建议:
在有网络的机器下载上述资源,通过U盘或内网传输至离线服务器。

版本选择:推荐 Prometheus v2.40+、Node Exporter v1.7+、Grafana v9.4+(兼容性最佳)。

二、部署步骤(x86监控服务器)

安装Prometheus

解压到/usr/local

tar -zxvf prometheus-*.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/prometheus-* /usr/local/prometheus

创建Systemd服务(避免手动启动)

cat  /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
After=network.target[Service]
User=prometheus
ExecStart=/usr/local/prometheus/prometheus \--config.file=/usr/local/prometheus/prometheus.yml \--storage.tsdb.path=/var/lib/prometheus
Restart=on-failure[Install]
WantedBy=multi-user.target

启动服务

useradd prometheus
mkdir /var/lib/prometheus
chown -R prometheus:prometheus /usr/local/prometheus /var/lib/prometheus
systemctl enable --now prometheus
systemctl status prometheus  #检查启动状态

验证:访问 http://x86服务器IP:9090

安装Grafana

安装RPM包(CentOS/RedHat)

yum localinstall grafana-*.x86_64.rpm

或解压二进制包(通用Linux)

tar -zxvf grafana-*.linux-amd64.tar.gz -C /opt/grafana

创建Systemd服务(避免手动启动)

cat /etc/systemed/system/grafana.service
[Unit]
Description=Grafana
After=network.target[Service]
User=grafana
Group=grafana
Type=simple
ExecStart=/opt/grafana/bin/grafana-server \--config=/opt/grafana/conf/defaults.ini \--homepath=/opt/grafana
Restart=on-failure[Install]
WantedBy=multi-user.target

启动服务

systemctl enable --now grafana-server

验证:访问 http://x86服务器IP:3000,默认账号 admin/admin

三、配置ARM被监控服务器

安装Node Exporter

解压ARM版Node Exporter

tar -zxvf node_exporter-*.linux-armv7.tar.gz -C /usr/local/
mv /usr/local/node_exporter-* /usr/local/node_exporter

创建Systemd服务

cat /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target[Service]
User=node_exporter
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure[Install]
WantedBy=multi-user.target

启动服务

useradd node_exporter
systemctl enable --now node_exporter

验证:访问 http://ARM服务器IP:9100/metrics 查看指标

配置Prometheus抓取ARM节点

修改 prometheus.yml 添加ARM节点:

# 注意:yuml文件必须是空格,不能使用tab
scrape_configs:- job_name: 'node'static_configs:- targets: ['192.168.1.101:9100', '192.168.1.102:9100']  # 直接填写目标 IPrelabel_configs:# 将 instance 标签的值重写为 IP 地址- source_labels: [__address__]target_label: instancereplacement: '$1'  # 保留 IP 部分(自动去除端口)regex: '([^:]+):\d+'

修改后,可以使用以下命令来检查配置是否正确

./promtool check config prometheus.yml

重启Prometheus:

# 修改配置后,重启Prometheus
systemctl restart prometheus
# 检查Prometheus启动状态
systemctl status prometheus

四、Grafana可视化配置

添加数据源

登录Grafana → Configuration → Data Sources → 选择 Prometheus

URL填写 http://localhost:9090(Prometheus地址)
导入仪表盘
在Grafana中 → Dashboards → Import

输入模板ID 1860(官方Node Exporter仪表板,支持ARM指标)
或者在https://grafana.com/grafana/dashboards/?search=node+exporter,离线下载模板导入

关键注意事项

防火墙规则

开放x86服务器(监控服务器,也可以选择arm服务器,选择对应版本安装即可)的 9090(Prometheus)、3000(Grafana)端口。

开放ARM服务器的 9100(Node Exporter)端口

依赖项检查

ARM服务器需安装基础库:glibc、systemd(若缺失,需离线安装)
混合架构支持
Prometheus(x86)可同时监控x86和ARM节点,无需额外配置,被监控服务器要选择对应系统版本的node_exporter,其它无需特别配置。
配置成功如下图:
在这里插入图片描述

http://www.xdnf.cn/news/1092529.html

相关文章:

  • 分库分表之实战-sharding-JDBC绑定表配置实战
  • CTFHub————Web[信息泄露(目录遍历、PHPINFO)]
  • 1.4 洛谷入门一题单全解
  • Explain关键字
  • Markdown 语法规则
  • 什么是 AMR 格式?简鹿音频转换器轻松批量转换 AMR 为 MP3
  • PHP语法高级篇(一):日期时间处理和包含文件
  • LLaMA 学习笔记
  • 装配式建筑4.0:当房子像汽车一样被“智造”
  • 数据结构——深度优先搜索与广度优先搜索的实现
  • 人机协同的关键枢纽:软件工程3.0中对象模型与模型驱动的融合路径
  • VSCode配置Cline插件调用MCP服务实现任务自动化
  • langchain从入门到精通(四十一)——基于ReACT架构的Agent智能体设计与实现
  • 陶哲轩:数学界的莫扎特与跨界探索者
  • Lingo软件学习(一)好学爱学
  • Grafana容器化部署
  • 工业通讯网关在电子制造中的核心作用——从DeviceNet到Modbus TCP的智能转换
  • Vue响应式原理三:响应式依赖收集-类
  • 【Python】FastApi
  • 腾讯云COS,阿里云OSS对象存储服务-删除操作的响应码204
  • S7-1500——(一)西门子PLC编程从入门到精通4、SCL间接寻址
  • 项目进度受制于资源分配,如何动态调配资源
  • LeetCode 138题解 | 随机链表的复制
  • 5202年安装TensorFlow纪实
  • 向量空间 线性代数
  • 解锁HTML5页面生命周期API:前端开发的新视角
  • 超越公有云:在裸金属服务器上构建低成本、高性能的静态资源服务
  • STM32 使用HAL库获取us时间
  • 【使用Flask基于PaddleOCR3.0开发一个接口 调用时报错RuntimeError: std::exception】
  • HCIP(综合实验)