【监控】Node Exporter 介绍及应用
一、Node Exporter 是什么?
Node Exporter 是 Prometheus 生态中用于监控服务器(节点)的核心组件之一,属于 Exporter 类型工具。它通过采集服务器的底层系统指标(如 CPU、内存、磁盘、网络、文件系统等),将数据暴露给 Prometheus 服务器,供其抓取、存储和分析,从而实现对服务器运行状态的实时监控。
二、核心功能与采集指标
Node Exporter 主要采集以下几类指标:
- 硬件与系统指标
- CPU:利用率、负载、核心状态(用户态/内核态/空闲等)。
- 内存:总内存、可用内存、Swap 使用情况。
- 磁盘:IO 吞吐量、读写次数、磁盘利用率、inode 使用情况。
- 网络:流量(接收/发送)、数据包数量、错误率、丢弃率。
- 文件系统:挂载点、容量、类型(如 ext4、xfs 等)。
- 温度与风扇:部分硬件支持的传感器数据(依赖系统驱动)。
- 系统资源指标
- 进程数、运行队列长度。
- 系统时间、开机时长。
三、应用场景
Node Exporter 广泛应用于以下场景:
- 基础设施监控
- 监控物理机、虚拟机(VM)、容器主机(如 Kubernetes 节点)的资源使用情况。
- 定位服务器性能瓶颈,例如 CPU 过载、内存泄漏、磁盘 I/O 瓶颈等。
- 云原生与容器环境
- 在 Kubernetes、Docker 等容器化平台中,作为节点级监控的标准组件,配合 Kubelet Exporter 等工具实现集群监控。
- 故障排查与预警
- 通过设定报警规则(如内存使用率超过 90%、磁盘空间不足),及时发现服务器异常。
- 结合 Prometheus 的查询能力,分析历史数据,优化资源分配。
- 混合云与多集群管理
- 统一监控数据中心内的物理机和公有云实例(如 AWS EC2、Azure VM),提供一致的监控视角。
四、如何使用 Node Exporter?
1. 部署方式
Node Exporter 支持多种部署方式,以下为常见场景:
(1)物理机/虚拟机部署
- 下载二进制文件:
从 Prometheus 官网 或 GitHub 仓库获取对应系统的二进制包(如node_exporter-<version>.linux-amd64.tar.gz
)。 - 启动服务:
tar -xzf node_exporter-*.tar.gz
cd node_exporter-*
./node_exporter # 默认监听 9100 端口
访问 http://<服务器IP>:9100/metrics
可查看采集的指标数据。
- 作为系统服务运行(推荐):
创建 systemd 服务文件(如/etc/systemd/system/node_exporter.service
),实现开机自启:
[Unit]
Description=Node Exporter
After=network.target [Service]
User=nobody
ExecStart=/path/to/node_exporter
Restart=always [Install]
WantedBy=multi-user.target
重新加载配置并启动服务:
systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter
(2)容器化部署(如 Docker/Kubernetes)
- Docker 运行:
docker run -d --name node_exporter \ -v "/proc:/host/proc:ro" \ -v "/sys:/host/sys:ro" \