因为cacti默认5分钟采集一次数据进行绘图,采集精度不高,对要求高精度的采集需求,需要修改默认的采集精度。

1、修改rrdtool的存储大小

console-Management->Data Sources->RRAs

修改模板里面的参数

如下,比如采集一天的数据,按一分钟的精度

Name设置为:Daily (1 Minute Average)

Consolidation Functions设置为:max、min、avg和last

X-Files Factor修改为:0.5

Steps设置为:1

Rows设置为:1440

Timespan设置为:86400


参考模板参数如下

Daily (1 Minute Average)             1         1440     86400    
Weekly (6 Minute Average)          6         1680     604800    
Monthly (24 Minute Average)     24         1860     2678400    
Yearly (1 Hour Average)              60         8760     31536000    
Two Yearly (2 Hour Average)     120         8760     63072000


2、修改数据索引

console-Management->Templates->data templates

1、在Associated RRA's添加刚刚创建的5个RRD模板
2、将step设置为60(每60秒绘图一次)
3、将Heartbeat设置为120(120为超时时间)

3、修改计划任务crontab

*/5 * * * * /usr/bin/php /var/www/cacti/poller.php > /dev/null 2>&1

修改为

*/1 * * * * /usr/bin/php /var/www/cacti/poller.php > /dev/null 2>&1

4、删除rrd缓存,刷新一下网页图形就出来了


5、参数解疑

Steps设置为:a

Rows设置为:b

Timespan设置为:c


这三个数值的关系是,steps为每多少时间绘图一次,timesspan为时间跨度,rows为在这个时间跨度里面保存多少个数据记录

如一天的参数

steps设置为1:表示每分钟绘图一次

rows设置为1440:表示这一天存储1440行数据

Timespan设置为86400:表示一天的时间86400秒


rows默认存储数据最大值为10000,要想存储超过10000行的数据,需要修改lib/rrd.php文件中的参数maxrows

参考如下:

   /* basic export options */
   $xport_opts =
       "--start=$xport_start" . RRD_NL .
       "--end=$xport_end" . RRD_NL .
       "--maxrows=200000" . RRD_NL;

   $xport_defs = "";