我正在编写一个脚本,该脚本将监视来自 nagios 的特定主机上的流量。我已经研究了一些已经制作的脚本并收集了几乎所有我需要做的信息但是我在识别流量所需的 OID 时遇到了问题。我想使用 IF-MIB::ifOutOctets.1
和 IF-MIB::ifInOctets.1
来获取传入和传出流量,但是当我使用以下行进行测试时:
snmpwalk -v 1 -c public myComputer OID
我得到了两个 OID 的相同结果,这似乎不对。我在想是否还有其他我可以尝试的变量而不是我现在正在使用的变量。
即使您可以指出我在哪里可以找到有关 IF-MIB
的一些信息,它也会很有用,因为我可以使用 snmpwalk
获取所有值,但是我不知道如何解释它们
最佳答案
好的,经过一番搜索,我找到了答案。这些值是相等的,因为我没有问正确的接口(interface)(我问的是环回)。这个命令 snmpwalk -v 1 -c public hostname 1.3.6.1.2.1.31.1.1.1
列出了很多 OID,从那里你可以看到“IF-MIB::ifName”对于接口(interface)。如果您执行 IF-MIB::ifInOctets.x
,其中 x 对应于您感兴趣的接口(interface),您可以找到一个以字节为单位的数字。我不确定它是什么意思,或者它是如何生成的,但我测试了执行两次命令:
date ; snmpwalk -v 1 -c public myComputer ifOutOctets.x
以大约 1 分钟的间隔,然后我将这两个值相减,并将它们除以两次执行之间经过的秒数。我将该值与从 iptraf 获得的值进行了比较,它们有点匹配,所以我认为您可以使用这种方式通过 snmp 找到站点的流量。
关于网络流量的 SNMP OID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226688/