
robustintelligencehq/node-exporterPrometheus Node Exporter是Prometheus生态系统中的核心组件之一,作为官方节点级指标收集器,专门用于采集主机(物理机、虚拟机、容器主机等)的系统级运行指标。它通过HTTP端点暴露标准化的指标数据,供Prometheus服务器定期抓取并存储,结合Grafana等可视化工具可实现对主机资源利用率、性能瓶颈的实时监控和历史趋势分析。该镜像支持多操作系统平台,兼容Prometheus数据模型,是构建基础设施监控体系的关键组件。
支持Linux(x86_64/ARM/ARM64)、Windows、macOS等主流操作系统,可部署于物理机、虚拟机或容器环境。
采用模块化架构,内置数十种指标收集器(collector),支持按需启用/禁用特定指标采集(如--collector.cpu启用CPU指标,--no-collector.diskstats禁用磁盘统计指标),同时支持通过textfile收集器扩展自定义指标。
设计精简,运行时资源消耗低(通常占用数MB内存),对主机性能影响极小,适合长期后台运行。
指标数据格式完全符合Prometheus规范,默认通过HTTP端点(通常为:9100/metrics)暴露,可直接被Prometheus服务器配置为抓取目标。
/etc/node-exporter/textfile-collector)。bashdocker run -d \ --name node-exporter \ --net=host \ # 使用主机网络,确保能采集主机完整指标(推荐生产环境) --pid=host \ # 访问主机进程命名空间,获取准确的进程指标 -v "/:/host/root:ro,rslave" \ # 挂载主机根目录(只读),用于采集磁盘、文件系统指标 -v "/sys:/host/sys:ro,rslave" \ # 挂载sysfs(只读),用于采集系统硬件/内核指标 -v "/proc:/host/proc:ro,rslave" \ # 挂载procfs(只读),用于采集CPU、内存、进程指标 prom/node-exporter:latest \ --path.rootfs=/host/root \ # 指定主机根目录路径(与挂载路径对应) --web.listen-address=:9100 # 监听端口(默认9100)
说明:
--net=host和--pid=host为推荐配置,确保Node Exporter能获取完整的主机指标;若使用桥接网络,需映射端口(如-p 9100:9100),但部分主机级指标(如网络接口)可能采集不完整。
创建docker-compose.yml:
yamlversion: '3' services: node-exporter: image: prom/node-exporter:latest container_name: node-exporter restart: always network_mode: host # 主机网络模式 pid: host # 主机进程命名空间 volumes: - "/:/host/root:ro,rslave" - "/sys:/host/sys:ro,rslave" - "/proc:/host/proc:ro,rslave" # 可选:挂载自定义指标文件目录(若使用textfile收集器) - "./textfile-collector:/etc/node-exporter/textfile-collector:ro" command: - '--path.rootfs=/host/root' - '--web.listen-address=:9100' # 可选:启用特定收集器(默认大部分已启用) - '--collector.processes' # 启用进程指标收集 # 可选:禁用不需要的收集器 - '--no-collector.softnet' # 禁用softnet指标收集
Node Exporter通过命令行参数配置,常用参数如下:
| 参数 | 说明 | 默认值 |
|---|---|---|
--web.listen-address | HTTP服务监听地址和端口 | :9100 |
--web.telemetry-path | 指标暴露路径 | /metrics |
--path.rootfs | 主机根目录路径(用于容器化部署时指定宿主机根目录) | / |
--collector.<name> | 启用指定收集器(如--collector.cpu) | 大部分默认启用 |
--no-collector.<name> | 禁用指定收集器(如--no-collector.diskstats) | - |
--collector.textfile.directory | textfile收集器读取自定义指标文件的目录(文件需以.prom结尾) | - |
--collector.interval | 部分收集器的指标采集间隔(如--collector.loadavg.interval=10s) | 因收集器而异 |
部署后,需在Prometheus配置文件(prometheus.yml)中添加抓取规则:
yamlscrape_configs: - job_name: 'node-exporter' static_configs: - targets: ['localhost:9100'] # Node Exporter所在主机IP:端口
重启Prometheus后,即可在Prometheus UI中查询节点指标(如node_cpu_seconds_total、node_memory_MemAvailable_bytes等)。
部署完成后,可通过以下方式验证:
http://<主机IP>:9100/metrics,应返回Prometheus格式的指标数据。node-exporter任务状态为"UP"。--net=host,避免因网络隔离导致部分指标(如网络接口)采集不完整。ro(只读),防止容器内误操作影响主机。/proc、/sys等目录。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务