这有多难?我想从远程 Win 2k3 计算机获取当前 CPU 性能。我需要使用 SNMP,因为该计算机位于防火墙后面。
假设:
- 我了解网络/可以配置任何类型的 IP 地址/端口转发/防火墙/东西。
- 我了解 SNMP - 我知道如何使用我的工具从目标机器上的 OID 获取值。
- 我知道我想用 SNMP 请求的结果做什么。
- 我已经在 Windows Server 上启用了 SNMP,并配置了相关的 IP 安全/社区内容。
- 我已经可以使用 SNMP 询问 Windows 服务器标准内容它有多少个磁盘/网络接口等等。
问题:- 我使用什么 OID 来简单地询问当前的性能使用情况。
我花了很多时间向 Google 询问 - 显然问了错误的问题:S......这有多难?
答案1
用来snmpwalk
查看机器的报告,然后选择合适的内容:-)
对于 CPU 利用率,主机资源 MIB 提供了一个 SNMP 表,其中1.3.6.1.2.1.25.3.3
列出了每个 CPU 及其当前的利用率百分比,但这些值可能有些误导(100% 并不总是意味着您的系统超载)。
www.oidview.com是进行 MIB 浏览的好地方,它将为您提供 MIB 实体名称以及 OID。
答案2
没有任何用于“性能使用情况”的 OID,您需要进行自己的调查并确定要捕获的内容 - 来自 HOSTS MIB(CPU、RAM、磁盘空间)的很多东西都很常见,但您可能还关心特定于硬件的具体内容(例如特定于供应商的 RAID 卡。)
你使用什么工具?Nagios、OpenNMS 和 MRTG 都有常见场景的模板。
另外,请记住,如果您使用 SNMP v2,则您的社区字符串是明文。
答案3
您可以使用仙人掌在 Linux 或 Windows 上管理 snmp 数据和图表。它将自行发现 oid(使用预加载的模板)并为您生成图表(每日/每月...)它是开源的
答案4
我正在使用它Nagios
来Nagios graphs
及时监控 CPU、MEM 和磁盘负载,在 Windows 端我用它NSClient++
来连接Nagios
服务器
- 对于我使用的 CPU
check_nt_cpuload
,这是一个Nagios
插件, - 对于记忆我使用
check_memory
- 我用它
SNMP
来检查可用磁盘空间,也用来检查单个进程使用的内存,还用它来SNMP
检查进程占用了多少 CPU。我还设置了Nagios
在达到垃圾存储量时发送电子邮件(例如,服务器 1 上的内存已满)。
我花了大约 5 天的时间让它工作起来,现在我有大约 10 个挂载的日志,我可以知道在特定时间段内服务器的加载量