设为首页 收藏本站
查看: 1032|回复: 0

[经验分享] 5、为Cacti安装插件,通过数据库修改所有模版的step

[复制链接]

尚未签到

发表于 2019-1-10 13:41:10 | 显示全部楼层 |阅读模式
  批量修改Data Templates的step以及给Cacti安装插件
  由于cacti-0.8.8a.tar.gz 这个版本已经安装上了插件管理工具所以这里不需要再安装cacti-plugin-0.8.7h-PA-v3.0.tar.gz,直接可以解压安装插件。
  安装settings插件
  官网下载地址:
  http://docs.cacti.net/plugin:settings#settings
  [root@radius ~]# cd /usr/local/nginx/html/cacti/plugins
  [root@radius plugins]# wget http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz
  [root@radius plugins]# mv plugin\:settings-v0.71-1.tgz settings-v0.71-1.tgz
  [root@radius plugins]# tar -zxvf settings-v0.71-1.tgz
  安装thold 插件
  官网下载地址:
  http://docs.cacti.net/plugin:thold#thold
  [root@radius ~]# cd /usr/local/nginx/html/cacti/plugins
  [root@radius plugins]# wget http://docs.cacti.net/_media/plugin:thold-v0.4.9-3.tgz
  [root@radius plugins]# mv plugin\:thold-v0.4.9-3.tgz thold-v0.4.9-3.tgz
  [root@radius plugins]# tar -zxvf thold-v0.4.9-3.tgz
  问题㈠:
  如果单击出现500错误解决办法
  排错步骤:
  1、 试打开php.ini中的display_errors=on看能不能显示出错误来。
  2、 在命令行执行/usr/local/php/bin/php –rf define_syslog_variables看是否支持define_syslog_variables函数
  3、 define_syslog_variables是在初始化与 syslog 相关的变量,而syslog相关变量已经被全局定义,无需再定义,直接注释掉settings.php 132行即可。
  4、 http://www.centos.bz/2012/01/cacti-install-tutorials/
  注释掉132行

  问题㈡:
  如果点击http://better.blog.运维网.com/attachment/201305/13/1886029_1368429097DPb3.jpg出现 You are running MySQL in Strict Mode,which is not supported by Thold 就需要修改sql模式一般在安装好MYSQL之后就修改最好,因为你装好CACTI再来修改你的数据库就会出问题

  mysql> SET @@GLOBAL.sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
  增加如下一行
  [root@radius ~]# vim /etc/my.cnf

  2013年5月13日 13:32:48
  今天发现重启之后又出现这个问题了
  You are running MySQL in Strict Mode, which is not supported by Thold.
  2013年5月13日 14:02:51
  找到问题所在,因为配置文件路径不正确,配置文件路径是(下图)我修改的却是/etc/my.cnf,各种坑啊

  修改内容如下,修改成空的,或者注释掉就OK

  安装monitor插件
  官网下载地址:
  http://docs.cacti.net/plugin:monitor
  [root@radius ~]# cd /usr/local/nginx/html/cacti/plugins
  [root@radius plugins]# wget http://docs.cacti.net/_media/plugin:monitor-v1.3-1.tgz
  [root@radius plugins]# mv plugin\:monitor-v1.3-1.tgz monitor-v1.3-1.tgz
  [root@radius plugins]# tar -zxvf monitor-v1.3-1.tgz
  配置报警功能如下图



  2、通过数据库修改所有模版的step
  查询所有Data Templates的step
  [root@radius bin]# cd /usr/local/mysql/bin/
  [root@radius bin]# ./mysql -uroot –p
  mysql> use cacti;
  mysql> select id,t_name,name,t_rrd_step,rrd_step from data_template_data;
  修改所有Data Templates的step
  [root@radius bin]# cd /usr/local/mysql/bin/
  [root@radius bin]# ./mysql -uroot –p
  mysql> use cacti;
  mysql> update data_template_data set rrd_step='60';
  以下内容为可选笔记
  修改rrd文件
  查询现有rrd的step
  [root@radius ~]# /usr/local/rrdtool/bin/rrdtool info /usr/local/nginx/html/cacti/rra/localhost_load_1min_5.rrd |grep step
  修改现有rrd的step
  下载rrdjig.pl工具
  [root@radius src]# wget https://svn.oetiker.ch/rrdtool/trunk/contrib/rrdjig/rrdjig.pl
  新增环境变量
  [root@radius ~]# vim .bash_profile
  增加如下内容
  PERL5LIB=/usr/local/rrdtool/lib/perl
  export PERL5LIB
  完整配置如下:

  使环境变量生效
  [root@radius ~]# . .bash_profile
  rrdtool tune 常用用法
  rrdtool tune 常用语句如下:   
  1
  2
  3
  4
  5
  rrdtool tune filename
  [--heartbeat|-h ds-name:heartbeat]
  [--data-source-type|-d ds-name:DST]
  [--data-source-rename|-r old-name:new-name]
  [--minimum|-i ds-name:min] [--maximum|-a ds-name:max]

  例:如下是我们建的数据结构
  /usr/bin/rrdtool create traffic1.rrd --start $(date -d '1 days ago' +%s) --step 60
  DS:In:COUNTER:600:0:U
  DS:Out:COUNTER:600:0:U
  RRA:AVERAGE:0.5:1:600
  RRA:AVERAGE:0.5:4:700
  RRA:AVERAGE:0.5:24:775
  RRA:AVERAGE:0.5:288:797
  如上可以看到heartbeat 是600  dsname有两个In 和Out  DStype 是COUNTER   
下面几条命令是我们常用的。
  rrdtool tune traffic.rrd  -h In:300 修改In 的heartbeat的值为300   
rrdtool tune traffic.rrd  -d In:GAUGE  修改In 的DST为GAUGE   
rrdtool tune traffic.rrd  -r In:traffic_in   修改数据源In 为traffic_in (在mrtg 生成的log文件转换rrd,再导入cacti做图的时候,要用到此命令转换)   
rrdtool tune traffic.rrd  -i In:800 -a In:1024     修改数据源In 最大值和最小值
  rrdtool思维导图

  RRDTool基础
  ? RRDTool介绍
  RRDTool是基于RRD数据库来存储时间序列数据,并在需要的时候能够很轻易产生漂亮图表的一套工具包。常用于监控领域,比如监控温度、湿度、流量、CPU、内存、磁盘等等。
  ? RRD介绍
  为什么监控数据采用RRD数据库来存储,如果采用关系数据库将其记录下来有什么问题呢?   
1. 首先,监控一般是7*24小时不间断进行的,长期积累下数据量很大,来给运维带来沉重负担。   
2. 其次,我们对监控数据的关注点也不一样,通常对最近的数据比较关心,而对一年前的数据就只关心一个大致趋势即可。   
3. 再次,我们需要将数据转化为图表以观察变化趋势,如果数据从关系数据库取的话,数据量多、还慢,用户感知也不好。   
RRD(Round Robin Database)最大的特点是以循环格式来存储时间序列格式,在持续不断插入新数据的过程中它不断将老数据淘汰掉,因此它不会积累太多的数据,RRD文件大小也会保持在一个合适的范围内。在使用RRDTool之前,首先需要建立RRD数据库,然后持续将监控数据更新至RRD,最后再将数据从RRD中取出来生成趋势图。建议RRD数据库需要涉及两个概念,一个是数据源DS,一个是循环存档RRA。下面我们就来说说什么是DS和RRA。
  ? 数据源DS
  我们将采样来的数据放到哪里,以后出图就从那个地方(数据源)取数据。每个RRD文件可以定义多个DS,也就是一个RRD里可以同时保持多个对象的采样数据,这就方便以后我们将这些数据绘制到同一张图表中对比分析。定义数据源最重要的就是给源取个名字,以及指定其类型。   
语法 DS:name:type:heartbeat:min:max   
– name:数据源的名称,长度为1-19个字符   
– type:数据源类型,COUNTER:累计,GAUGE:离散   
– heartbeat:心跳时间,当心跳时间内仍未采样到监控数据时,将此step时间点填充为UNKONWN,一般设置为两倍step,或者取前后采样的平均值   
– min:最小数据界限,在不需要限制的情况下,可以指定为U   
– max:最大数据界限,在不需要限制的情况下,可以指定为U
  ? 循环存档RRA
  DS里源源不断的记录着新采样回来的数据,我们会如何使用这些数据呢?当然是按照指定的时间周期来绘制走势图表了,就好比我们看股票走势图,有时看日线,有时看周线,有时看月线,有时看年线。RRA就是RRD的日线、周线、月线、年线!每个RRD可以定义多个RRA,一个5分钟为周期的RRA,一个半小时为周期的RRA,一个2小时为周期的RRA,等等。之所以定义这么多的RRA是方便以后快速出图,每个RRA都是即时更新,也就是新来一个采样数据,所有的RRA就会计算一次并保存下来,以后要出图就直接从某个RRA中取数据就好了,不需要在出图时再重新计算平均值什么的。   
语法 RRA:cf:xff:steps:rows   
– CF: 聚合函数,定义如何对数据进行聚合[平均:AVERAGE | 最小:MIN | 最大:MAX | 最后一笔:LAST]   
– xff: 聚合时可以容忍多少个UNKOWN值,这个是UNKOWN个数和全体个数的一个比率,一般定义为0.5   
– steps: RRA步长,一般为采样间隔(step)的倍数   
– rows: 此RRA最多保留几份这类采样数据,注意高采样频率的RRA不要保存太多的rows,否则会影响出图性能   
RRA示例图:   
http://better.blog.运维网.com/attachment/201305/13/1886029_13684291639n8R.jpg
  ? 创建RRD
  语法:
  rrdtool create filename [--start|-b start time]
  [--step|-s step]
  [DS:name:type:heartbeat:min:max]
  [RRA:cf:xff:steps:rows]
  ? 更新RRD
  语法:
  rrdtool update filename timestamp:datapoints
  ? 简单示例   
  #!/usr/bin/python
  import subprocess
  import random
  START_TIME = 1324474748
  END_TIME = 1324996652
  # create RRD for cpu traffic
  cmd = 'rrdtool create cpu.rrd'
  cmd += ' --step 300'
  cmd += ' --start %d' % START_TIME
  cmd += ' DS:sys:GAUGE:600:U:U'
  cmd += ' DS:usr:GAUGE:600:U:U'
  cmd += ' DS:idle:GAUGE:600:U:U'
  cmd += ' RRA:AVERAGE:0.5:1:8640' # 5 min, save 1 month data
  cmd += ' RRA:AVERAGE:0.5:6:5760' # 30 min, save 4 month data
  cmd += ' RRA:AVERAGE:0.5:24:2160' # 2 hour, save 6 month data
  cmd += ' RRA:MIN:0.5:1:8640' # 5 min, save 1 month data
  cmd += ' RRA:MIN:0.5:6:5760' # 30 min, save 4 month data
  cmd += ' RRA:MIN:0.5:24:2160' # 2 hour, save 6 month data
  cmd += ' RRA:MAX:0.5:1:8640' # 5 min, save 1 month data
  cmd += ' RRA:MAX:0.5:6:5760' # 30 min, save 4 month data
  cmd += ' RRA:MAX:0.5:24:2160' # 2 hour, save 6 month data
  cmd += ' RRA:LAST:0.5:1:8640'
  subprocess.call('rm -rf cpu.rrd', shell = True)
  subprocess.call(cmd, shell = True)
  # update RRD
  for i in xrange(START_TIME, END_TIME, 300):
  sys = random.randint(0, 15)
  usr = random.randint(25, 55)
  idle = 100 - (sys + usr)
  cmd = 'rrdtool update cpu.rrd -t sys:usr:idle %d@%d:%d:%d' % (i, sys, usr, idle)
  retcode = subprocess.call(cmd, shell = True)
  # draw graph
  cmd = 'rrdtool graph cpu.png -h 250 -w 800'
  cmd += ' --start %d --end %d' % (START_TIME, START_TIME + 86400 * 2)
  cmd += ' --title "CPU Load"'
  cmd += ' -v "use percent"'
  cmd += ' DEF:v1=cpu.rrd:sys:AVERAGE'
  cmd += ' DEF:v2=cpu.rrd:usr:AVERAGE'
  cmd += ' DEF:v3=cpu.rrd:idle:AVERAGE'
  cmd += ' AREA:v1#FF2626:"sys"'
  cmd += ' AREA:v2#00FF00:"usr":STACK'
  cmd += ' AREA:v3#C0C0C0:"idle":STACK'
  subprocess.call(cmd, shell = True)







运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-661699-1-1.html 上篇帖子: 4、修改Cacti绘图的时间精度 下篇帖子: centos 6.3 下cacti 安装详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表