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

使用Prometheus + Grafana + node_exporter实现Linux服务器性能监控

监控与告警系统部署: 项目示例: "使用Prometheus + Grafana + node_exporter实现Linux服务器性能监控" 描述: 在目标服务器部署node_exporter采集系统指标(CPU, 内存, 磁盘, 网络)。 部署配置Prometheus Server,抓取node_exporter数据。 部署配置Grafana,连接Prometheus数据源,创建可视化仪表盘展示关键指标。 配置Prometheus Alertmanager或Grafana告警规则(如CPU使用率>90%持续5分钟邮件告警)。 技术关键词: Prometheus, Grafana, node_exporter, Alertmanager, 监控指标(CPU/Mem/Disk/Net), 告警规则。 亮点: 掌握现代监控栈的核心流程,理解关键性能指标,具备告警意识。这个项目,你教我完成他

我们现在就开始,我会手把手带你完成整个监控与告警系统的部署和配置。


✅ 项目目标总结(你最终会学会的)

你将部署并掌握以下组件:

组件功能是否部署
node_exporter采集 Linux 主机指标(CPU/内存/磁盘/网络)✅ 是
Prometheus抓取 exporter 指标、存储、查询、告警✅ 是
Grafana连接 Prometheus,做图表可视化✅ 是
AlertmanagerPrometheus 告警触发后转发邮件/微信等通知✅ 是


🛠 教学模式(分阶段推进)

我会按以下 5 个阶段带你完成部署,每一步我都可以给你指令+截图模板:

阶段任务是否必须
1. 环境准备准备3台虚拟机或1台本机✅ 必须
2. node_exporter部署被监控主机安装 exporter✅ 必须
3. Prometheus部署主控端部署并配置 prometheus.yml✅ 必须
4. Grafana安装浏览器访问仪表盘展示监控图表✅ 必须
5. 告警系统配置配置 CPU >90% 持续5分钟发邮件⚠️ 可选,但建议完成


📦 第1步:环境准备(你要准备什么)

你至少要有:

  • 🖥️ 1 台 Linux 虚拟机(推荐 CentOS 7 或 Ubuntu 20.04)
    ✅ 如果有 VMware + CentOS 就直接用那台
    ✅ 最好关掉 selinux 和 firewalld

  • 📶 能联网(或者提前下载好 Prometheus/Grafana 安装包)

  • 📁 一个安装目录,如:/opt/monitoring


📌 现在我们开始第1阶段:

✅ 第1阶段:部署 node_exporter(采集系统指标)

目标:你这台主机的 CPU/内存/磁盘 数据能被采集到

第1步:下载安装 node_exporter

# 进入工作目录 
cd /opt# 下载 node_exporter(以 v1.8.1 为例) wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz# 解压 tar -xzf node_exporter-1.8.1.linux-amd64.tar.gz cd node_exporter-1.8.1.linux-amd64

第2步:后台运行 node_exporter

# 启动 node_exporter(监听在 9100 端口) ,一定要先进入cd node_exporter-1.8.1.linux-amd64目录./node_exporter &

遇到问题:

执行了

后,光标仍然闪动,好像没进入后台

可能原因:

 原因一:程序其实没有完全进入后台

虽然你用了 &,但:

  • 程序可能打印了很多日志到控制台(stdout / stderr),

  • shell 仍然认为你“在等它输出”,光标就会一直闪,

  • 所以 Ctrl + C 终止了它。

这是 Linux 的常见行为,并不是命令错了。

原因二:程序被调度到后台了,但还有“子线程/子进程”输出信息或没释放终端控制权。

解决办法

nohup 让它真正脱离终端运行(临时使用)

nohup ./node_exporter > /dev/null 2>&1 &

第3步:确认是否运行成功

# 查看监听端口 
netstat -tunlp | grep 9100 
# 浏览器访问http://主机号:9100/metrics
#或者ps -ef | grep node_exporter

✅ 第二步:部署 Prometheus Server

1. 下载并解压 Prometheus

你可以从 官网 获取,也可以直接用以下命令下载最新版:

cd /usr/local/src/ wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gztar -xzf prometheus-2.52.0.linux-amd64.tar.gz mv prometheus-2.52.0.linux-amd64 /usr/local/Prometheus cd /usr/local/Prometheus

2. 编辑配置文件 prometheus.yml

vim prometheus.yml

scrape_configs 下添加 node_exporter 的配置,例如:

scrape_configs:- job_name: 'node_exporter'static_configs:- targets: ['localhost:9100']

🔍 说明:

  • localhost:9100 是你的 node_exporter 默认监听地址。

  • 如果你的 node_exporter 是部署在别的服务器上,则改为对应的 IP,例如:192.168.1.100:9100


3. 启动 Prometheus

./prometheus --config.file=prometheus.yml &
  • 启动后访问 Prometheus Web UI:

    http://<你的服务器IP>:9090


4. 验证是否采集到 node_exporter 数据

在浏览器中打开 http://<你的服务器IP>:9090

  • 点击 “Status” → “Targets”

  • 查看是否有 node_exporter 的目标出现,并且状态为 UP


图示:

✅ 当前进度回顾

任务状态
✔️ 部署 node_exporter已完成
✅ 部署 Prometheus Server进行中
⏭️ 部署 Grafana下一步
⏭️ 创建 Dashboard 并配置告警后续

第三步:部署 Grafana(可视化监控面板)

Grafana 是一个强大的开源可视化工具,用于展示 Prometheus 收集的数据。


1. 安装 Grafana

 方法一:使用 RPM 包安装(推荐 CentOS)
# 添加 Grafana 官方源
cat <<EOF | sudo tee /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
EOF# 安装 Grafana
sudo yum install -y grafana

2. 启动 Grafana 并设置为开机启动

sudo systemctl start grafana-serversudo systemctl enable Grafana-serverGrafana

3. 放行防火墙端口(默认 3000)

bash

复制编辑

sudo firewall-cmd --add-port=3000/tcp --permanent sudo firewall-cmd --reload


4. 访问 Grafana Web 界面

打开浏览器访问:

http://<你的服务器IP>:3000

首次登录默认账号密码是:

用户名:admin 密码:admin

首次登录会要求修改密码,请记住新密码。


5. 添加 Prometheus 数据源

登录 Grafana 后:

  1. 点击左侧边栏的 Data Sources

  2. 点击 Add data source

  3. 选择 Prometheus

  4. 在 URL 填入:

    http://localhost:9090

  5. 点击底部的 Save & Test,显示 success 即可。


6. 导入官方 Node Exporter 监控模板(Dashboard)

Grafana 社区已有 Node Exporter 的可视化模板,操作如下:

  1. 点击左侧 “+” → Import

  2. 在 Import 页面中,输入 dashboard ID:

    1860 这是官方维护的 Node Exporter 全套模板
  3. 点击 Load

  4. 选择你刚添加的 Prometheus 数据源

  5. 点击 Import

导入成功后,就能看到完整的服务器资源监控仪表板,包括 CPU、内存、磁盘、网络等信息。


✅ 当前进度回顾

任务状态
✔️ 部署 node_exporter已完成
✔️ 部署 Prometheus Server已完成
✅ 部署 Grafana进行中
⏭️ 创建 Dashboard 并配置告警下一步

http://www.dtcms.com/a/320814.html

相关文章:

  • zookeeper3.8.4安装以及客户端C++api编译
  • WebForms 实例
  • 如何在Vue中使用拓扑图功能
  • 【深度学习计算性能】02:异步计算
  • 【入门级-C++程序设计:9、函数与递归-传值参数与传引用参数】
  • 数据持久化 —— `chrome.storage` 的记忆魔法
  • 服务器硬件电路设计之I2C问答(一):为什么I2C总线要加上拉电阻?
  • 华为USG防火墙双机,但ISP只给了1个IP, 怎么办?
  • WinForm 对话框的 Show 与 ShowDialog:阻塞与非阻塞的抉择
  • Java机密计算新维度:基于AMD SEV-ES的Enclave数据湖安全架构
  • 离线安装大语言模型管理工具Ollama
  • ArgoCD 与 GitOps:K8S 原生持续部署的实操指南
  • 使用 Grunt 替换 XML 文件中的属性值
  • Linux下GCC的C++实现Hive到Snowflake数据迁移
  • 在Java中,守护线程(Daemon Thread)和用户线程(User Thread)以及本地线程(Native Thread)的区别
  • 豆包新模型+PromptPilot:AI应用开发全流程实战指南
  • 深入掌握Prompt工程:高效构建与管理智能模型提示词全流程实战
  • Flutter Packge - 组件应用
  • [链表]142. 环形链表 II
  • 【洛谷题单】--分支结构(二)
  • 为什么需要锁升级?从CPU缓存到JVM的优化艺术
  • Autosar AP中Promise和Future的异步消息通信的详细解析
  • Kotlin 数据容器 - MutableList(MutableList 概述、MutableList 增删改查、MutableList 遍历元素)
  • 【JVM】流程汇总
  • OpenSCA开源社区每日安全漏洞及投毒情报资讯—2025年8月7日
  • OCC 主要库和功能模块
  • AI对互联网公司职位改变?
  • Android 系统的基本安全属性
  • 恒科持续低迷:新能源汽车股下跌成拖累,销量担忧加剧
  • ZCC3094--30V,-500mA超低噪声线性稳压电源