每个人都知道,MRTG至少需要一个值才能传递给它的输入。
在每个目标选项中,MRTG具有“gauge”、“absolute”和默认(没有选项)行为“what to do with incoming data”。或者,如何计算。
让我们来看一个基本的,但很流行的例子:
我们从网络接口统计中传递“接口接收了多少数据包”的累积数据。
我们从“/proc/net/dev”中获取它,或者查看特定网络接口的“ifconfig”输出。每次接收的字节数都在增加。它是累积的。
所以我可以想象有两种可能的统计数据:
一。此值随时间间隔变化的速度。用他的话来说,就是活动。
2。很简单,就像不断增长的图表一样,每分钟(或任何其他时间间隔)都会绘制出每一个新值
第一个图形是咸的(活动)。第二个人每次都会长大。
我读了两遍rrdtool和MRTG的文档,不明白上面提到的哪个选项算什么。
我想(我不确定)gauge是按原样绘制值的,没有任何微分计算(适合测量每5分钟使用多少内存或cpu)。默认或“绝对”行为试图计算相邻度量之间的速度,但最后两个度量之间的差异是什么?
伙计们,你们能用一种简单的方式解释一下,在三种选择中的哪一种之后,哪一种行为是可能的吗?
提前谢谢。
最佳答案
MRTG假设每件事都是以一个速率来衡量的(即使它不是一个速率)
类型“gauge”假设您已经计算了速率;因此,所提供的值按原样存储(在数据正常化之后)。这适用于CPU使用率之类的情况。
类型“absolute”假定传递的值是自上次更新以来的计数。因此,该值除以自上次更新以来的秒数,以获得每秒thingies为单位的速率。这种方法很少使用,而且只适用于某些不寻常的数据源,这些数据源在被读取时重置其值—例如,一个脚本,它计算日志文件中的行数,然后截断日志文件。
类型“counter”(默认值)假设传递的值是一个不断增长的计数,可能是以16或64位环绕的。该值与其前一个值之间的差除以自上次更新后的秒数,以获得每秒thingies的速率。如果它看到值减少,它将假定一个计数器在16位或64位。这适用于网络流量计数器,这就是为什么它是默认行为(MRTG最初是为网络流量图编写的)
“派生”类型类似于“counter”,但将允许计数器减少(导致负速率)。这在MRTG中是不可能的,但是如果需要的话,可以手动创建必要的RRD。
所有类型随后执行数据规范化以将时间戳调整为间隔的倍数。这对于值较小的仪表类型比值较大的计数器类型更为明显。
有关此信息,请参见Alex van der Bogaerdt's excellent tutorial