好,既然你来到这里,我想你的原因和目的都很清楚,我也就不费话了(不摘抄网上转来转去的重复内容了)。
基础知识:建议先了解一下 rrdtool 及 rrd 数据库的工作原理,参考阅读《rrdtool学习笔记》(好吧,如果你不想阅读,本文也可以给你一个清晰的指导来完成1分钟精度的修改!)。
要为Cacti配置1分钟的采集精度,在采集数据开始画图之前需要先做如下4个事情。
创建1分钟的RRA;
在Cacti Data Source 模板中修改“Step”和“Heartbeat”的值;
在系统 cron 中修改 poller 的轮询时间间隔;
在 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 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):
注意 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