使用Cacti监控你的网络



http://blog.sina.com.cn/s/blog_4e424e2101000b6o.html

声明:本系列文档出自石头记,如若转载请注明出处,本人保留文档的所有权,并欢迎转载。

一、概述

 

1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmprrdtoolcacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

 

2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ipsnmp团体名、端口号、模板信息等变量。

 

3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学

 

二、Cacti的架构及工作流程

 

1.       Cacti的架构

使用Cacti监控你的网络(一)- <wbr>Cacti概述及工作流程

2. Cacti的工作流程

 

使用Cacti监控你的网络(一)- <wbr>Cacti概述及工作流程

一、Cacti的安装


 


1.安装环境:RedHat AS 4


2.安装Apache、MySQL、PHP


(1).安装MySQL


下载地址:http://dev.mysql.com/downloads/mysql/5.0.html


 //查看系统中是否已经安装了MySQL,如果是卸载所有以mysql开头的包。


# rpm –qa | grep mysql


# rpm –e mysql-*


//查找/etc/my.cnf(MySQL的选项配置文件),如果有请删除它,以免影响新安装版本的启动。


# rm –f /etc/my.cnf


# tar –zxvf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz


# cp –rf mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/


//建立符号链接,如果以后有新版本的MySQL的话,你可以仅仅将源码解压到新的路径,然后重新做一个符号链接就可以了。这样非常方便,数据也更加安全。


# ln –s mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/mysql


//添加用于启动MySQL的用户及用户组(如果以前安装过MySQl,用户及用户组可能已存在)。


# useradd mysql


# groupadd mysql


//初始化授权表


# cd /usr/local/mysql


# scripts/mysql_install_db


//修改MySQl目录的所有权


# cd /usr/local


# chgrp –R mysql mysql-standard-5.0.27-linux-i686-glibc23


# chgrp –R mysql mysql


# chown –R mysql mysql-standard-5.0.27-linux-i686-glibc23/data


# chown –R mysql mysql/data


# ln –s /usr/local/mysql/bin/* /usr/local/bin/


//启动Mysql


# bin/safe_mysqld --user=mysql &


//配置系统启动时自动启动MySQl


# cp support-files/mysql.server /etc/rc.d/init.d/mysqld


# chkconfig --add mysqld


//修改MySQL的最大连接数


# vi /etc/my.cnf


//添加以下行


[mysqld]
set-variable=max_connections=1000
set-variable=max_user_connections=500


set-variable=wait_timeout=200


//max_connections设置最大连接数为1000


//max_user_connections设置每用户最大连接数为500
//wait_timeout表示200秒后将关闭空闲(IDLE)的连接,但是对正在工作的连接不影响。


//保存退出,并重新启动MySQL


//重新启动MySQL后使用下面的命令查看修改是否成功


# mysqladmin -uroot -p variables


Password:


//可以看到以下项说明修改成功


| max_connections                 | 1000


| max_user_connections            | 500


| wait_timeout                    | 200


 


(2).安装Apache


下载地址:http://httpd.apache.org/


# tar –zxvf httpd-2.2.4.tar.gz


# cd httpd-2.2.4


# ./configure --prefix=/usr/local/apache --enable-so


//编译时加上加载模块参数--enable-so


# make


# make install


#vi /usr/local/apache/conf/httpd.conf


  //修改Apache配置文件,添加ServerName www.yourdomain.com              (或ServerName 本机ip)


# vi /etc/rc.d/rc.local


  //在rc.local上加入一行/usr/local/apache/bin/apachectl –k start,系统启动时启动Apache服务。


(3).安装PHP


先安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库(Cacti的WeatherMap插件必须要较新GD库的支持)


库文件下载地址:http://oss.oetiker.ch/rrdtool/pub/libs/
1).安装zlib


  tar zlib-1.2.3.tar.gz
  cd zlib-1.2.3
  ./configure --prefix=/usr/local/zlib
  make
  make install



2).安装libpng


  tar zxvf libpng-1.2.16.tar.tar
  cd libpng-1.2.16
  cd scripts/
  mv makefile.linux ../makefile
  cd ..
  make
  make install
  注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个



3).安装freetype


  tar zxvf freetype-2.3.4 .tar.gz
  cd freetype-2.3.4  
  ./configure --prefix=/usr/local/freetype
  make
  make install



4).安装Jpeg


   tar -zxf jpegsrc-1.v6b.tar.gz
   cd jpeg-6b/
   mkdir /usr/local/libjpeg
   mkdir /usr/local/libjpeg/include
   mkdir /usr/local/libjpeg/bin
   mkdir /usr/local/libjpeg/lib
   mkdir /usr/local/libjpeg/man


   mkdir /usr/local/libjpeg/man/man1


  //可以用mkdir -p /usr/local/libjpeg/man/man1 一步创建多层目录


   ./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static
   make && make install
注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库


 


5).安装Fontconfig


tar -zxvf fontconfig-2.4.2.tar.gz
cd fontconfig-2.4.2


./configure --with-freetype-config=/usr/local/freetype


make
make install



6).安装GD


  tar -zxvf gd-2.0.34.tar.gz
  cd gd-2.0.34
  ./configure --prefix=/usr/local/libgd --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg


  make
  make install


编译时显示以下信息:


** Configuration summary for gd 2.0.34:

   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for Freetype 2.x library: yes
   Support for Fontconfig library:   yes
   Support for Xpm library:          no
   Support for pthreads:             yes


 


7).编辑/etc/ld.so.conf,添加以下几行到此文件中。


    /usr/local/zlib/lib


    /usr/local/freetype/lib


    /usr/local/libjpeg/lib


    /usr/local/libgd/lib


    并执行ldconfig命令,使用动态装入器装载找到共享库


 


8).安装libxml,RedHat AS 4默认安装libxml包,但版本太低,PHP5需要更高版本的libxml包。
      # tar –zxvf libxml2-2.6.25.tar.gz
      # cd libxml2-2.6.25
      # ./configure
      # make
      # make install


 


9).安装PHP


PHP下载地址:http://www.php.net/downloads.php#v5


tar -zxvf  php-5.2.3.tar.gz
cd php-5.2.3
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr --with-zlib-dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets


# make


# make install


# cp php.ini-recommended /usr/local/php/lib/php.ini


# ln –s /usr/local/php/bin/* /usr/local/bin/


# vi /usr/local/apache/conf/httpd.conf


查找AddType application/x-compress .Z


AddType application/x-gzip .gz .tgz


在其下加入 AddType application/x-tar .tgz


AddType application/x-httpd-php .php


AddType image/x-icon .ico


修改DirectoryIndex 行,添加index.php


修改为DirectoryIndex index.php index.html index.html.var


# vi /usr/local/apache/htdocs/test.php


添加以下行:


//php标记(用<代替[)


[?php       


 Phpinfo();


?]


wq保存退出。


# /usr/local/apache/bin/apachectl –k stop


#/usr/local/apache/bin/apachectl –k start


在浏览器中输入:http://www.yourdomain.com/test.php进行测试。


 


对php编译选项的解释:


--prefix=/usr/local/php   //指定PHP的安装目录


--with-apxs2=/usr/local/apache2/bin/apxs      //支持Apache模块


--with-mysql=/usr/local/mysql    //支持MySQl


--with-gd=/usr/local/libgd     //支持GD库


--enable-gd-native-ttf     //激活对本地 TrueType 字符串函数的支持


--with-ttf     //激活对 FreeType 1.x 的支持


--with-freetype-dir=/usr/local/freetype    //激活对 FreeType 2.x 的支持


--with-jpeg-dir=/usr/local/libjpeg //激活对 jpeg-6b 的支持


--with-png-dir=/usr   //激活对 png 的支持


--with-zlib-dir=/usr/local/zlib //激活对zlib 的支持


--enable-mbstring    //激活mbstring模块


--enable-gd-jis-conv //使JIS-mapped可用,支持日文字体


--with-mail   //支持Mail函数


--enable-xml     //支持XML


--enable-sockets      //支持套接字


     


1.安装RRDTool


由于rrdtool-1.2.23需要一些库文件支持,故需先安装配置支持的环境,然后编译安装。直接运行以下bash脚本就可以完成安装:
注意:将cgilib-0.5.tar.gz、zlib-1.2.3.tar.gz、libpng-1.2.18.tar.gz、freetype-2.3.5.tar.gz、libart_lgpl-2.3.17.tar.gz、rrdtool-1.2.23.tar.gz放到/root/rrdtool-1.2.23目录下,将脚本保存为/root/rrdtool-1.2.23/rrdtoolinstall.sh,并给执行权限chmod u+x /root/rrdtool-1.2.23/rrdtoolinstall.sh。
以下链接是我重新打好的一个rrdtool-1.2.23的安装包,里面包括了所有用到的库文件和安装脚本,下载解压后执行脚本rrdinstall.sh即可以完成RRDTool的安装。
点击下载rrdtool-1.2.23.tar.gz


如果以上脚本安装失败,可以试试以下安装包:


http://61.156.20.41/autodownload/rrdtool-1.2.11.tar.gz


#!/bin/sh
BUILD_DIR=`pwd`
INSTALL_DIR=/usr/local/rrdtool
cd $BUILD_DIR
tar zxf cgilib-0.5.tar.gz
cd cgilib-0.5
make CC=gcc CFLAGS="-O3 -fPIC -I."
mkdir -p $BUILD_DIR/lb/include
cp *.h $BUILD_DIR/lb/include
mkdir -p $BUILD_DIR/lb/lib
cp libcgi* $BUILD_DIR/lb/lib
cd $BUILD_DIR
tar  zxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb
make
make install
cd $BUILD_DIR
tar zxvf libpng-1.2.18.tar.gz
cd libpng-1.2.18
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
    ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install
cd $BUILD_DIR
tar zxvf freetype-2.3.5.tar.gz
cd freetype-2.2.5
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
    ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install



cd $BUILD_DIR
tar zxvf libart_lgpl-2.3.17.tar.gz
cd libart_lgpl-2.3.17
env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install


IR=-I$BUILD_DIR/lb/include
CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"
LDFLAGS="-L$BUILD_DIR/lb/lib"
CFLAGS=-O3
export CPPFLAGS LDFLAGS CFLAGS


cd $BUILD_DIR
tar zxf rrdtool-1.2.23.tar.gz
cd rrdtool-1.2.23
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl && make && make install



//完成后建立符号连接 


ln –s /usr/local/rrdtool/bin/* /usr/local/bin/


//执行rrdtool看是否安装正确


2.安装net-snmp


RedHat默认安装了SNMP服务,但好象没有snmpwalk,snmpget这两个命令,所以需要编译安装NET-SNMP。


NET-SNMP官方网站:http://www.net-snmp.org/


# tar zxvf net-snmp-5.2.4.tar.gz


#cd net-snmp-5.2.4
#./configure --prefix=/usr/local/net-snmp  --enable-developer
#make
#make install


# ln –s /usr/local/net-snmp/bin/* /usr/local/bin/


#cp EXAMPLE.conf  /usr/local/net-snmp/share/snmp/snmpd.conf


//修改snmpd.conf(修改COMMUNITY、允许抓取snmp数据的主机、抓取数据范围等)。


# /usr/local/net-snmp/sbin/snmpd     //启动SNMP服务


# vi /etc/rc.d/rc.local


   //在rc.local上加入一行/usr/local/net-snmp/sbin/snmpd,系统启动时启动SNMP服务。


 


3.安装Cacti


Cacti官方网站:www.cacti.net/


# tar –zxvf cacti-0.8.6j.tar.gz


# mv –r cacti-0.8.6j /usr/loca/apache/htdocs/cacti


# vi /usr/local/apache/htdocs/cacti/include/config.php


$database_type = "mysql";


$database_default = "cacti";


$database_hostname = "localhost";


$database_username = "cacti";


$database_password = "cacti";


 


//添加cacti用户


# useradd cacti


//rra目录的所有权给cacti用户


# chown –R cacti /usr/loca/apache/htdocs/cacti/rra


//修改cacti目录所属组


# chgrp –R cacti /usr/loca/apache/htdocs/cacti


//为cacti用户添加cron任务


# su – cacti


# crontab –e


*/5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1


注意:首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限。


     


4.安装Cactid


CACTID 的安装需要以下支持:


   net-snmp-devel (需要编译安装net-snmp时添加--enable-developer选项)


   mysql               


   mysql-devel     (mysql源文件编译安装后默认支持)


   openssl-devel  (Redhat默认安装)


# tar -zxvf cacti-cactid-0.8.6i.tar.gz


# cd cacti-cactid-0.8.6i


# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp


# make


//这时你将在此目录下看到多出了cactid、cactid.conf两个文件


# mkdir /usr/local/cactid


# cp cactid cactid.conf /usr/local/cactid


# vi  /usr/local/cactid/cactid.conf       //修改cactid配置文件


DB_Host         127.0.0.1


DB_Database     cacti


DB_User         cacti


DB_Pass         cacti


     


5.数据库配置


#mysql –uroot –p


Password:


mysql> create database cacti;


Query OK, 1 row affected (0.00 sec)


 


mysql> grant all on cacti.* to cacti@localhost identified by “cacti”;


Query OK, 1 row affected (0.00 sec)


 


mysql>exit


# cd /usr/local/apache/htdocs/cacti


# mysql –uroot –p cacti < cacti.sql


Password:


     


6.完成cacti的安装


1).在浏览器中输入:http://www.yourdomain.com/cacti/


默认用户名:admin 密码:admin


2).更改密码


3).设置cacti用到的命令路径


snmpwalk Binary Path          /usr/local/ bin/snmpwalk


snmpget Binary Path         /usr/local/ bin/snmpget


RRDTool Binary Path         /usr/local/ bin/rrdtool


PHP Binary Path              /usr/local/bin/php


Cacti Log File Path           /usr/local/apache/htdocs/cacti/log/cacti.log


Cactid Poller File Path      /usr/local/cactid/cactid


使用Cacti监控你的网络(二)- <wbr>Cacti的安装


4).进入cacti后需确认更改以下位置:(如下图)


Console>Settings>General


使用Cacti监控你的网络(二)- <wbr>Cacti的安装 


Console>Settings>Poller


使用Cacti监控你的网络(二)- <wbr>Cacti的安装 


一、Cacti的使用


1.界面介绍


登陆Cacti后,可以看到左上角是两个选项卡,“console”和“graphs”。console表示控制台,在此进行所有的配置等操作;而graphs则是用来查看所有服务器的性能图像的界面。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


2.console菜单


Create:


New Graphs——创建新图像的快捷方式;


Management:


Graph Management——图像管理。可以在此删除、复制图像,Cacti会自动创建图像。不过如果我们有特殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;


Graph Trees——图像树。在graphs界面里,图像或devices是树状结构显示的,可以在此设置树的结构;


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


Data Sources——管理rrd文件。一般无需修改,Cacti会自己创建rrd文件;


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


Devices——设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。


Collection Methods


Data Queries 和Data Input Methods是采集数据的方式,一般我们无需对这两项进行修改;


Templates


Graph Templates 、Host Templates和Data Templates 分别是图像模板、主机类型模板和数据模板。这些模板可以导出、导入也可以自己编写,一般无需修改。


Import/Export


Import Templates 和Export Templates,对上述模板的导入、导出。我们可以在Cacti的官方网站上找到这些模板,不过需要注意模板对于的Cacti的版本。


Configuration


Settings ——Cacti的主要配置菜单;


可以在此重新设置对应的程序的路径、版本等信息。也可以设置图像的输出方式(允许ftp)、显示效果、登陆方式(允许使用LDAP)等。


Utilities


System Utilities ——显示Cacti系统的一些cache和log信息,如果log文件太大建议直接到后台查看;


User Management ——用户管理。可以在此添加、删除用户,并对每个用户设置详细的权限;


Logout User ——注销用户。


 


3.创建监测点


假设被监测的服务器名叫“Test Host”,IP为192.168.100.110,SNMP的community为public。


进入Cacti的console面板->


点击“Devices”进入设备面板->


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


点击“Add”添加新设备->


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


填写要监测服务器的各种信息,其中Host Template请选择“Local Linux Machine”或“ucd/net SNMP Host”(选择一个合适的主机模板)->


点击“Create”保存信息,如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现“SNMP error”的红色字样->


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


点击上部的“Create Graphs for this Host ”为该设备创建需监测的内容。监测的内容分两种,“Graph Templates”和“Data Query”,区别在于“Data Query”能根据SNMP信息列出监测项目的信息。例如Data Query里的“Interface Statistics”可以看到该主机所有网卡的信息,这样我们可以选择需要监测的网卡。点击右侧的正方形选择框勾选上要监测的项目->


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


点击“Create”创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选。Cacti会自动创建该监测点的rrd文件(在rra文件夹中)、“Data Source”和“graph”条目。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


 使用Cacti监控你的网络(三)- <wbr>Cacti的使用


创建监测点完毕。


4.查看监测点


点击“Graph Management”可以看到刚才创建的监测点对应的图像,注意由于Cacti默认每5分钟到监测服务器上取一次数据,所以刚创建的监测点会出现图像不能显示的现象,需要等几分钟查看才会正常显示。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


为了方便查看,可以将刚才新创建的设备或图像加入到“图像树”上:


点击“Graph Tree”进入“图像树”面板->


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


点击分支名称或“Add”新的分支->


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


点击“Add”,添加新的“Tree Items”->


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


“Tree Item Type”中选择“Host”,“Tree Item Value”的“host”中选择刚才新添加的主机“Test Host”->


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


点击“Create”。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


直接在ViewTree中添加一个host节点进行监控无疑是一个简单的方法,但随监控图的增多,将所有的图像放到一个host节点上,当查看图像时图像的显示速度会变慢,而且监控图的条理也不清除,所以通常可以根据监控图监控的功能和监控服务的类型等进行分类,整理出一棵有条理的图像树。可以按下面步骤添加节点。


首先添加一个root节点,“Tree Item Type”中选择“Header”,“Title”中填写一个合适的描述性信息,如本例填写“Host Monitor”,Host Monitor节点的图像主要是和主机性能相关的一些图像,如CPU、内存、磁盘空间等;


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


点击刚创建的root节点(Host Monitor)后面的Add链接来添加一个Graph;


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


在“Tree Item Type”中选择“Graph”,在“graph”中选择加入想要加入的监控图,重复此过程加入所有你想加入的监控图。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


你还可以添加Tree Items,如MySQL Monitor,此节点用来监控与MySQL服务相关的信息,重复上面的过程直到一颗有条例的树创建完成。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


这样,我们就可以在“graphs”界面中查看“Test Host”的所有监测图像了。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


5.为已有host添加新的监控图


在console控制台下点击“New Graphs”,选择要添加监控图的主机。在Graph Templates中选择一个Graph模板,本例选择SNMP - Ceneric OID Template,点击create按钮。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


填写以下信息,在“Title”文本框中填写Graph的名字,在“Vertical Lable”文本框中填写描述信息或是所绘图片使用的单位等,显示在所绘图片的左侧,在“name”文本框中填写此数据源的名字,在“LegendColor”中选择画图使用的颜色,在“Legend Text”填写图例的名字,在“OID”文本框中填写要监控的主机的OID信息,点击“create”按钮完成Graph的创建。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


完成后监控图如下:


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


 


6.合并多个数据源到一张图上


在console控制台下点击“Graph Management”,然后点击Add链接。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


 


在“Select Graph Template”下拉框中选择None,在“Host”下拉框中选择None,然后点击create按钮。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


在“Title”文本框中输入Graph的名字。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


点击Add链接,添加Graph Items。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


添加多个数据源,将所选的多个数据源画到一张监控图上。


使用Cacti监控你的网络(三)- <wbr>Cacti的使用



使用Cacti监控你的网络(三)- <wbr>Cacti的使用


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


使用Cacti监控你的网络(三)- <wbr>Cacti的使用


完成后将所画的监控图放到Graph Trees中。


声明:本系列文档出自石头记,如若转载请注明出处,本人保留文档的所有权,并欢迎转载。
一、Cacti脚本及模板

Cacti脚本及模板论坛:http://forums.cacti.net/forum-12.html

一个完整的cacti脚本及模板列表:http://forums.cacti.net/about15067.html

 

1.Advance Ping 脚本及模板

下载地址:http://forums.cacti.net/about10049.html

:要使用此模板,编译PHP时必须加上--enable-sockets选项来支持套接字。

1).功能:此模板用来监控一个TCP/UDP端口、ICMP的延时情况和丢包情况。

2).下载ss_fping.php脚本并放到/usr/local/apache/htdocs/cacti/scripts/目录下,下载cacti_graph_template_ping_advanced_ping_v1_3.xml模板,用cacti的模板导入页将此模板导入。

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板
3).在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates中添加Advanced Pingv1.3模板。并点击最上面的Create Graphs for this Host链接。
使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板 

Graph Templates的选择框中选择PING - Advanced Ping v1.3,然后点击Create按钮,出现以下WEB页。

 使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板

第一项意思是一次向要监控的端口发送多少个探测包(默认20个),第二项是使用的协议,可以是ICMP、TCP、UDP,第三项是要监控的端口号(只有第二项为TCP或是UDP时使用),填写完成后点击create按钮。

在Console控制台选项卡下的左侧菜单中选择Date Sources,选择以上新建的数据源可以修改以上填写的信息。

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板
在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板 

在graphs选项卡下浏览创建的Advanced Ping监控图。

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板 
TCP3360端口(MySQL)

 

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板

TCP80端口(HTTP) 

Pkt Loss:丢包数量/20 * 100%(每次ping 20个包)
Avg Loss:平均丢包情况
Latency:延时情况
Avg Latency:平均延时情况

  

1.MySQL stats模板

论坛讨论:http://forums.cacti.net/about11010.html

下载地址:http://www.faemalia.net/mysqlUtils/

功能:用来监控MySQL状态,其中包括索引使用情况、查询、排序、锁定情况等。

1).将mysql_stats.php 和 dumpMemcachedStats.php脚本放到cacti脚本目录下(/usr/local/apache/htdocs/cacti/scripts/),导入模板时注意选择cacti_host_template_temysql_host-step300-heartbeat600.xml和cacti_host_template_memcached_host-step300-heartbeat600.xml模板(默认cacti 5分钟取一次数据)。

2).配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有"process"权限。如果要监控InnoDB状态,还必须有"SUPER"权限。

GRANT PROCESS ON *.* TO cacti@'cactimachine' IDENTIFIED by 'cacti';

GRANT SUPER ON *.* TO cacti@'cactimachine' IDENTIFIED BY 'cacti'; 

3).创建Graph。在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates中添加想要监控MySQL状态的Graph Templates(如teMySQL – Index Usage模板,此套模板是以teMySQL开头的一系列模板)。并点击最上面的Create Graphs for this Host链接,在Graph Templates的选择框中选择teMySQL – Index Usage,然后点击Create按钮,出现以下WEB页。

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板 

在上面填写有权限访问MySQL数据库的用户名及密码,然后点击create按钮。

 

选中刚添加的Graph Templates,点击create按钮来创建Graph。

在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板

在graphs选项卡下浏览创建的MySQL监控图。

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板

缩略图:

使用Cacti监控你的网络(四)- <wbr>Cacti脚本及模板


3.其他模板

其他模板在以后慢慢加入,敬请期待。如果各网友有什么好的模板,也请不吝赐教,大家一同提高。

 

下面是我建的一个关于网络监控的圈子,请大家踊跃加入 ^_^ 。

http://q.blog.sina.com.cn/imonitor



一、Cacti插件


 


Cacti插件是对cacti的扩展。


要使用cacti插件必须先扩展cacti架构,来支持插件。


1.    安装cacti插件架构扩展


下载地址:http://cactiusers.org/downloads/patches/


当前版本是V1.1,是专门针对cacti V0.8.6设计的。


1).解压下载的tar包,你会得到一个cacti-plugin-arch目录


# tar –zxvf cacti-plugin-arch.tar.gz


# cd cacti-plugin-arch


# ls


使用Cacti监控你的网络(五)- <wbr>Cacti插件



2).有两中方法来安装cacti的插件架构扩展,第一种方法是使用patch文件,patch文件包含了原始文件与修改后文件的不同之处,所以可以使用patch文件来得到新的文件。第二种方法是使用pre-patched文件进行直接覆盖,将与cacti相对应版本的files-0.8.6*目录下的文件直接拷贝到cacti目录下进行覆盖。在此选择使用patch文件进行安装(这也是官网推荐的方法)。将与cacti相应版本的cacti-pligin-0.8.6*.diff文件拷贝到cacti目录下,然后使用patch命令进行安装。


# cp cacti-plugin-0.8.6j.diff /usr/local/apache/htdocs/cacti


//备份cacti目录,以备插件扩展安装失败后能恢复到原状态


# cd /usr/local/apache/htdocs


# cp –r cacti ./cacti.bak


# cd ./cacti


//首先使用以下命令进行测试


# patch -p1 -N --dry-run < cacti-plugin-0.8.6j.diff


//以上命令成功后,使用以下命令进行安装


# patch -p1 -N < cacti-plugin-0.8.6j.diff


3).安装后配置,首先查看你的cacti配置文件,看cacti相关的数据库信息是否被覆盖,如果被覆盖请直接从备份中拷贝一份到配置文件目录。


# cp ../include/config.php ./include/config.php


打开cacti配置文件,找到以下选项


$config['url_path'] = "/";


如过你的cacti能够在浏览器中使用以下方法直接访问,则不用修改cacti配置文件。


http://www.youdomain.com 或


http://cacti机器ip


           如果cacti在浏览器中使用以下方法直接访问,


           http://www.youdomain.com/cacti 或


           http://cacti机器ip/cacti


$config['url_path'] = "/";必须被修改为$config['url_path'] = "/cacti/";


           注意前后的/不能丢。


           到此cacti插件结构的扩展完成,现在可以下载并安装你需要的cacti插件了。


     


1.    安装插件


插件的安装、升级、移除是很容易的,在安装插件前你必须以确保安装了cacti插件结构扩展。


1).下载插件,在此以Monitor插件为例。


      Monitor插件下载地址:http://cactiusers.org/downloads/


      解压下载的tar包。


      # tar -zvcf monitor-0.7.tar.gz


      解压后你会得到一个monitor目录。


2.安装Monitor,只需要将monitor目录拷贝到cacti/plugins/目录下即可。如果是升级安装,只需要完全覆盖原monitor目录即可。


3.激活monitor插件,修改cacti配置文件(cacti目录下的include/config.php)。在配置中查找$plugins = array();行,在此行下面加入:


$plugins[] = 'monitor';


注意:上面monitor的名字必须与cacti/plugins/目录下插件目录的名字相同。


4).有些插件需要进行额外的配置,请根据插件的安装文档进行配置,在此略述。


5).移除插件时只要修改cacti配置文件,注释掉与插件相关的行即可。


如:


            //$plugins[] = 'monitor';


6).在console选项卡下,点击左侧菜单中的Settings链接,在右侧出现的web页中点击Misc选项卡来配置Monitor插件。


使用Cacti监控你的网络(五)- <wbr>Cacti插件


 


以下所看到的是Monitor选项卡下所监控的机器状态。当有机器Down掉后,相应机器图标将由绿色变成红色,并发出声音进行报警。


使用Cacti监控你的网络(五)- <wbr>Cacti插件


3.安装Threshold插件
v0.3.5.1版下载地址:http://download.cactiusers.org/downloads/thold.gzip
v0.3.5.1版为当前最新版本,此版本在cacti V0.8.6j上安装时有问题,提示一些函数找不到,所以在此使用v0.3.4版。
v0.34版下载地址:http://cactiusers.net/downloads/plugins/thold-0.3.4.tar.gz


1). 安装Threshold插件,只需将解压出来的Thold目录拷贝到cacti/plugins/目录下,并修改cacti配置文件(cacti目录下的include/config.php)。在配置中查找$plugins = array();行,在此行下面加入:
$plugins[] = 'thold';
刷新cacti首页,你将看到多出来一个Threshld选项卡。
下图是添加Threshold插件和Monitor插件后的cacti界面:


使用Cacti监控你的网络(五)- <wbr>Cacti插件


选中console选项卡,在左侧菜单中点击Settings,然后点击Alerting/Thold选项卡,来设置Threshold插件。


使用Cacti监控你的网络(五)- <wbr>Cacti插件
使用Cacti监控你的网络(五)- <wbr>Cacti插件


设置完成后在console选项卡下左侧菜单中点击Threshold Templates 。


使用Cacti监控你的网络(五)- <wbr>Cacti插件


点击Add按钮来添加一个Threshold模板。


使用Cacti监控你的网络(五)- <wbr>Cacti插件


在此,以添加一个监控硬盘空间的Threshold模板为例。


使用Cacti监控你的网络(五)- <wbr>Cacti插件


在Data Field下拉框中选择hdd_free,然后点击go按钮。


使用Cacti监控你的网络(五)- <wbr>Cacti插件 


填写以下信息,在Low Threshold文本框中填入1000,意思是当剩余的硬盘空间小于1000M时,发送邮件报警。在Threshold CDEF下拉框选择Divide by 1024,填入警报邮箱,完成Threshold模板的添加。


使用Cacti监控你的网络(五)- <wbr>Cacti插件 


应用刚才创建的Threshold模板。在console选项卡下点击Devices,选择要应用此模板的Host,点击最上面的Create Graphs for this Host链接,然后点击Auto-create thresholds链接来应用刚创建的Threshold模板。


 


设置完成后在console选项卡下左侧菜单中点击Thresholds 。


 使用Cacti监控你的网络(五)- <wbr>Cacti插件


在此可以管理已创建的警报。


使用Cacti监控你的网络(五)- <wbr>Cacti插件 


点击threshld选项卡可以查看警报的触发情况。


 使用Cacti监控你的网络(五)- <wbr>Cacti插件


 


4. 其它插件


其它插件可到http://cactiusers.org/downloads/自行下载安装,在此只略述一二。


1).Discovery:This plugin adds the ability to auto-discover devices on a subnet that are not monitored by Cacti and and tells you if they are SNMP enabled.


2). Flowviewer:A simple viewer for viewing reports based on data from flows created by Netflow.


3).Mac Track:The Mac Track plugin for Cacti by The Witness.


4).Settings:This plugin houses common settings and functions used by different plugins.


5).Network Weathermap:这是一个比较复杂的cacti插件,他需要GD库的支持,可以参照cacti的安装小节来支持GD库。使用它可以画出漂亮的网络状况图。


官网说明:http://www.network-weathermap.com/node/79


下载地址:http://www.network-weathermap.com/download


安装方法:


http://www.network-weathermap.com/manual/0.92/pages/install-cacti-editor.html


 


二、参考


 


Cacti官网:http://www.cacti.net/index.php


Cacti官网论坛:http://forums.cacti.net/


Cacti文档:http://docs.cacti.net/


Cacti插件:http://cactiusers.org/index.php


Network Weathermap:http://www.network-weathermap.com/


RRDTool官网:http://oss.oetiker.ch/rrdtool/


NET-SNMP官方网站:http://www.net-snmp.org/


Apache官网:http://httpd.apache.org/


MySQL官网:http://www.mysql.com/


PHP官网:http://www.php.net/


Cacti是一款基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具,通过snmpget来获取数据,使用RRDtool绘画图形,提供了非常强大的数据和用户管理功能。 Cacti 1.2.16 更新日志:2020-11-30问题#3704:生成报告时,“级联分支”功能与预期不符;问题#3859:查看图形时,会自动刷新,因此无法始终按预期工作;问题#3898:实时图形弹出计数器错误;问题#3903:创建新数据源时可能会发生未定义的变量错误;问题#3907:发生错误时,基于cli的安装程序不会以非零退出代码退出;问题#3912:导出完成后,有时进度条仍会保留;问题#3915:启用许多设备时,可以达到阈值,从而导致进程变慢;问题#3916:对设备执行操作时,复制的设备信息有时可能会丢失;问题#3917:使用API​​重命名树节点时,回溯可能显示不正确;问题#3919:搜索时,ddb4github有时可以将有效页面显示为空;问题#3920:从图形导出数据时,并未正确包含所有数据;问题#3924:由ddb4github创建的新图形后,“图形模板”过滤器未更新;问题#3926:登录页面上的用户名和密码在经典主题中不可见;问题#3929:改进并发进程和线程设置的措辞;问题#3930:位置过滤器应通过ddb4github删除空白条目;问题#3931:同步数据收集器时,可能会不必要地触发重新索引事件;问题#3932:自动网络允许发现无效的IP地址;问题#3933:更改当前用户的权限时,它们不会立即生效;问题#3935:为设备重新编制索引时,有时会显示错误的页面;问题#3942:修复数据库时,audit_database.php不会添加缺少的列;问题#3948:Spine1.2.15-Spine遇到未处理的异常信号号:'6'[11,资源暂时不可用](Spine线程);问题#3949:如果不存在日志信息,则日志页面不应为空;问题#3953:在升级期间,有时会复制领域,从而导致SQL错误;问题#3957:使用ping.php时,hypnotoad无法正确解释UDP响应时间;问题#3960:改进了在尝试查看您无权访问的日志文件时收到的警告;问题#3962:复制文件时,脚本未标记为可执行文件;问题#3963:创建插件表时,排序规则设置不正确;功能:将c3.js更新到版本0.7.20;功能:将Chart.js更新到版本2.9.4;功能:将phpseclib更新到版本2.0.29;功能:将PHPMailer更新到版本6.1.8;功能:对CLI脚本使用LSB shebang表示法;功能:添加对基于cactid守护程序的启动器的支持;feature#3923:新增了通过datatecuk隐藏“图表向下钻取”图标的功能;feature#3943:为插件添加钩子以显示自定义图形源和自定义模板URL(列表视图)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值