前言:

基础知识:建议先了解一下 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用的是自然月。

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

配置:

要为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 知识)。

只有网络流量图需要精度较高,所以我选择创建新的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,其数据保存的时间周期的计算表格如下:

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下的配置位置为:

# 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

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

Cacti修改采集精度为1分钟的更多相关文章

  1. 搭建配置cacti,采集信息监控

    安装cactilamp环境[iyunv@Cacti ~]#service iptables stop //关闭防火墙服务[iyunv@Cacti ~]#chkconfig iptables off / ...

  2. AD采集精度中的LSB

    测量范围+5V, 精度10位,LSB=0.0048 精度16位,LSB=0.000076951 测量范围+-5V, 精度10位,LSB=0.009765625,大约为0.01 精度16位,LSB=0. ...

  3. CentOS7 cacti 安装

    首先centos7 web环境的安装这里就不说了.安装cacti,首先得web环境配置好 其次添加两个用户,一个是cacti用于操作mysql的 cactimysql  一个是cacti操作Linux ...

  4. Centos Cacti 0.8.8g

    一.Cacti简介1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因 ...

  5. cacti安装

    cacti是一套基于PHP,MySQL,Net-SNMP及RRDTool开发的网络流量监测图形分析工具.它通snmpget来获取数据,使用RRDtool绘画图形,提供了非常强大的数据和用户管理功能,同 ...

  6. Cacti学习笔记一:基本安装和配置

    1.安装依赖包 yum -y install net-snmp-devel mysql mysql-devel openssl-devel libtool 2.安装RRDTool yum -y ins ...

  7. 开源监控系统整合Nagios+Cacti+Nconf详解

    1.配置好yum源,为了提高效率建议搭建本地yum源 yum install -y http*  yum install -y mysql*  yum install -y php-*  yum in ...

  8. centos7部署cacti

    一.centos部署cacti 1. 关闭selinux. 2.fabric一键部署lamp 3. 设置mysql密码123456 1 mysql_secure_installation 4. 安装s ...

  9. Hawk 3. 网页采集器

    1.基本入门 1. 原理(建议阅读) 网页采集器的功能是获取网页中的数据(废话).通常来说,目标可能是列表(如购物车列表),或是一个页面中的固定字段(如JD某商品的价格和介绍,在页面中只有一个).因此 ...

随机推荐

  1. css z-index属性使用过程中遇到的问题

    z-index属性在web开发中会经常使用,其主要的作用简单的说就是把元素的position设置为absolute.fixed之后,可以调节元素在文档上的层级关系.比如经常见到的dialog,mask ...

  2. 关于python如何简单跳出多层循环

    上述代码的逻辑是,在跳出子循环之前定义一个变量flag为Ture,第一层循环跳出之后,如果要跳出第二个循环,直接调用变量flag,可以直接跳出第二层循环.这里要注意的是缩进,不然会出错误. 如果是多层 ...

  3. css3 animation-fill-mode 对布局的影响

    问题描述:在小米手机上,animation-fill-mode设置为 both时,在手机上的web页面会超出屏幕宽度,出现滚动条. 解决方法:animation-fill-mode设为none. .p ...

  4. WAMPSERVER PHP版本5.3的降到 5.2?

    在这里下载5.2版本PHP,http://sourceforge.net/projects/wampserver/files/WampServer%202%20-%20Extensions/PHP/下 ...

  5. linux开机启动mongodb

    方式一(不推荐) ubuntu编辑/etc/rc.local /home/wyt/bin/mongodb-linux-x86_64-ubuntu1404-3.2.8/bin/mongod --dbpa ...

  6. 查看死锁 的存储过程 ,工具存储过程 sp_who_lock

    http://blog.sina.com.cn/s/blog_95b5eb8c010162jp.html if exists (select * from dbo.sysobjects where i ...

  7. 如何对web.config进行加密和解密

    http://blog.csdn.net/jf_jifei/article/details/6527390 在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的 ...

  8. css 多个不定数量提交按钮居中显示,纯css解决

    前几天在公司修改一个css 多个按钮居中问题,其实这样的问题很多前端程序员都遇到过,举个例子吧: 在一行中有三个按钮或是两个按钮...个数不定,然后间距固定:然后就有很多人把所有按钮放到一个div中, ...

  9. Linux GCC常用命令

    1简介 2简单编译 2.1预处理 2.2编译为汇编代码(Compilation) 2.3汇编(Assembly) 2.4连接(Linking) 3多个程序文件的编译 4检错 5库文件连接 5.1编译成 ...

  10. out.print()和response.getWriter().write()区别

    1.print()和write()区别: write():表示的是仅支持输入字符类型数据,字符,字符数组和字符串等, print():表示的是将各种数据类型(包括object)的数据通过默认编码换成b ...