Linux 下载、安装 Node Exporter,Prometheus 官方主机硬件与系统指标采集器(附包node_exporter-1.12.1.linux-amd64.tar.gz)
- 2026-10-12 02:24:05
文章目录
1. Node Exporter 简介 2. v1.12.1 版本亮点 2.1 缺陷修复 2.2 系列新特性(来自 v1.12.0) 3. 获取安装包 4. 安装 4.1 生产环境配置(systemd 服务化) 5. 使用 5.1 接入 Prometheus 5.2 常用查询(PromQL) 5.3 对接 Grafana 可视化 5.4 配置告警 5.5 运行状态与安全

1. Node Exporter 简介
Node Exporter 是 Prometheus 官方维护的主机指标采集器(exporter),用于采集 Linux/Unix 内核(*NIX)暴露的硬件与操作系统指标,是 Prometheus 生态中监控主机层面的事实标准。2013 年与 Prometheus 同期诞生,采用 Go 语言编写、单一二进制、可插拔采集器架构,如今在 GitHub 上已拥有约 1.35 万颗星标、2600 余次 Fork,几乎所有 Linux 发行版都将其打包进官方软件源。
Node Exporter 要解决的核心问题,是让服务器上的基础健康状态以统一格式暴露给监控系统:通过读取 Linux 的 /proc、/sys 等伪文件系统,将 CPU 使用、内存占用、磁盘空间与 I/O、网络流量、系统负载、进程数、运行时长等上百项指标聚合成 Prometheus 标准文本格式,在 9100 端口的 /metrics 端点对外暴露。Prometheus 按固定周期主动"拉取"(pull)这些数据并存入时序数据库,配合 Grafana 即可一屏看清整个服务器集群的运转状况。
Node Exporter 的核心特点:
- 开箱即用
:单二进制、零配置,下载运行即在 9100 端口输出指标,相比 SNMP、Zabbix 等传统方案极为简洁 - 可插拔采集器
:每个采集器负责一类指标,默认启用已覆盖日常监控 90% 以上的需求,也支持按需启停 - 数据标准统一
:输出 Prometheus 标准文本格式,可被 Prometheus、VictoriaMetrics、Grafana Mimir、Thanos 等整个时序生态直接消费 - 覆盖全面
:CPU、内存、磁盘、文件系统、网络、进程、systemd 服务、硬件传感器等系统级指标一应俱全 - 自定义扩展
:textfile 采集器支持将任意脚本输出(如 nginx 连接数)暴露为指标,systcl 采集器可导出内核参数
2. v1.12.1 版本亮点
1.12 系列于 2026 年 7 月发布,v1.12.1 是紧随其后的维护补丁版本,针对个别采集器做了稳定修复。
2.1 缺陷修复
- perf 采集器
:修复 perf 分析器(profiler)标志(flag)处理问题 - edac 采集器
:修复可选的 csrow ue_count 指标采集问题
2.2 系列新特性(来自 v1.12.0)
- 新增 nvmesubsystem 采集器
:暴露 NVMe over Fabrics 子系统路径健康指标 - 新增 dmmultipath 采集器
:暴露 DM-multipath 设备与路径指标 - mountstats 增强
:新增 NFS 挂载点信息指标 - edac 增强
:新增带 DIMM 标签的每通道错误指标,精确定位故障内存条 - cpufreq 增强
:支持 cpuinfo_avg_freq,更准确地反映 CPU 实际运行频率 - filesystem 增强
:支持 ext4 超级块紧急只读标志,及早发现文件系统异常
3. 获取安装包
如果访问 GitHub 不便,安装包及中文文档:https://hanshuixin.org/go/225N(内含 node_exporter-1.12.1.linux-amd64.tar.gz、README 中英对照、发布说明中英对照和 LICENSE)。
适用于 Linux x86_64(amd64)。
Node Exporter 其他版本:https://hanshuixin.org/resource/software_integrated_package/Linux/Node%20Exporter
Linux安装node_exporter-v1.12.1(node_exporter-1.12.1.linux-amd64).zip├── node_exporter-1.12.1.linux-amd64.tar.gz ← 解压后运行├── Linux安装node_exporter-v1.12.1(node_exporter-1.12.1.linux-amd64).pdf├── README/│ ├── README.md│ └── README-中文版.md├── 发布说明/│ ├── RELEASE-NOTES.md│ └── RELEASE-NOTES-中文版.md└── LICENSE
4. 安装
node_exporter-1.12.1.linux-amd64.tar.gz 是 Node Exporter 官方发布的 Linux x86_64 预编译二进制包,不绑定特定发行版,解压即可运行:
# 解压二进制包(内含 node_exporter 可执行文件与 LICENSE)tar -xzf node_exporter-1.12.1.linux-amd64.tar.gz# 进入解压目录cd node_exporter-1.12.1.linux-amd64# 启动 Node Exporter(默认监听 9100 端口)./node_exporter
启动后访问 http://localhost:9100/metrics 即可看到主机指标输出。
4.1 生产环境配置(systemd 服务化)
实际生产部署中,建议将二进制部署到统一目录,创建无登录权限的专用运行用户,并以 systemd 服务托管,便于开机自启、崩溃自动拉起与统一管理:
# 将二进制部署到统一目录sudo mkdir -p /opt/node_exportersudo cp node_exporter /opt/node_exporter/# 创建专用用户(无登录权限)并授权sudo useradd --system --no-create-home --shell /sbin/nologin node_exportersudo chown -R node_exporter:node_exporter /opt/node_exporter
创建服务文件 /etc/systemd/system/node_exporter.service:
[Unit]Description=Prometheus Node ExporterDocumentation=https://prometheus.io/docs/guides/node-exporter/After=network.target[Service]Type=simpleUser=node_exporterGroup=node_exporterWorkingDirectory=/opt/node_exporterExecStart=/opt/node_exporter/node_exporter \--web.listen-address=0.0.0.0:9100 \--collector.systemdRestart=on-failureRestartSec=5[Install]WantedBy=multi-user.target
配置要点说明:
--web.listen-address:监听地址与端口,默认 :9100,如需对外开放可改为0.0.0.0:9100--collector.systemd:启用 systemd 服务状态采集(默认关闭,按需开启) --collector.textfile.directory:指定 textfile 采集器目录,用于暴露自定义指标
# 开机自启并启动sudo systemctl enable node_exportersudo systemctl start node_exporter# 查看状态sudo systemctl status node_exporter
5. 使用
5.1 接入 Prometheus
在 Prometheus 的 prometheus.yml 中增加抓取目标,即可采集主机指标。一个典型的 Linux 主机监控配置如下:
global:scrape_interval: 15sevaluation_interval: 15sscrape_configs:# 抓取 Node Exporter 暴露的主机指标- job_name: "node"static_configs:- targets: ["192.168.1.10:9100", "192.168.1.11:9100"]labels:env: "prod"
保存后重载 Prometheus 配置(systemctl reload prometheus),在 Prometheus 界面的 Status → Targets 中即可看到各主机抓取状态。每台要监控的 Linux 主机都需安装并运行 Node Exporter,并确保 9100 端口对 Prometheus 可达。
5.2 常用查询(PromQL)
Node Exporter 暴露的指标以 node_ 前缀开头,配合 PromQL 可灵活分析主机状态。常用查询示例:
# CPU 使用率(排除 idle,按 5 分钟速率)100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100# 内存使用率(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100# 磁盘剩余空间(根分区)node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} * 100# 磁盘 I/O 吞吐(5 分钟速率)rate(node_disk_read_bytes_total[5m])# 网络流入速率rate(node_network_receive_bytes_total[5m])# 系统负载(1 分钟)node_load1
5.3 对接 Grafana 可视化
将 Prometheus 作为数据源接入 Grafana 后,即可为主机指标搭建可视化仪表盘:
- 官方推荐
:Grafana 官方提供了 Node Exporter Full 仪表盘模板(Dashboard ID 1860),导入后即可获得完整的 CPU、内存、磁盘、网络、系统负载等监控面板 - 自定义面板
:在"仪表盘 → 新建"中添加面板,数据源选 Prometheus,查询框填入上述 PromQL 表达式即可,常用可视化类型有时序图(Time series)、统计(Stat)、仪表(Gauge)等 - 标签维度
:利用 instance、env等标签配置模板变量,以下拉框形式切换主机与环境,快速对比不同服务器状态
5.4 配置告警
基于 Node Exporter 采集的指标可定义主机告警规则,在 rules.yml 规则文件中配置,并让 Prometheus 通过 rule_files 引入:
groups:- name: node-alertsrules:# 主机离线- alert: 主机离线expr: up{job="node"} == 0for: 2mlabels:severity: criticalannotations:description: "{{ labels.instance }} 磁盘剩余空间低于 5GB"# 内存使用率过高- alert: 内存使用率过高expr: (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 85for: 10mlabels:severity: warningannotations:description: "{{ labels.instance }} CPU 使用率超过 85%"
告警触发后,Prometheus 将告警推送给 Alertmanager 统一去重、分组、静默,再通过邮件、Webhook、钉钉等方式通知运维,形成完整告警链路。
5.5 运行状态与安全
- 验证采集
: curl http://localhost:9100/metrics可查看指标是否正常输出;Prometheus 界面的 Status → Targets 显示UP即采集正常 - web 配置校验
:Node Exporter 支持通过 --web.config.file=web-config.yml启用 TLS 加密访问(实验特性),生产环境对外暴露时建议启用 - 指标基数
:启用额外采集器时,注意观察 scrape_duration_seconds(采集耗时)与scrape_samples_post_metric_relabeling(指标基数)两项指标,避免采集超时或资源占用过高