关于cacti


首先

  一直以来只是会直接用Cacti,这次重新搭建走了不少弯路,遂搜得此文,以作记录。   Cacti和Nagios的监控体系可以说是使用广泛而且支持丰富的国内外的运维人员都需要掌握的一套监控体系,这套体系的好处在于使用Cacti的强大画图和自定义画图能力,以及Nagios的可控报警。但是网上的大部分内容都是如何安装,在安装成功如何使用的方面介绍的很少,而真正开始用之后,为了工作需要就需要不断地去Cacti官网查看使用文档,或者论坛去翻别人的帖子,十分麻烦。于是我决定写一篇使用方面的手册,以让大家真正会用这套系统。

Cacti的使用

  如何安装这里就不在赘述了,Cacti的常用服务器的画图大部分都是使用模板的形式做的,而Cacti安装好之后本身自带了一部分模板,这些模板虽然可用,但是支持的项目太少,于是我们要寻求更多的模板以及更优化的内容。   Cacti的官方的模板库:http://docs.cacti.net/templates

1. Cacti模板的一般加载方法:

  一个Cacti的模板一般有两部分组成。一部分是xml模板文件,另一部分是xml的数据收集文件,虽然这两种文件都是xml格式的,但是你可以很显而易见的就能分出它们的不同。因为它们的文件大小有明显差距。   举个简单的例子:   

  这个是一个windows的监控模板,我们可以简单的根据文件的大小来看。

  • 大于10KB的,那就是XML模板文件。
  • 小于10KB的,那就是xml数据收集文件。

  XML模板文件是要在cacti的Web页面的Console选项卡内Import Templates项进行添加。而xml数据收集文件,则是要放在Linux上Cacti的安装目录的cacti/resource/snmp_queries中。   只要将两种类型的xml正确的导入/放入到应有的位置,那么模板就添加成功了。

2. 如何在Cacti上添加一个新主机并监控相关的内容:(以添加Linux主机为例)

  1. 创建图   a. 在Cacti的Web页面Console->Import Templates导入响应的xml模板文件。   b. 在Linux上cacti/resource/snmp_queries中放入模板相关的xml数据收集文件。并确保属主和属组均为cacti   c. 点击Console->Devices,打开设备管理页面。   d. 点击右上角的add,添加一个新的设备。      e. 当主机的信息填好之后,点击Create   f. 此时你的页面左上角应该显示:Save Successful,并且已经显示出了主机信息和SNMP信息,如果SNMP信息显示 SNMP error,请查看最后的问题综述。   g. 这时我们就可以添加相应的监控项了,在页面最下方的Associated Graph Templates中添加图形模板,在Associated Data Queries中添加数据模板。   h. 添加好相应的模板之后点击Save。此时左上角会出现Save Successful.   i. 点击右上角的Create Graphs for this Host,来为刚才通过模板所获得到的数据进行画图。   j. 选中需要画图的项,其中依然分为两部分:   通过Graph Templates中的内容都需要选中,而Data Query获取的内容比较详细,所以可以按需选择。   k. 选择好需要画图的项目后,点击右下角的Create,左上角会出现被创建出来的画图项。

  2. 在Graphs界面显示新添加的主机   a. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。   b. 进去Tree之后,点击右上角的Add,添加一个新的显示项。   c. 在Tree Item Type中选择Host,然后在下面的Host中选择我们刚才创建的主机。点击Create。   d. 此时,再进入Graphs界面,就可以看到在Default Tree下加入了我们新创建的主机。

##自定义脚本的添加以及监控   很多时候,我们需要为我们独有的环境去指定监控内容,那么如何制定呢?就可以通过自己写脚本的方式进行收集数据。   我们需要一个脚本,脚本的语言随意,只要在Linux的机器上能够使用运行并且有返回内容。这里我用一个监控QQ在线人数的例子来举例。

#!/bin/bash 
echo "QQ_Now:`curl im.qq.com/online.shtml | grep qqdata | cut -d":" -f 3 | cut -d">" -f 2 | cut -d"<" -f 1`" 

  此脚本运行之后输出内容为:   这个里面只有最后一行是有用的,其他的为curl的抓取信息。   我们的脚本要放在一个确保Cacti用户可访问的位置。常用的地方是:cacti/scripts/*中,那么当脚本准备停当之后,就开始我们的监控工作。

1. 创建数据输入方式

  1. 在Console–>点击Data Input Methods
  2. 点击右上角的Add,添加一个新的数据获取方式
  3. 点击Create,出现新的项目
  4. 新的项目包括Input Fields和Output Fields,即输入内容和输出内容,输入内容其实就是向脚本传递函数,我们这个脚本不需要传递什么参数进去,于是没有,只有Output Fields。
  5. 在Output Fields上点击Add,添加新的输出内容。
  6. 在Field[Output]中输入我们脚本的输出项:这里我填写“QQ_Now”
  7. 在Friendly Name中输入解释输出项的内容,内容随意。
  8. 勾选Update RRD File后,点击Create
  9. 然后查看我们整个的数据获取方式信息,点击Save,左上角应出现“Save Successful”

2. 创建数据源

  1. 在Console->点击Data Sources,进入数据源界面
  2. 点击右上角的Add,添加新的数据源
  3. 确保Data Template和Host均为None。直接点击Create
  4. 在新出现的信息面板中输入相关内容
  5. 点击Create,此时左上角会出现Save Successful
  6. 注意系统自动给生成的RRD文件路径,确保里面不会出现连续两个反斜线的路径信息。如果出现,请手动修改为一个反斜线。如:/1194.rrd
  7. 点击Save,看到Save Successful,则数据源创建成功。

3. 创建图像

  1. 选择Console–> Graph Management,进入图像管理
  2. 点击右上角的Add,添加一个新的图像
  3. 选择Graph Template以及Host均为None,然后点击Create
  4. Title中输入图像的名字,其他保持不变。并点击Create
  5. 然后你会看到多出的Graph Items,以及中间有一个看不到图的红叉,因为这个图我们还没有定义。
  6. 在Graph Items中点击Add,添加画图规则。
  7. 添加完画图内容之后,点击Create/Save,返回之前的页面,接下来还要添加数据的展示内容。
  8. 再次点击Graph Items中的Add,这次添加的是数据的展示,展示当前值。
  9. 设置好后点击Create创建这个项目,然后按照这个方法,分别创建最大值,最小值,平均值的展示内容。
  10. 添加好后内容如图。

4. 将自定义好的图形,加入到Graphs面板

  1. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。
  2. 进去Tree之后,点击右上角的Add,添加一个新的显示项。
  3. 在Tree Item Type中选择Graph,然后在下面的Graph中选择我们刚才创建的图像。点击Create。
  4. 此时,再进入Graphs界面,就可以看到在Default Tree下已经出现了我们新创建的图像。

本文出自 “For The Dream” 博客,请务必保留此出处http://foreveryan.blog.51cto.com/3508502/775558