Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SNMP/MIB跟踪值和统计信息_Snmp_Snmp4j - Fatal编程技术网

SNMP/MIB跟踪值和统计信息

SNMP/MIB跟踪值和统计信息,snmp,snmp4j,Snmp,Snmp4j,在snmpwalk中迭代密钥的最佳方法是什么?我需要在不同的PC机、Linux和Windows的不同主板上查找网络统计数据。我知道1.3.1。。。。。这是不同的。如何执行“snmp获取eth0 mrtu值”之类的操作?或“snmp获取dsk”或“免费%” 我是否应该打开mibs目录下的每个mib,跟踪每个有意义的完整或无意义的键,即“dsk”或“net”,并尝试一下?什么价值适合我,把它放在一边 还是有一种“合法”的方法? 我需要让代码在java上运行,但我还不具备相关知识。要了解MIB,请使用

在snmpwalk中迭代密钥的最佳方法是什么?我需要在不同的PC机、Linux和Windows的不同主板上查找网络统计数据。我知道1.3.1。。。。。这是不同的。如何执行“snmp获取eth0 mrtu值”之类的操作?或“snmp获取dsk”或“免费%”

我是否应该打开mibs目录下的每个mib,跟踪每个有意义的完整或无意义的键,即“dsk”或“net”,并尝试一下?什么价值适合我,把它放在一边

还是有一种“合法”的方法?
我需要让代码在java上运行,但我还不具备相关知识。

要了解MIB,请使用SNMP GETNEXT操作。重复执行此操作以执行MIB漫游


请参阅。

在MIBII下,您有标准的MIB,可以在其中找到有关磁盘和接口的有用信息。您可以研究这些MIB并编写只返回必需计数器的代码。我认为从Windows到Linux可能有点不同,但事实并非如此。如果您确定远程计算机上存在eth0,则“snmp fetch eth0 mrtu value”是有意义的,因此您最好发现问题,然后轮询它们

记住:

SnmpWalk(正如@bstpiere所指出的)只不过是多个SNMP-GETNEXT/SNMP-RESPONSE,因此它是bandwith上的一个成本,并且结果不容易计算


通过简单的SNMP-GET/SNMP-RESPONSE,您可以检索多个计数器。

我想……这就是未来“自动发现”在各种产品中实现的方式?您是对的,但在SNMP“自动发现”中,只需返回一个类型化数据树,如果客户端上没有关联的MIB,它就没有太多意义。好的。我现在尝试做的是收集相互依赖关系。例如,我看到hrDeviceType,有hrDeviceProcessor或hrDeviceNetwork,或者……如果我收集了所有这些,我是否能够生成依赖对象的树并在之后获取值?这种方法对吗?我想也许这种方法在windows和linux的mashines中是不够的。我不确定你到底想做什么。但通常所做的是,客户端发现给定地址上有哪种SNMP主机(使用系统MIB),然后只选择所需的计数器。对!这是现在的关键。据我所知,为了收集不同机器所需的计数器,我必须这样做:简单示例。检查sysDescr我看到了Windows或Linux。在java代码中,我会写“你有Windows,然后你有enum_Windows。你有Linux?你有enum_Linux。当你有QNX,然后只是enum_未知。你找到hrDeviceProcessor了吗,然后挖掘hrProcessorTable,迭代这些值”。这是最好的方法吗?