Cacti修改采集精度为1分钟

前言:php

基础知识:建议先了解一下 rrdtool 及 rrd 数据库的工做原理,参考阅读《rrdtool学习笔记数据库

cacti主要使用了rrdtool这个工具来绘图,因此看上去比zabbix的好看,其实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分钟了的。框架

在 Data Sources 中,-rras 下面有 日、周、月、年的循环归档,这个地方就能够决定咱们数据保存周期。保存时间 = 时间 * rows 。咱们来看看默认的cacti 5分钟的保存时间:
基于以上公式,咱们算出来, (5 * 600) / 60m = 50h ≈ 2d工具

其它的时间均可以算出来。既然这样能够算出来的话,咱们能够反过来想,咱们要保存一个月的5分钟流量。应该怎么写rows呢?rows = (30d * 24h * 60m) / 5 ,这样写好rows以后,在一个月以内,你就能够看见那个月某一天的详细流量了。其中,要注意的是,时间,好比8月1号到8月31号 与8月1号到9月1号 是不一样的概念的,到了9月1号才算是过了一个月,cacti用的是天然月。post

这三个数值的关系是,steps为每多少时间绘图一次,timesspan为时间跨度,rows为在这个时间跨度里面保存多少个数据记录。
如一天的参数:
steps设置为1:表示每分钟绘图一次;
rows设置为1440:表示这一天存储1440行数据;
Timespan设置为86400:表示一天的时间86400秒。学习

配置:ui

要为Cacti配置1分钟的采集精度,在采集数据开始画图以前须要先作以下4个事情。url

  1. 建立1分钟的RRA;

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

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

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

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

只有网络流量图须要精度较高,因此我选择建立新的1分钟 RRA,保留5分钟的默认 RRA 给其余图用(好比 Filesystem space、Memory free 监控等)。

一、首先先建立须要的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,其数据保存的时间周期的计算表格以下:

image

二、在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”也再改一次。

最终如图:

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

Debian下的配置位置为:

# crontab -e

* * * * * 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

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

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

五、重建 Poller 缓存

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

六、删除本来的 .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

相关文章
相关标签/搜索