cacti彻底使用手册(六)

原文出自:http://foreveryan.blog.51cto.com/3508502/775558php

Cacti和Nagios的监控体系能够说是使用普遍并且支持丰富的国内外的运维人员都须要掌握的一套监控体系,这套体系的好处在于使用Cacti的强大画图和自定义画图能力,以及Nagios的可控报警。可是网上的大部份内容都是如何安装,在安装成功如何使用的方面介绍的不多,而真正开始用以后,为了工做须要就须要不断地去Cacti官网查看使用文档,或者论坛去翻别人的帖子,十分麻烦。因而我决定写一篇使用方面的手册,以让你们真正会用这套系统。html

 

本文不包含任何Cacti和Nagios的安装工做,如需安装,请看前面的博文:
生产环境开源监控系统整合Nagios+Cacti+Nconf
本文全部监控项均使用SNMP监控。linux

本文用的Cacti版本为最新的 0.8.7i ios

II.Cacti的使用                                  
    Cacti的经常使用服务器的画图大部分都是使用模板的形式作的,而Cacti安装好以后自己自带了一部分模板,这些模板虽然可用,可是支持的项目太少,因而咱们要寻求更多的模板以及更优化的内容。
    Cacti的官方的模板库:http://docs.cacti.net/templates  windows

1:cacti模板的通常加载方法:bash

    一个Cacti的模板通常有两部分组成。一部分是xml模板文件,另外一部分是xml的数据收集文件,虽然这两种文件都是xml格式的,可是你能够很显而易见的就能分出它们的不一样。由于它们的文件大小一点都不类似。
    举个简单的例子:


服务器

这个是一个windows的监控模板,咱们能够简单的根据文件的大小来看。
    *  大小大于10KB的,那就是xml模板文件。
    *  大小小于10KB的,那就是xml数据收集文件。

Xml模板文件是要在cacti的Web页面的Console选项卡内Import Templates项进行添加:网络

 


而xml数据收集文件,则是要放在Linux上Cacti的安装目录的cacti/resource/snmp_queries中:运维

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

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下加入了咱们新建立的主机。

III.Cacti的经常使用模板                         

 

1.Windows经常使用模板
    Windows通常所须要监控的基本内容有:
    1.    CPU Use
    2.    Memory Use
    3.    Disk Size
    4.    Interface Traffic

    为了解决基本的监控项,咱们须要如下模板。
    A.    Cacti_SNMP_Informant_Standard_Metrics_v12.zip
    B.    Cacti_host_template_ucdnet_snmp_host.gz

    咱们还须要在Windows主机上安装一个软件,以确保SNMP能发送更多的信息为咱们提供数据采集:informant-std-16.exe

 

    使用A模板来监控Windows的CPU项目
    使用B模板来监控网络,硬盘,内存。 
    最终,添加完相关模板,在建立Windows主机以后,在Devices->Your Windows host ->页面下方正确添加的各类Templates以下:

 

因为Windows模板下都是Data Queries。因此请确保添加完相关的Data Queries以后,全部项目的Status下应该都是Success以及是能看到不少Items以及Rows的。这说明数据正确采集,若是没有,请移步最后问题综述的问题4。
    最后添加完而且画图的监控结果:

2.Linux经常使用模板
    Linux与Windows监控的内容基本相同:
    1.    CPU Use
    2.    Load Average
    3.    Memory Usage
    4.    Swap Usage
    5.    Disk I/O
    6.    Disk Size
    7.    Interface Traffic
    为了解决Linux监控内容,咱们使用如下模板:
    A.    Cacti_host_template_ucdnet_snmp_host.gz
    B.    Cacti_graph_template_ucdnet_-_memory/swap_usage_linux.xml
    C.    Data_query_snmp_-_get_disk_io
    最终,添加完相关模板,在建立Linux主机以后,在Devices->Your Linux host ->页面下方正确添加的各类Templates以下:

    在全部的Linux监控添加后的内容以下:


 

 

3.Switch && Router的相关模板
    因为市面上Switch和Router的型号众多,而不一样的型号可能就须要不一样的模板,不能像Windows和Linux同样进行统一,因此当你须要监控Switch和Router的时候,请Google响应的型号的模板,或者在Cacti官方的模板库中进行查找。查找以后添加的过程都大同小异,这里再也不赘述。

IV:自定义脚本的添加以及监控                 

    不少时候,咱们须要为咱们独有的环境去指定监控内容,那么如何制定呢?就能够经过本身写脚本的方式进行收集数据。这里我用一个监控QQ在线人数的例子来举例。

准备工做:
    1.咱们须要一个脚本,脚本的语言随意,只要在Linux的机器上可以使用运行而且有返回内容。好比咱们即将使用的脚本:

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

 

 

    此脚本运行以后输出内容为:

    这个里面只有最后一行是有用的,其余的为curl的抓取信息。
    2.咱们的脚本要放在一个确保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下已经出现了咱们新建立的图像。

 

 

 

V.Cacti问题 Q & A                           

1.填完Drivers信息以后显示红色的SNMP error

 

 

    这是因为被监控机的SNMP设置问题,没有容许咱们监控机进行监控,或者Community不匹配致使的。
    Linux能够在/etc/snmp/snmpd.conf中修改/增长发送snmp的机器,以及community。
    Windows能够在Snmp服务中增长容许发送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没有正确的建立出这个文件,这就有多是所用的模板有问题了。
    在这里,这是一个很好的查看为何没有画出图的地方,没有画出的图RRD Tool会一一的告诉咱们,咱们只须要根据它说的来修正,直到RRD Tool Says: OK

3.图什么的都有,可是数据都是N/A,这是要闹哪样?

 

 

    这个的解决办法其实跟没法画图的解决同样,就是咱们去看数据的Debug日志。
    进入Data Sources,在Host中选择没有数据的Host,而后在下面的列表中选择没有数据的那个图。进入数据设置界面,而后点击右上角的“Turn on Data Source Debug mode”,而后去分析它的报错。

4.在给主机添加Data Query的监控项的时候发现里面没有获取到数据。

 

 

    这时候,若是它获取不到数据,咱们就没法给它画图。由于在给它建立的图的界面上显示没有内容。
    这时候能够直接点击上图中的Debugging下的相关内容,直接打开Debug查看状态。

 

 

    这时就能够看到反馈出得信息,好比上图,发现SNMP没法获取数据。固然也有其余的,好比MIB文件不存在。只要你仔细看它反馈出来的问题,知道问题的根源,就必定能解决。当解决了数据获取以后,能够直接点击右边的绿色的小圆圈,就刷新了数据的获取状态。

5.关于cacti下文件的权限问题。

    Cacti目录中的内容权限并不统一,并且权限要求的也不多,并不像其余的好比Nagios要求的那么多。咱们能够简单的保持整个Cacti目录的属主和属组都是Cacti便可。可是有两个特殊的例外:     第一个是cacti/rra目录,整个目录里的内容是RRD的画图文件自动在里面生成的。而生成以后里面文件的属主和属组究竟是谁,取决最终是由哪一个用户来建立的,而这个就是在Cacti的那个crontab里控制,若是咱们使用的是root用户添加的crontab,那么这个rra目录中的内容属主和属组都是root。同理,若是咱们的crontab是在cacti中设置的,那么rra目录中的内容属主和属组都是cacti。     第二个目录是cacti/scripts目录,这里面存的大部分都是咱们自定义的脚本,必定要确保里面的脚本是cacti用户可执行的。最好的检测方法就是su到cacti用户中,进入这个目录,手动运行一下脚本,查看脚本是否成功执行

相关文章
相关标签/搜索