SNMP - 从进程中获取信息

3
我需要在多台服务器上使用名为Zenoss的监控工具设置进程监视器。我面临的问题是如何通过SNMP获取特定进程的信息?我对SNMP一点也不熟悉,我很难找到我所需的内容。
我一直在尝试使用一个名为SNMP-Probe的工具,但它似乎只提供基本的系统信息,没有我需要或可以使用的信息。
感谢任何帮助。
4个回答

2

这里是从Linux主机通过NetSnmp检索的示例。 (我本来想将其添加为@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 

2
你需要查询hrSWRunTable来收集所需的信息。这个MIB可以提供很多信息,比如进程名称、路径、类型、状态、参数、CPU和RAM使用情况,尽管这两个信息存储在另一个MIB(hrSWRunPerfEntry)中。不过,“查询”方式取决于你使用的环境,我几乎可以确定vbs包含了一个SNMP库。

1

我只是在做同样的事情。

snmpwalk -v2c -c public xxx.xxx.xxx.xxx .1.3.6.1.2.1.25.4.2.1.2

HOST-RESOURCES-MIB::hrSWRunName


对于表格,NetSnmp的snmptable提供比snmpwalk更友好格式的输出。 - k1eran

0

很遗憾,我无法确定如何准确地做到这一点。最终,我选择在每台机器上使用vbs脚本来查找不良进程并自动终止它。


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