创建一个文件,time_get_page.sh

#!/bin/bash
begin_time=`date +%s%N`
curl  -s  -H ‘Host: bbs.iammecn.com’ $1 >/tmp/tmp
end_time=`date +%s%N`

let time1="$end_time"-"$begin_time"
let time1="time1/1000000"

begin_time=`date +%s%N`
curl  -s  -H ‘Host: www.iammecn.com’ $1 >/tmp/tmp
end_time=`date +%s%N`

let time2="$end_time"-"$begin_time"
let time2="time2/1000000"

printf misstime:$time1 
printf " "hittime:$time2

运行这个脚本的结果,后面加上你要监控的机器的IP后,运行结果如下:

misstime:2913 hittime:2492

获得两个值,我是选取了两个不同的页面,一个是需要不缓存的,一个是需要缓存的,所以分别代表了misshit的时间。

2. 登陆cacti,然后在Data Input Methods添加一个新的数据来源

 

名字随便起了,然后选择”scripts/command” ,路径那里填写:

sh <path_cacti>/scripts/time_get_page.sh  <ip>

Input Fields里添加一个IP“Special Type Code”里填写hostname

Hostname就是指在你的Devices里指定的主机名了,从来获取你的主机名

Output Fields 里再输出两个值

就是上面脚本里输出的两个值,分别是httime,misstime

3. Data Templates ,创建数据模板

“Data Input Method”就选刚才创建的那个数据来源

下面再添加两个TAB

主要是选对”Output Field”这个值的来源

4.然后再创建Graph Templates

同样是创建一个新模板,下面的名字你随便起,如下图:

重点来了,接下来是如何创建图形了,如下图:

ADD一个图形,如下图:

 

Data Source 选择你刚才创建的数据模板中一个,如我选择了MissTime

颜色随便选择了,只要看着习惯就行。

Graph Item Type 就是你绘制的图形类型,比如是一根线还是面积图?我这里选择的是LINE1,绘制出来的图形如下图所示。

Consolidation Function一般来说选择Aveage,这样会让你的图平滑

“CDEF Function”就除以1024,我这里是跟据我自己的情况来弄的,因为我上面那个脚本是取了纳秒级的数据,如果不加以处理就会很大,不处理,以秒级的话,区间也太小了,对于某些细微的网络状态可能觉察不出来。

Text Format 就是你的图形说明了,一般来说横坐标是时间,纵坐标就是你的数值了,你可以在纵坐标上放尽可能多的数据,只要不影响你的眼睛。

接下来再打印一些文字,主要就是来说明这个图形的,显示最大,最小,平均值等

如下图:

下图就是取当前值:

 

类型选择“GPRINT”,并选择“LAST”,最后选择Insert Hard Return,这样是为了换行。

5. 到这里基本上已经完成了图形模板制作的全过程了,你可以在Devices里把所要加的图形附加到设备上,然后和正常的制作一般图片一样了。

以下是我一天时间获取的图形:

 

你可以清楚地了解到主机的运行和网络状况了。

在补充一些上面说的大体上已经够详细的了但是有几个细节是我碰到的可能你们也会遇到:

就是创建图像时,如果想要画图就是要选则AVERAGE,其他会报错的,并不是说不能选择LAST MIN MAX  选择AVERAGE后,然后后面在选在gprint 在选择LAST MIN MAX 就可以看到当前值和最小和最大了,可能也可以把LASTMIN MAX 放到画图的那个参数那,不过还是报错,至今没弄明白,为什么画图时只能选择AVERAGE,选择CDEF fuction 时的参数,是一定要看清楚,

 

如果你的脚本输出不是一个值,而是多个值,那你更要注意了,你要确定是用一个rrd文件还是多个rrd文件,或者说是用一个DTP还是2DTP,如果用1DTP那么你就要在1DTP上面创建2LABLE,如果用2DTP,就应该注意你的脚本输出值,是不是就该改成11个的输出了,依据的是你的输入值。还有 刚开始时rrdtool画出的图,明明是2个值,可是我的图像上显示的两个值是一摸一样的,也就是说我的2LABLE 都取得是同一个值,把我困扰了老半天,无论我怎么设置,2张图像,显示的值就是一摸一样,我用rrdtool fetch 查看rrd文件的值都是不一样的,但是显示的就是一摸一样,我快疯了,最后哪错了,我勒个去。。。

  

  不错,就是在图像设置那 选择CDEF的 fuction 选择错了,擦 ,没把我气死,改回来一切搞定,现在好多了, 记住,没有图像并不可怕,权限是80%的可能导致的,好好检查检查,时间长了,可能会有点乱,出去走走,回来还接着看,技术这东西不是靠别人教出来的,而是靠自己不断摸索出来的,加油!

DS

DT

graphs

DS input

好好检查检查设置对了吗

set里面这只对了吗 public名有没有改过。。。。。。。