Cacti修改采集精度为1分钟

      访问: 8,943 次      评论    

好,既然你来到这里,我想你的原因和目的都很清楚,我也就不费话了(不摘抄网上转来转去的重复内容了)。

基础知识:建议先了解一下 rrdtool 及 rrd 数据库的工作原理,参考阅读《rrdtool学习笔记》(好吧,如果你不想阅读,本文也可以给你一个清晰的指导来完成1分钟精度的修改!)。

要为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 如下:

这个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分钟精度):

最终如下:

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

High resolution settings 
RRA nameStepsRowsSpan
(Min)
Archive
(Min)
Archive
(Hours)
Archive
(Days)
poller frequency

1


Hourly (1 Minute Average) @ 1min1100801100801687
Daily (5 Minute Average) @ 1min5864054320072030
Weekly (30 Minute Average) @ 1min30432030129600216090
Monthly (2 Hour Average) @ 1min12021601202592004320180
Yearly (1 Day Average) @ 1min1440146114402103840350641461

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

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

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

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

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

2)Step改为60(秒):

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

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

最终如图:

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

Debian下的配置位置为:

# vi /etc/cron.d/cacti 

MAILTO=root
#*/5 * * * * www-data php /usr/share/cacti/site/poller.php 2>&1 >/dev/null | if [ -f /usr/bin/ts ] ; then ts ; else tee ; fi >> /var/log/cacti/poller-error.log
* * * * * www-data php /usr/share/cacti/site/poller.php 2>&1 >/dev/null | if [ -f /usr/bin/ts ] ; then ts ; else tee ; fi >> /var/log/cacti/poller-error.log

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

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

5、重建 Poller 缓存

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

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

# rm /var/lib/cacti/rra/*.rrd

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

# rrdtool info localhost_mem_buffers_3.rrd 


好了,等几分钟,刷新一下你的图试试。Good luck!


参考文章:Cacti and 1-minute polling


添加新评论