I.总览
Cacti和Nagios的监控体系可以说是使用广泛而且支持丰富的国内外的运维人员都需要掌握的一套监控体系,这套体系的好处在于使用Cacti的强大画图和自定义画图能力,以及Nagios的可控报警。但是网上的大部分内容都是如何安装,在安装成功如何使用的方面介绍的很少,而真正开始用之后,为了工作需要就需要不断地去Cacti官网查看使用文档,或者论坛去翻别人的帖子,十分麻烦。于是我决定写一篇使用方面的手册,以让大家真正会用这套系统。
本文不包含任何Cacti和Nagios的安装工作,如需安装,请移步: 本文用的Cacti版本为最新的0.8.7i |
II.Cacti的使用
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 h. 添加好相应的模板之后点击Save。此时左上角会出现Save Successful. 2.在Graphs界面显示新添加主机。 a. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。 |
III.Cacti的常用模板
1.Windows常用模板 为了解决基本的监控项,我们需要以下模板。 我们还需要在Windows主机上安装一个软件,以确保SNMP能发送更多的信息为我们提供数据采集:informant-std-16.exe 使用A模板来监控Windows的CPU项目 |
2.Linux常用模板 |
3.Switch && Router的相关模板 |
IV:自定义脚本的添加以及监控
很多时候,我们需要为我们独有的环境去指定监控内容,那么如何制定呢?就可以通过自己写脚本的方式进行收集数据。这里我用一个监控QQ在线人数的例子来举例。
准备工作:
这个里面只有最后一行是有用的,其他的为curl的抓取信息。 |
1.创建数据输入方式
1. 在Console-->点击Data Input Methods
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,进入数据源界面
5. 点击Create,此时左上角会出现Save Successful
3.创建图像
1. 选择Console--> Graph Management,进入图像管理
7. 添加完画图内容之后,点击Create/Save,返回之前的页面,接下来还要添加数据的展示内容。
8. 再次点击Graph Items中的Add,这次添加的是数据的展示,展示当前值。
9. 设置好后点击Create创建这个项目,然后按照这个方法,分别创建最大值,最小值,平均值的展示内容。
10. 添加好后内容如图。
4.将自定义好的图形,加入到Graphs面板
1. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。
V.Cacti问题 Q & A
1.填完Drivers信息之后显示红色的SNMP error
这是由于被监控机的SNMP设置问题,没有允许我们监控机进行监控,或者Community不匹配导致的。
2.添加完图之后,等待了无数时间图依然无法绘制,反馈给我们一个红色的X。
首先,如果你是用添加的模板创建的图,那么显示不了的话,很有可能是由于模板太老,或者模板不正确导致的。可以考虑更新作者的最新模板以重新画图。当然,如果图像的确画不出来,那么我们可以打开画图的Debug日志的方式进行排错。
进入Graph Management,在Host中选择我们画不出图的那个Host,然后点Go,这样就在下面列出了所有在这个Host中的图像列表,点击那个无法画图的列表。这就进入了我们选定主机的相关图像的设置界面,我们应该可以看到这个界面下方依然有一个红X,证明我们无法画图,所以点击右上角的“Turn on Graph Debug Mode.”来打开Debug日志,这时候,就可以看到页面下方多出了"RRD Tool Command:"的列表,里面详细的描述了RRD工具是如何为我们画图的,这都不是关键,关键是最后的RRD Tool Says:比如
这里面是RRD Tool 告诉的我们为什么它无法画图,我们可以看到我当前例子的没有画图的原因是316.rrd这个文件不存在,说明在创建的时候rrd没有正确的创建出这个文件,这就有可能是所用的模板有问题了。
3.图什么的都有,但是数据都是N/A,这是要闹哪样?
这个的解决办法其实跟无法画图的解决一样,就是我们去看数据的Debug日志。
4.在给主机添加Data Query的监控项的时候发现里面没有获取到数据。
这时候,如果它获取不到数据,我们就无法给它画图。因为在给它创建的图的界面上显示没有内容。
这时就可以看到反馈出得信息,比如上图,发现SNMP无法获取数据。当然也有其他的,比如MIB文件不存在。只要你仔细看它反馈出来的问题,知道问题的根源,就一定能解决。当解决了数据获取之后,可以直接点击右边的绿色的小圆圈,就刷新了数据的获取状态。
5.关于cacti下文件的权限问题。
Cacti目录中的内容权限并不统一,而且权限要求的也很少,并不像其他的比如Nagios要求的那么多。我们可以简单的保持整个Cacti目录的属主和属组都是Cacti即可。但是有两个特殊的例外:
本文出自 “For The Dream” 博客,请务必保留此出处http://foreveryan.blog.51cto.com/3508502/775558