必须部署Node_exporter才能实现Mac系统底层指标监控,可通过Homebrew一键安装、手动下载二进制、launchd后台常驻三种方式配置,并需将其加入Prometheus scrape_configs完成集成验证。

如果您希望在Mac系统上实现对CPU、内存、磁盘、网络等底层指标的实时采集与可视化监控,则必须部署Prometheus生态中的Node_exporter组件。以下是完成该配置的多种可行路径:
一、使用Homebrew一键安装(推荐新手)
Homebrew是Mac最主流的包管理工具,可自动处理依赖并简化二进制分发。此方式无需手动下载、解压或配置PATH,适合快速验证环境。
1、确保Homebrew已安装且为最新版本:
运行brew --version确认输出;若未安装,执行/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2、更新本地仓库索引:brew update
3、安装node_exporter:brew install node_exporter
4、验证安装是否成功:node_exporter --version应返回类似node_exporter, version 1.6.1的输出
5、启动服务(前台运行,便于观察日志):node_exporter --web.listen-address=":9100"
6、在浏览器中访问http://localhost:9100/metrics,确认返回大量以# HELP开头的文本格式指标数据
二、手动下载二进制文件安装(可控性强)
此方式绕过Homebrew,直接获取官方预编译二进制,适用于需指定版本、审计二进制来源或离线部署的场景。
1、前往Prometheus官方GitHub Releases页面:
访问https://github.com/prometheus/node_exporter/releases
2、查找最新稳定版(如v1.6.1),下载macOS ARM64或AMD64架构对应压缩包:
例如node_exporter-1.6.1.darwin-arm64.tar.gz
3、解压至本地目录:tar -xzf node_exporter-1.6.1.darwin-arm64.tar.gz
4、进入解压后目录并赋予执行权限:cd node_exporter-1.6.1.darwin-arm64 && chmod +x node_exporter
5、运行服务并绑定端口:./node_exporter --web.listen-address=":9100" --web.telemetry-path="/metrics"
6、检查进程是否监听成功:lsof -i :9100 | grep LISTEN应显示node_expor进程
三、通过systemd-like方式后台常驻(macOS兼容方案)
macOS不原生支持systemd,但可通过launchd机制实现开机自启与崩溃重启,确保Node_exporter长期稳定运行。
1、创建plist配置文件:
执行sudo nano /Library/LaunchDaemons/io.prometheus.node_exporter.plist
2、写入以下内容(注意替换YOUR_USERNAME为实际用户名):
<?xml version="1.0" encoding="UTF-8"?><br><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><br><plist version="1.0"><br><dict><br> <key>Label</key><br> <string>io.prometheus.node_exporter</string><br> <key>ProgramArguments</key><br> <array><br> <string>/opt/homebrew/bin/node_exporter</string><br> <string>--web.listen-address=:9100</string><br> </array><br> <key>RunAtLoad</key><br> <true/><br> <key>KeepAlive</key><br> <true/><br></dict><br></plist>
3、加载并启用服务:sudo launchctl load /Library/LaunchDaemons/io.prometheus.node_exporter.plistsudo launchctl start io.prometheus.node_exporter
4、验证服务状态:sudo launchctl list | grep prometheus应显示对应PID及状态码0
5、检查端口是否持续可用:curl -s http://localhost:9100/health | grep -i "ok"应返回{"status":"ok"}
四、验证Node_exporter与Prometheus集成
仅启动Node_exporter不足以完成监控闭环,必须将其纳入Prometheus抓取目标,否则指标无法被采集和存储。
1、确认Prometheus已安装并运行于本机(默认端口9090):
执行prometheus --version并访问http://localhost:9090确认Web界面可打开
2、编辑Prometheus配置文件(常见路径:/usr/local/etc/prometheus.yml或/opt/homebrew/etc/prometheus.yml):
在scrape_configs:下添加如下job:
3、插入以下YAML块(注意缩进为2空格):
- job_name: 'mac-node'<br> static_configs:<br> - targets: ['localhost:9100']
4、重载Prometheus配置(无需重启):
执行curl -X POST http://localhost:9090/-/reload
5、进入Prometheus Web界面,点击Status → Targets,确认mac-node状态为UP且Last Scrape时间戳为最近15秒内
6、在Graph标签页输入查询语句:node_cpu_seconds_total{mode="idle"},点击Execute,应返回时间序列图表

















