在使用的Prometheus的wmi exporter进行Windows监控时,会遇到CPU、 流量、磁盘等指标数据无法获取的情况。本文说一下解决方法。
先说结论:wmi exporter是通过Windows的WMI工具采集系统指标的,如果WMI这个工具有问题,那么监控工具肯定不会正常工作。
定位问题:打开wmi exporter暴露的URL,查看cpu组件采集状态,一般是 http://localhost:9182/metrics,搜索关键词,wmi_exporter_collector_success,发现cpu、disk、net的状态都是0,正常情况应该是1
# TYPE wmi_exporter_collector_success gauge
wmi_exporter_collector_success{collector="cpu"} 0
wmi_exporter_collector_success{collector="logical_disk"} 0
wmi_exporter_collector_success{collector="net"} 0
排错步骤1: 打开Windows自带的events查看器,发现报错
"Exception occurred : invalid class
排错步骤2: 打开 powershell,执行命令 Get-WmiObject Win32_PerfRawData_PerfOS_Processor,发现如下报错
Get-WmiObject : Invalid class "Win32_PerfRawData_PerfOS_Processor"
At line:1 char:1
得出结论:这个报错表示WMI的获取CPU的方法无法执行,Windows的WMI组件受损,需要修复。
网友评论