从零构建Linux性能监控平台需按顺序部署Node Exporter、Prometheus服务端和Grafana:Node Exporter运行于各主机暴露/metrics接口;Prometheus主动拉取指标并配置static_configs;Grafana通过数据源接入Prometheus并导入模板可视化。

从零构建 Linux 性能指标监控平台,核心在于理清 Prometheus 的拉取式架构逻辑,并分步部署服务端、采集端和可视化层。它不依赖复杂中间件,但对配置细节和网络连通性很敏感。
理解 Prometheus 拉取模型
Prometheus 不是被动接收数据,而是主动向目标发起 HTTP 请求获取指标。这意味着:
- 每个被监控的 Linux 主机必须运行 Node Exporter,它暴露
/metrics接口(默认端口 9100),提供 CPU、内存、磁盘、网络等原始指标; - Prometheus 服务端通过配置中的
static_configs或服务发现机制,定期(如每 15 秒)请求这些接口; - 所有指标自带标签(如
instance="192.168.1.10:9100"、job="node"),这是后续 PromQL 查询和 Grafana 分组的基础。
部署 Node Exporter 到被监控主机
这是数据源头,需在每台待监控的 Linux 服务器上执行:
- 下载并解压最新版 Node Exporter(例如
v1.6.1),推荐放在/opt/node_exporter; - 用 systemd 管理服务,避免前台运行或 nohup 风险;配置文件中指定监听地址为
0.0.0.0:9100(而非仅 localhost),确保 Prometheus 能远程访问; - 检查防火墙:开放 9100 端口,云服务器还需同步配置安全组;
- 验证是否生效:在浏览器或 curl 访问
http://:9100/metrics,应返回大量以# HELP开头的文本指标。
配置 Prometheus 服务端抓取规则
编辑 prometheus.yml 的 scrape_configs 区域,添加 Linux 主机目标:
- 定义一个
job_name: "node",对应 Node Exporter 采集任务; -
static_configs下填写真实 IP 和端口,例如- targets: ["192.168.1.10:9100", "192.168.1.11:9100"]; - 注意 YAML 缩进必须为两个空格,冒号后要加空格,否则启动失败且报错不直观;
- 可选:添加
relabel_configs统一打标,比如把 IP 替换为 hostname,便于 Grafana 显示; - 重启 Prometheus 后,访问
http://<prometheusip>:9090/targets</prometheusip>,状态应为 UP。
接入 Grafana 实现可视化
Grafana 不存储数据,只读取 Prometheus 的查询结果:
- 安装 Grafana 后,在「Data Sources」中添加 Prometheus 类型,URL 填写 Prometheus 服务的实际访问地址(如
http://192.168.1.5:9090,不是 localhost); - 导入社区模板 ID
1860(Node Exporter Full),它已预置 CPU 使用率、内存剩余、磁盘 IO 等常用看板; - 图表变量(Variables)支持下拉切换不同 instance,方便多主机对比;
- 首次加载可能需等待几分钟——Prometheus 需先完成至少一次完整抓取周期,才有数据可查。



















