haishi 发表于 2015-11-22 14:48:33

Cacti的安装与插件开发(三)

  Cacti的安装与插件开发(三)
  cacti模板开发与应用实战
  


  我觉得掌握一个软件,最起码要能随心所欲的应用它才算了解了这个应用,今天总结用cacti监控路由的CPU和MEM使用率。
  实战:使用cacti监控H3C Router的CPU和MEM内存使用率
  1.首先H3C Router要支持snmp功能,且该功能已经开启,另外已经配置好community,即前提是可以在监控机上通过snmp协议获取路由器的信息。
  


  2.根据H3C公布的MIB库,得出CPU和MEM的内存mib节点分别是.1.3.6.1.4.1.25506.2.6.1.1.1.1.6.3和.1.3.6.1.4.1.25506.2.6.1.1.1.1.8.3,这样就简单了,我们只需要写一个脚本来获取路由器的CPU和MEM,然后将这两个值作为数据源,通过cacti不间断的按照我们规定的时间策略来取得rrd数据库时间槽上的数据值,通过图像展现出来即可。
  


  3.脚本开发
  # vi getcpu_mem.sh
  

#!/bin/bash
#
# $1 is community
# $2 is Hostname or IP
CPU=`snmpget -v 2c -c $1 $2 .1.3.6.1.4.1.25506.2.6.1.1.1.1.6.3|cut -d ":" -f4 |grep -o "\+"`
MEM=`snmpget -v 2c -c $1 $2 .1.3.6.1.4.1.25506.2.6.1.1.1.1.8.3|cut -d ":" -f4 |grep -o "\+"`
echo -n "CPU:$CPU MEM:$MEM"

  
  手动执行没问题后将其拷贝到<path_cacti>/scripts下面。
  



注意!!!最后一行要使用-n取消换行操作,CPU和MEM是两个数据源,且数据源名称和取值之间用冒号隔开,两个数据源之间用空格隔开。  


  4.添加cacti数据输入方法(Data Input Methods)
  给数据输入方法取个名字,最好做到见名识义,Input Type则选择Scripts/Command,Input Fields则输入bash <path_cacti>/scripts/getcpu_mem.sh <snmp_community> <hostname>,即让脚步正常执行。如下图:



  


  5.点击create之后会提示输入Input Fields和Output Fields。其实Input Fields即使脚本的输入变量,Output Fields则是输出变量(也可以认为是数据源)。其中
  Field :就是我们在脚本中定义的两个输入变量,也是上步执行脚本中定义的。
  Friendly Name:这个是取个别名,容易识别即可。
  Regular Expression Match和Allow Empty Input:不用填,因为勾选之后就表示我们可以不使用参数,这样我们的脚本是没办法完成数据探测的。
  Special Type Code:这个就比较好用了,描述了cacti中定义过的值,比如此处我们的输入参数是snmp_community,我可以在此处输入真正的参数值,也可以使用cacti定义过的特殊变量,即snmp_community。填写完成后点击create即可,如下图:



  按照同样的方式添加另外一个输入参数——hostname。
  


  注意:此处的hostname一定不要有“<>”,使用hostname会直接引用该数据输入方法所关联的主机IP,当然也可以在此处直接输入路由器的IP地址。
  现在可以添加Out Fields了,这其实就是我们在脚本中定义的输出字段,注意一定要保证字符以及顺序完全一致,否则是取不到数据或者取错数据的。我们在脚本中是先定义输出CPU,然后输出MEM的。下图是添加MEM的图片,CPU是要先添加好的。
  


  添加完成后,记得保存,应该是这样的。
  


  


  6.添加数据模板(Data Templates)
  这一页就非常重要了,几乎每个选项都是跟我们操作息息相关的。如下图:
  Data Templates


  Name:也是见名识义的原则。
  


  Data Source


  数据源名称:|host_description|-H3C CPU&MEM Usage,其中|host_description|是cacti定义的宏,可以去除主机信息
  Data Input Method:选择我们刚才创建的数据输入方法。
  Step:步长,一般就是选择5分钟,即300秒。
  


  Data Source Item


  Internal Data Source Name:数据源名称,一个字符都不能差,顺序与脚本输出数据源此项一致。CPU
  Minimum Value ('U' for No Minimum):能接受的最小值,设为0即可。、
  Maximum Value ('U' for No Maximum):能接受的最大值,设为100,如果遇到不知道的情况,则设为U。
  Data
Source Type:数据源类型,选择GAUGE,即大小浮动,选择存储原始数据。
  Heartbeat:心跳包,即在这个时间间隔内获取到的数据都认为是有效的,超过之后则认为是UNKNOW,一般是步长的两倍。
  Output
Field:选择我们上一步定义的输出参数CPU-H3C CPU Usage。
  


  添加完成后点击该段右上角的NEW,来添加新的数据源。按照此种方法,添加另外一个数据源MEM,完成之后记得保存。



  Custom Data 下的
  “H3C Router IP和SNMP_Community”如果不填,则直接从关联的主机上继承。
  


  7.添加图片模板
  


  Graph Template下的


  Title (--title):是指图像的标题信息


  Vertical Label (--vertical-label):指图像的y轴信息
  一般只需要修改这两点,修改好之后,点击create,就可以添加数据展示曲线了。
  


  点击Graph Template Items 右侧的Add,来添加图像曲线信息。如下:



  注意:Graph Item Inputs下面的Data Source 和Data
Source 是自动生成的。
  


  8.在图像管理里面将图像模板和主机关联起来
  选择主机&#43;模板,点击Add添加,









  


  选择刚刚关联好的模板,将其放在默认树上即可。






  


  9.现在点开graph就可以看到图像了,第一次出图一般都要10分钟左右,所以要等一会。如果还是没有出图,可以手动使用rrdtool命令来探测一下,如果还是不行,就要一点点找原因了。



  
页: [1]
查看完整版本: Cacti的安装与插件开发(三)