发表于: 2004-03-11 11:03 发表主题: MRTG使用经验点滴
作者:loleeve
E-Mail:loleeve_at_hotmail.com
loleeve_at_creawor.com
发表日期:2004-3-10
这是使用MRTG时的一些笔记,比较零散,拿出来献丑了。
使用的MRTG版本是2.10.13
[1]怎样把表示输入与输出的图形互换?(输入用蓝线,输出用绿线)
把.cfg文件里面的
Target[myRouter_1]: 1:public@192.168.0.1
改为
Target[myRouter_1]: -1:public@192.168.0.1
也就是在对象前面加一个"-",然后再把LegendI和LegendO调转过来:
LegendI[myRouter_1]: 流出:#默认是流入:
LegendO[myRouter_1]: 流入:#默认是流出:
[2]如果要直接使用OID对象应该如下
Target[myRouter_1]: .1.3.6.1.2.1.2.2.1.14.1&.1.3.6.1.2.1.2.2.1.20.1:public@192.168.36.1
一定要在OID前面加一个".",不然肯定报错!(在MRTG附带的例子里面都不带".",不知道为什么???)
而且是必须用"&"把两个OID连起来,如果要显示一个变量就让这两个OID一样。
也可以通过.cfg文件里面添加noi或者noo去掉输入或者输出。
[3]输出HTML支持中文,在.cfg文件里面加上Language:chinese
[4]添加默认设置:
YSize[_]: 150
WithPeak[_]: ymw
Suppress[_]: y
MaxBytes[_]: 1250000
在[]里面加上"_"代表默认设置
[5]MRTG的默认设置是用作流量统计,每隔5分钟对路由器的“字节计数器”取样,然后两次计数器的值相减再除以时间间隔(300秒)得到速度
。但是对于CPU负载等不是速度量的参数就不能这样计算了,必须加上:
Options[_]: gauge
gauge是指只显示当前取样值,不进行速度计算
[6]
是不是有时觉得Web显示的当前速度有点不准,老是跟.log文件里面的速度差那么一点,小弟研究了一下,不知道对不对
MRTG *.log文件的速度算法:
由于MRTG启动时间(也就是取样时刻)并不可能刚好是300秒的整数倍,而MRTG的.log文件记录的都必须是300秒整数倍时间的数据,所以必须
把取样时刻速度换算成300秒整数倍时刻的速度。
*.log文件如下:
1078877463 4075433202 3384657373 #当前counter取样值
1078877463 55767 4614 55767 4614 #当前取样时刻的速度
1078877163 38754 3031 38754 3031 #上一个取样时刻的速度
1078877100 37193 2916 38754 3031 #300秒整数倍时刻的速度
1078876800 28311 2292 31324 2487
1078876500 13845 1343 16978 1562
1078876200 1812 456 2060 520
1078875900 729 199 882 219
…
第一行是当前counter取样值,第二行是当前取样时刻的速度,该速度是1078877463时刻与1078877163时刻计数器的差除与300秒,1078877163
的计数值在.old文件里面。第三行是上一个取样时刻的速度,第四行是上一个300秒整数倍时刻的速度,注意这个速度并不是当前Web显示的当
前速度,Web页面显示的当前速度应该是与当前取样时刻最接近的300秒整数倍时刻的速度,在这里就是1078877400时刻的速度,它计算如下:
v =( 55767 * (1078877400 – 1078877163) + 38754 * (1078877463 - 1078877400) )/300= 52194
关键是每个速度都是必须是300秒的平均值,v的时间区间跨在两个速度55767和38754之间,要对这个区间积分,然后求平均除以300。