有约不来过夜半,闲敲棋子落灯花。

黄梅时节家家雨,青草池塘处处蛙
有约不来过夜半,闲敲棋子落灯花
首页 » IT技术 » Cacti修改采集精度为1分钟和rrdtool保存图的时间详解

Cacti修改采集精度为1分钟和rrdtool保存图的时间详解

基础知识:建议先了解一下 rrdtool 及 rrd 数据库的工作原理,参考阅读《rrdtool学习笔记》要为Cacti配置1分钟的采集精度,在采集数据开始画图之前需要先做如下4个事情。

1.     创建1分钟的RRA

2.     在Cacti Data Source 模板中修改“Step”和“Heartbeat”的值;

3.     在系统 cron 中修改 poller 的轮询时间间隔;

4.     在 Cacti 配置中修改 poller 的轮询时间间隔。

之所以首先要创建1分钟的RRA,是因为一旦使用了错误的RRA采集数据,那么就比较难修正了,意味着旧的数据要被丢弃重新开始收集(虽然在某些情况下可以通过rrdtool的 dump 和 restore 功能来在原有数据的基础上进行修改,但那需要比较好的掌握 rrdtool 知识)。

以我的VPS为例,只有网络流量图需要精度较高,所以我选择创建新的1分钟 RRA,保留5分钟的默认 RRA 给其他图用(比如 Filesystem space、Memory free 监控等)。

1、首先先创建需要的1分钟RRA:

 “Console” -> “Management” -> “Data Sources” -> RRAs ,Cacti 默认的 RRAs 如下:

XWQ]NYZSRUE[82_(8VCDC{E.png

这个RRA的定义可以决定我们不同精度的数据最大保存周期,保存时间 = Step * Steps * Rows 。比如默认的Cacti 5分钟精度的 Daily (5 Miniute Average) 这个RRA精度的数据保存时间为:(5 * 1 * 600) / 60m = 50h ≈ 2d,注意:

  • “Step”是步进时间,是在 Data Source 中定义的,Cacti 的话就是我们下面第二步提到的在 Data template 里定义的 Step 值(单位秒);

  • “Steps”是步进个数,即是指上图 RRA 中定义的 Steps 值;

  • 注:这个保存时间不是上图中的 Timespan 的值,Timespan 指的是我们点击某一个图之后出现的 详细几个分时间段的图中 显示的时间段的长度。

好了,正式开始我们的RRA修改和创建方法说明。

为了区分,我们把默认的5分钟精度的RRA的名字修改一下(别担心,Cacti是用ID来标识它们的),如果想保存的时间周期更长,把 Rows 数量也改大;

然后,我们创建新的1分钟精度的RRAs,比如(@min 表示1分钟精度,@5min表示5分钟精度):

916ZAII$QN(7UCSP`OGA4R2.png

最终如下:

8GV1H@8IM4RZR0MUWHUX)UV.png

我们创建的1分钟精度的RRA,其数据保存的时间周期的计算表格如下:


High resolution settings 

RRA name

Steps

Rows

Span
  (Min)

Archive
  (Min)

Archive
  (Hours)

Archive
  (Days)

poller frequency



1




Hourly (1 Minute Average) @ 1min

1

10080

1

10080

168

7

Daily (5 Minute Average) @ 1min

5

8640

5

43200

720

30

Weekly (30 Minute Average) @ 1min

30

4320

30

129600

2160

90

Monthly (2 Hour Average) @ 1min

120

2160

120

259200

4320

180

Yearly (1 Day Average) @ 1min

1440

1461

1440

2103840

35064

1461


2、在Data Source模板中修改“Step”和“Heartbeat”

“Console” -> “Templates” heading -> “Data Templates”

选择 Interface - Traffic 模板进行修改:

1) “Associated RRAs”,选择我们刚才创建的 @1min 的RRAs(去掉原选择的 @5min 的RRAs):

IKD)Z@_2A9Z6M1HGZQTGMZO.png

注意 Steps 为1的那个 Hourly RRA 为必选,否则你的图还是5分钟一个点。

2)Step改为60(秒):

1.png

3)Hearbeat改为120(秒,Step的2倍):

2.png

4)页面下方点“Save”,然后注意把 标签“2: traffic_out”的“Heartbeat”也再改一次。

最终如图:

I`H`$KWI2`LSY`~{_%%VEZN.png

3、修改 cron 中的Poller轮询间隔时间为1分钟

#crontab -e

*/1 * * * * php /home/wwwroot/default/cacti/poller.php >/dev/null &2>1

 

4、在Cacti配置中修改Poller的轮询时间间隔

“Console” -> “Configuration” heading -> “Settings”,点击“Poller”标签

WSLZSLJX7%EL4JZN)}[8Y3V.png

5、重建 Poller 缓存

“Console” -> “Utilities” heading -> “System Utilities”,点击“Rebuild Poller Cache”。

6、删除原本的 .rrd 文件,等1分钟后 cacti 重建。

rm /home/wwwroot/defautl/cacti/rra/*.rrd

原因是我们修改了所有的RRAs(默认的5分钟的也修改了 rows 数),原来使用旧的RRA生成的rrd文件的定义,还是旧的;用 rrdtool 命令可以查看rrd文件的信息:

rrdtool info localhost_mem_buffers_3.rrd 
好了,等几分钟,刷新一下你的图试试。Good luck!



实际案例:

如果你在用cacti的话,一定对关于Cacti数据采集精度,rrdtool所画的监控保留时间感兴趣,那就继续往看……

使用Cacti的各维友一定发现了此问题,默认的Cacti监控图形是以日、周、月、年 4个时间,每个时间都可以任意缩放查看,但是大家肯定也发现了, 默认的情况下,日图是每5分钟频率的平均值,周图是30分钟,月图是2小时,年图是1天;这样的话,如果查看一周前的图就会比当时的实际图相差很大,监控值会低不少,查看一月或一年之前的就会相差更大;这里我们来说说怎么解决此问题,或者说是缩小差值;

Cacti主要是通过rrdtool这个工具来绘图的,其实cacti只是个构造比较合理的框架。rrdtool 有一套自己的数据文件供其绘图使用,Cacti主要使用了,rrdtool create, rrdtool graph, rrdtool update 三个功能,rrdtool的数据文件,和一般关系型数据库不同的地方在于,它是环形数据库,一个特别依赖时间的数据库。在前面我们说过了,在实际生产环境中,默认的Cacti图形是以日、周、月、年 4个时间,每个时间都可以任意缩放查看,但是大家应该发现了, 默认的情况下,日图是每5分钟频率的平均值,周图是30分钟,月是2小时,年图是1天,而这些又代表什么意思呢?下面会简单解释一下。

大家在看当天的流量图的时候(5分钟) 会发现,它是5分钟一个点,两个点之间画一条直线的。这样一天下来会有288个点了,这样就形成了一天的流量图。一般情况下,我们每天生成的数据,会一直不停的变化更新,会有N个288,数据文件会变的无限大的。rrd文件就不会这样,之前说过了它是环形数据库,就在于他会合并数据。比如看周图的时候, 你绝对看不了5分钟一个点的,为什么呢?这个就是因为数据被合并了。6个5分钟的点,合并成为周图中的一个点,也就是说,12个5分钟点才画成周图中的一条线。月、年都是依次类推。合并之后是如何取值呢,默认情况下,是取平均的,也就是为什么时间越大,数据越小的原因了,时间越往前推差值就会越大。

既然在当天可以看见5分钟的流量图,那么多久之后就看不了,只能看见30分钟的图了呢?在默认情况下,5分钟的图是保存50小时的,也就是说2天内,你还可以看见那天的5分钟图,比如8月1号的流量图在8月2号还可以看见,到了3号就只能看见30分钟了的。
    在【Console】-【Management】-【Data Sources】中,【---rras】下面有 日、周、月、年的循环归档,这个地方就可以决定我们数据保存周期。保存时间 = 时间 * rows 。我们来看看默认的Cacti 5分钟的保存时间:
基于以上公式,我们算出来 (5 * 600) / 60m = 50h ≈ 2d
    其它的时间都可以算出来。既然这样可以算出来的话,我们可以反过来想,我们要保存一个月的5分钟流量。应该怎么写rows呢?rows = (30d * 24h * 60m) / 5 ,这样写好rows之后,在一个月之内,你就可以看见那个月某一天的详细流量了(5分钟平均值)。其中,要注意的是,时间,比如8月1号到8月31号 与8月1号到9月1号 是不同的概念的,到了9月1号才算是过了一个月,Cacti用的是自然月。
参数解疑:
Steps(步进、步伐)设置为:a
Rows(行)设置为:b
Timespan(时间段)设置为:c
这三个数值的关系是,steps 意思是每多少时间绘图一次,timesspan 意思是某时间段、时间跨度,rows 意思是在这个时间跨度里面保存多少个数据记录。
如一天的参数:
steps设置为1:表示每分钟绘图一次;
rows设置为1440:表示这一天存储1440行数据;
Timespan设置为86400:表示一天的时间86400秒。
采集精度详细的修改实例,直接参考修改即可:
  因为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
参考模板1分钟,参数如下:
Names Steps Rows Timespan**
Hourly (1 Minute Average)1  1440  86400
Daily (1 Minute Average) 1  1440  86400
Weekly (1 Minute Average) 1  10080  604800
Monthly (1 Minute Average)1  44680  2678400
Yearly (1 Minute Average) 1  525600  31536000

                                  000.png

参考模板5分钟,参数如下:
Names Steps Rows Timespan**
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


案例实验成功。

本文转自:https://www.idcyunwei.org/post/135.html

文章如无特别注明均为原创! 作者: 苦作舟, 转载或复制请以 超链接形式 并注明出处 池畔闲坐
原文地址《 Cacti修改采集精度为1分钟和rrdtool保存图的时间详解》发布于2020年7月27日

分享到:
打赏

评论

游客

看不清楚?点图切换