如何在Node Exporter配置文件中指定采集器及Systemd服务?
统一配置Linux node_exporter与Windows windows_exporter的采集规则
Linux node_exporter 配置文件替代命令行参数
node_exporter支持通过YAML配置文件定义采集器及过滤规则,无需在systemd服务命令行中硬编码参数:
- 新建配置文件
/etc/node_exporter/node_exporter.yml,内容如下:
collector: enabled: ["systemd"] # 添加需要启用的其他采集器,如cpu、meminfo等 systemd: unit-include: "(promtail|node_exporter|ssh|chrony)\\.service"
- 修改
/etc/systemd/system/node_exporter.service的ExecStart行,引入配置文件:
ExecStart=/usr/local/bin/node_exporter --web.config.file="/etc/node_exporter/config.yml" --config.file="/etc/node_exporter/node_exporter.yml"
- 重载systemd配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart node_exporter
Windows windows_exporter 配置文件实现服务过滤
windows_exporter的service采集器默认监控所有服务,可通过配置文件指定需监控的服务,同时统一管理启用的采集器:
- 新建配置文件
C:\Program Files\windows_exporter\windows_exporter.yml,内容如下:
collectors: enabled: "cpu,cpu_info,cs,iis,logical_disk,logon,memory,net,os,process,remote_fx,scheduled_task,service,system,tcp,time,thermalzone" collector: service: include: # 正则匹配需监控的服务名称 - "^Promtail$" - "^node_exporter$" - "^sshd$" - "^Chrony$"
- 修改windows_exporter的启动命令(以系统服务为例,可通过
sc config修改):
sc config windows_exporter binPath= "\"C:\Program Files\windows_exporter\windows_exporter.exe\" --web.config.file=\"C:\Program Files\windows_exporter\config.yml\" --log.file eventlog --config.file=\"C:\Program Files\windows_exporter\windows_exporter.yml\""
- 重启windows_exporter服务使配置生效。
统一配置的落地方案
由于两个exporter的配置文件结构存在差异,可通过以下方式实现统一管理:
- 维护一份基础配置清单(如用Markdown表格或JSON文件),记录需启用的采集器、需监控的服务列表
- 编写自动化脚本(Ansible Playbook、PowerShell脚本等),将基础清单转换为对应平台的YAML配置文件,再分发到目标节点
- 确保配置文件权限符合系统要求:Linux节点需授予node_exporter用户读取权限;Windows节点需确保服务运行账户有配置文件访问权限
内容的提问来源于stack exchange,提问作者Hasan Bozok
相关产品推荐
相关产品推荐

