Prometheus无法获取Windows的CPU数据解决方法

在使用的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组件受损,需要修复。

你可能感兴趣的:(Prometheus无法获取Windows的CPU数据解决方法)