SNMP-从进程获取信息



我需要使用名为Zenoss的监控工具在多台服务器上设置一个进程监控器。我面临的问题是如何通过SNMP获取特定进程的信息?我对SNMP一点也不熟悉,很难找到我需要的东西。

我一直在尝试使用一种名为SNMP Probe的工具,但它似乎只提供基本的系统信息,而不是我需要或可以使用的信息。

感谢您的帮助。

您需要的是查询hrSWRunTable,以便收集所需的信息。该MIB为您提供了许多信息,如进程名称、路径、类型、状态、参数、CPU和RAM使用情况,即使这两个信息存储在另一个MIB(hrSWRunPerfEntry)上。然而,如何进行"查询"取决于您使用的环境,我几乎可以肯定vbs包括SNMP库。

以下是通过NetSnmp从Linux主机检索的示例(我本想把它作为对@raz3r接受的答案的评论来添加,但我想要格式化文本的能力!)

 snmptable -v2c -Ci -c public myserver  HOST-RESOURCES-MIB::hrSWRunTable
SNMP table: HOST-RESOURCES-MIB::hrSWRunTable
 index hrSWRunIndex       hrSWRunName               hrSWRunID                        hrSWRunPath                                                                                                                  hrSWRunParameters hrSWRunType hrSWRunStatus
     1            1            "init" SNMPv2-SMI::zeroDotZero                       "/sbin/init"                                                                                                                                 "" application      runnable
     2            2        "kthreadd" SNMPv2-SMI::zeroDotZero                         "kthreadd"                                                                                                                                 "" application      runnable
     3            3     "ksoftirqd/0" SNMPv2-SMI::zeroDotZero                      "ksoftirqd/0"                                                                                                                                 "" application      runnable
 // other rows snipped for brevity 

我只是在做同样的事情

snmpwalk-v2c-c公共xxx.xxx.xxx.xx.1.3.6.1.2.1.25.4.2.1.2

主机资源-MIB::hrSWRunName

不幸的是,我无法找到确切的方法。最后,我在每台机器上都使用了一个vbs脚本来查找行为不端的进程并自动将其杀死。

最新更新