如何通过SNMP或其他方式监测Windows CPU和风扇温度

4
我希望监控Windows机器的三种数据: CPU温度, 风扇温度, 以及风扇速度,每5分钟检索一次这些数据。如果这些数据可以通过SNMP检索,那是我的首选。
我想知道这些数据的根数据源来自Microsoft还是主板供应商。如果它们来自Microsoft,则它们的OID应该以1.3.6.1.4.1.311开头;如果它们来自主板供应商,则它们的OID应该以1.3.6.1.4.1.[主板供应商私有SNMP供应商OID]开头。例如,对于HP服务器机器,其OID为1.3.6.1.4.1.11,其中11代表HP的私有SNMP供应商OID。
1个回答

5
如果您只想知道如何查询Windows机器的相关SNMP数据,那么这可能不是正确的网站来提出这个问题,因为它是一个专门针对软件开发的问答网站。您可以更好地在Server-Fault上提问 - 这里有一个类似的问题
硬件特定的SNMP监视的OID通常是供应商特定的。通常,您需要适用于您特定硬件的管理信息库(MIB)文件,以提取关于哪些OID适用于您需要的数据的信息 - 据我所知,CPU和风扇温度不是通用的SNMP属性。
如果您无法找到硬件设备的MIB(或者您的特定硬件没有SNMP代理),那么有一个名为SpeedFan的Windows软件,它具有SNMP插件,允许您通过SNMP监视CPU和风扇温度。但是,这需要在您希望监视的所有机器上后台运行SpeedFan软件。 SpeedFan软件SNMP插件的OID是:
Temperature: .1.3.6.1.4.1.30503.1.5.x
Fans:        .1.3.6.1.4.1.30503.1.6.x
Voltages:    .1.3.6.1.4.1.30503.1.7.x

要开始在Windows客户端机器上监视此SNMP数据,您通常需要执行以下操作:

  1. 安装 SNMP代理服务
  2. 配置 SNMP服务
  3. 安装Speedfan
  4. 安装Speedfan SNMP插件
  5. 确定哪些OID与您的硬件相关(使用SpeedFan或特定于供应商的MIB)
  6. 使用SNMP工具执行SNMP walk或SNMP get以获取相关SNMP数据。

使用命令行工具netsnmp,可以像这样遍历SNMP树:

snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.30503.1.5

假设您的社区字符串为“public”,并且您想在此示例中遍历计算机的“SpeedFan温度”子树。
用于查看snmp数据的带有gui的便捷客户端工具是mibbrowser
链接到Server-Fault Q&A还提供其他有用信息和各种SNMP监视软件解决方案的链接,如nagiosopennms等。

谢谢您的回复。我没有表达清楚。我想知道这些数据是否可以通过SNMP收集。如果可以,我想知道应该使用哪个OID。 - alan
@alan 我已经编辑了我的答案,添加了一些关于使用SpeedFan及其SNMP插件提供CPU/风扇温度测量的特定信息。在我经验中,用于温度测量的OID并不是标准化的 - 尽管我参与的大多数SNMP工作都是测量工业设备而不是Windows PC。 - Matt Coubrough

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接