Cacti完全使用手册 ( 让你快速个性化使用Cacti )

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

II.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下加入了我们新创建的主机。

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用户中,进入这个目录,手动运行一下脚本,查看脚本是否成功执行。

摘自:http://www.cnblogs.com/lcword/p/5912622.html

时间: 2024-10-24 10:13:41

Cacti完全使用手册 ( 让你快速个性化使用Cacti )的相关文章

cacti运维手册

1      前言 1.1  系统功能概述 cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数.它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构.host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善.界面友好.软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Script

Cacti+Nagios监控系统(二):安装Cacti

一.设置mysql,创建Cacti数据库和账号 mysql -u root -p mysql> create database cactidb; mysql> GRANT ALL ON cactidb.* TO [email protected] IDENTIFIED BY '123456'; mysql> flush privileges; mysql> quit 二.安装rrdtool yum -y install rrdtool  rrdtool-devel  rrdtool

开源监控解决方案Nagios+Cacti+PNP4Nagios+NConf+NDOUtils+Nagvis(七)nagios+cacti整合

nagios和cacti的安装请参考之前的文章安装,这里介绍二者如何整合在一起. ndoutils将nagios的监控数据写入数据库 cacti则将ndoutil插件写入数据库的数据展示在页面上,因为数据写入数据库会因为各种因素延时,所以有时候nagios自身的页面有的监控项已经告警,但是cacti页面可能还是正常状态. 所以这套方案的核心还是nagios,所有监控和故障通知都由nagios完成,cacti只是担任web管理页面. 1.修改数据库结构 mysql> use nagios; mys

Keras学习手册(二),快速开始-Sequential 顺序模型

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30660.html 顺序模型是多个网络层的线性堆叠. 你可以通过将网络层实例的列表传递给 Sequential 的构造器,来创建一个 Sequential 模型: from keras.models import Sequential from keras.layers import Dense, Activation model = Sequential([ Dense(32, input_shap

centos7下搭建cacti

cacti 什么是Cacti? Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.它通过snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数.它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构.host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善.Cacti 的发展是基于让 RRDTool 使用

自动化安装Cacti 0.8.8h脚本

自动化安装Cacti 0.8.8h脚本 一.目的 1.1 监控目的 目前我们已经有zabbix监控系统,但是有客户需求需要流量报表,因此应此类客户的需求,部署Cacti流量监控系统,来监控客户服务器或交换机端口,为客户提供流量报表截图. 1.2 本文目的 快速部署Cacti流量监控系统,为后期相关工程师部署此系统提供借鉴与参考. 二.理论基础 2.1 相关理论 Cacti是用php语言实现的一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.snmp服务获取数据,

(四)Cacti安装配置

一.Cacti 监控介绍 1.Cacti简介 Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. 简单的说Cacti 就是一个PHP 程序.它通过使用SNMP 协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP 软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL 工具绘图,通过PHP 程序展现出来.我们使用它可以展现出监控对象一段时间内的状态或者性能趋势图. 2.Cacti 架构概述 通过上图我们可以发现Cacti

nagios运维手册

1      前言 1.1  系统功能概述 Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios 可以监控的功能有: 1.监控网络服务(SMTP.POP3.HTTP.NNTP.PING等): 2.监控主机资源(处理器负荷.磁盘利用率等): 3.简单地插件设计使得用户可以方便地扩展自己服务的检测方法:

Cacti合并流量图

系统环境 监控主机:Centos5.5(32bit) Nginx平台 Cacti0.87g   net-snmp5.3.2  192.168.93.135 被监控机:Centos5.5(32bit)  net-snmp5.3.2  192.168.93.134 Cacti的安装参考: Centos5.5完整安装Cacti+Spine centos快速安装cacti 下面是我将两台机器的网卡流量图合并的操作过程,有错误的地方请大虾们指出: 一.创建一个新的CDEF(即新建一个计算公式),主要用于计