SNMP 的总数据使用历史记录

SNMP 的总数据使用历史记录

我正在开发一个项目,借助 SNMP 和 MRTG、RRDTool 来监控网络设备。作为带宽监控的一部分,我可以获得每个时间分辨率的最大使用带宽。

同时,我需要维护总数据使用量的历史记录。我知道可以从 vnStat 获得。但我不知道如何用 SNMP 来实现这一点。

答案1

从 SNMP 获取带宽的方法是查询计数器,最好是 64 位计数器 ( ifHCInOctets, ifHCOutOctets)。然后,您在已知时间段后查询同一个计数器,并进行简单的数学运算(其中C₁ 是第一个计数,并且C2 第二):

\mathrm{带宽} = \frac{c_2 - c_1}{t_2 - t_1}

那么有两种方法可以获取总字节数:

  1. 只需使用计数器即可。它会精确到计数器上次重置的时间——通常仅在网络设备重新启动时(尽管更频繁的是可能的)。

  2. 对一段时间内的带宽进行积分。或者更简单地说,如果您有当月的平均带宽,并将其乘以当月的长度,您将得到总带宽(毫无疑问,会有一些舍入误差)。

相关内容