03.4、Node Exporter 系统指标收集
Node Exporter:系统指标收集
本节将学习:Node Exporter 是什么?如何在 Linux/macOS 上安装 Node Exporter?如何在 Windows 上安装 Windows Exporter?以及如何配置 Prometheus 抓取系统指标。
Node Exporter 简介
Node Exporter 是什么? Node Exporter 是一个 Prometheus Exporter,用于收集 Linux/Unix 系统的硬件和操作系统指标。
它的工作原理是什么? 它暴露 /metrics 端点,Prometheus 可以抓取这些指标。就像一个代理一样,它采集系统的指标,然后暴露出来,让 Prometheus 抓取。
Node Exporter 收集哪些指标呢?
第一个是 CPU 指标。 CPU 使用率、CPU 负载、CPU 时间统计。这些指标告诉你 CPU 的使用情况。
第二个是内存指标。 内存使用量、内存使用率、交换空间使用情况。这些指标告诉你内存的使用情况。
第三个是磁盘指标。 磁盘使用量、磁盘 IO、文件系统使用情况。这些指标告诉你磁盘的使用情况。
第四个是网络指标。 网络流量、网络连接数、网络错误统计。这些指标告诉你网络的使用情况。
第五个是系统指标。 系统启动时间、进程数量、文件描述符使用情况。这些指标告诉你系统的状态。
这就是 Node Exporter。它收集系统的各种指标,让 Prometheus 可以监控系统的健康状态。
在 Linux/macOS 上安装 Node Exporter
在 Linux/macOS 上安装 Node Exporter 有两种方法。
第一种方法:二进制文件安装。
第一步:下载 Node Exporter。
- 在 Linux 上:下载 linux-amd64 版本
- 在 macOS 上:下载 darwin-amd64 版本
第二步:解压文件。
- 运行:
tar -xzf node_exporter-*.tar.gz - 然后:,进入解压后的目录
cd node_exporter-*
第三步:运行 Node Exporter。
- 运行:
./node_exporter - Node Exporter 会在 9100 端口启动
第四步:验证安装。
- 访问:http://localhost:9100/metrics
- 你应该能看到系统指标。如果能看到,说明安装成功了。
第二种方法:Homebrew 安装(macOS)。
- 运行:,安装 Node Exporter
brew install node_exporter - 然后:,启动服务
brew services start node_exporter
配置 systemd 服务(Linux): 如果你想在 Linux 上作为服务运行,可以配置 systemd 服务。这样就可以开机自启。
这就是在 Linux/macOS 上安装 Node Exporter 的过程。
在 Windows 上安装 Windows Exporter
注意:Windows 使用 Windows Exporter,不是 Node Exporter。 Windows Exporter 是专门为 Windows 设计的。
在 Windows 上安装 Windows Exporter 有两种方法。
第一种方法:MSI 安装包安装。
第一步:下载 Windows Exporter。
- 访问:https://github.com/prometheus-community/windows_exporter/releases
- 下载:windows_exporter-x.x.x-amd64.msi
第二步:运行安装程序。
- 双击 MSI 安装包
- 按照向导安装,默认端口是 9182
第三步:验证安装。
- 访问:http://localhost:9182/metrics
- 你应该能看到系统指标。如果能看到,说明安装成功了。
第二种方法:命令行安装。
- 使用 PowerShell 下载并运行
- 下载 windows_exporter.exe,然后运行
配置为 Windows 服务: 如果你想在 Windows 上作为服务运行,可以使用 NSSM 安装为服务。这样就可以开机自启。
这就是在 Windows 上安装 Windows Exporter 的过程。
配置 Prometheus 抓取系统指标
配置 Prometheus 抓取系统指标的步骤是什么?
第一步:安装 Node Exporter。 在 Linux/macOS 上安装 Node Exporter,在 Windows 上安装 Windows Exporter。
第二步:启动 Node Exporter。 Node Exporter 会在 9100 端口启动(Linux/macOS),Windows Exporter 会在 9182 端口启动(Windows)。
第三步:配置 Prometheus。 在 prometheus.yml 中添加抓取配置。
配置文件示例(Linux/macOS):
scrape_configs: - job_name: 'node-exporter' scrape_interval: 15s static_configs: - targets: ['localhost:9100'] labels: instance: 'server-1' environment: 'production'
这个配置告诉 Prometheus 抓取 localhost:9100 的指标。
配置文件示例(Windows):
scrape_configs: - job_name: 'windows-exporter' scrape_interval: 15s static_configs: - targets: ['localhost:9182'] labels: instance: 'windows-server-1' environment: 'production' os: 'windows'
这个配置告诉 Prometheus 抓取 localhost:9182 的指标。注意端口是 9182,不是 9100。
多节点配置示例: 如果你有多台服务器,可以配置多个目标。
scrape_configs: - job_name: 'node-exporter' scrape_interval: 15s static_configs: - targets: - 'server1:9100' - 'server2:9100' - 'server3:9100' labels: environment: 'production'
这个配置告诉 Prometheus 抓取三台服务器的指标。
第四步:重启 Prometheus。 修改配置后,需要重启 Prometheus 或重载配置。
第五步:验证抓取。 在 Prometheus UI 中查看 Targets,应该能看到 node-exporter 目标状态是 UP。如果状态是 UP,说明 Prometheus 可以正常抓取指标。
这就是配置 Prometheus 抓取系统指标的过程。
验证和测试
验证步骤:
第一步:检查 Node Exporter 状态。
- 访问:http://localhost:9100/metrics
- 你应该能看到系统指标。如果能看到,说明 Node Exporter 正常运行。
第二步:检查 Prometheus Targets。
- 访问:http://localhost:9090/targets
- 你应该能看到 node-exporter 目标,状态应该是 UP。如果状态是 UP,说明 Prometheus 可以正常抓取指标。
第三步:测试 PromQL 查询。
- 在 Prometheus UI 中查询:。这应该返回 CPU 使用情况的指标。
node_cpu_seconds_total - 查询:。这应该返回内存总量的指标。
node_memory_MemTotal_bytes - 查询:。这应该返回磁盘 IO 的指标。
node_disk_io_now
第四步:查看指标示例。 在 /metrics 端点中查看指标,你应该能看到:
- :CPU 使用情况
node_cpu_seconds_total - :内存总量
node_memory_MemTotal_bytes - :磁盘读取字节数
node_disk_read_bytes_total - :网络接收字节数
node_network_receive_bytes_total
如果这些步骤都成功了,说明 Node Exporter 和 Prometheus 配置成功了。
本节小结
在本节中,我们学习了 Node Exporter 的使用:
第一个是 Node Exporter。 收集 Linux/Unix 系统指标,端口 9100。
第二个是 Windows Exporter。 收集 Windows 系统指标,端口 9182。
第三个是安装方法。 二进制文件、包管理器、MSI 安装包,选择适合你的方法。
第四个是 Prometheus 配置。 添加 scrape_configs 配置抓取任务。
配置流程总结:安装 Node Exporter → 启动服务 → 配置 Prometheus → 重启 Prometheus → 验证抓取 → 查询指标。
这就是 Node Exporter 的使用。它让你可以监控系统的健康状态。
在下一节,我们将学习 Prometheus 数据模型。学习时间序列数据和指标类型,了解 Prometheus 如何存储和查询数据。