Cacti网络监控工具完全指南.docx
《Cacti网络监控工具完全指南.docx》由会员分享,可在线阅读,更多相关《Cacti网络监控工具完全指南.docx(30页珍藏版)》请在冰豆网上搜索。
Cacti网络监控工具完全指南
本系列文档介绍了Cacti监控工具的各个方面,包括:
一、Cacti的工作流程
二、Cacti的安装
三、Cacti的使用
四、Cacti脚本及模板
一、概述
1.cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。
因此,snmp和rrdtool是cacti的关键。
Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2.Mysql配合PHP程序存储一些a变量数据并对变量数据进行调用,如:
主机名、主机ip、snmp团体名、端口号、模板信息等变量。
3.snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。
rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobinArchive),它能够存储的数据笔数在创建时就已经定义。
关于RRDTool的知识请参阅RRDTool教学。
Cacti的架构及工作流程
1.Cacti的架构
2.Cacti的工作流程
二、Cacti的安装
1.安装环境:
RedHatAS4
2.安装Apache、MySQL、PHP
(1).安装MySQL
下载地址:
查看系统中是否已经安装了MySQL,如果是卸载所有以mysql开头的包。
#rpm–qa|grepmysql
#rpm–emysql-*
5.0.275.0.275.0.275.0.275.0.27装Apache
下载地址:
tar–zxvf2.2.4cdhttpd-2.2.4
#./configure--prefix=/usr/local/apache--enable-so
装PHP
先安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库(Cacti的WeatherMap插件必须要较新GD库的支持)
库文件下载地址:
).安装zlib
tar1.2.3zlib-1.2.3
./configure--prefix=/usr/local/zlib
make
makeinstall
2).安装libpng
tarzxvf1.2.16libpng-1.2.16
cdscripts/
mv../makefile
cd..
make
makeinstall
注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个
3).安装freetype
tarzxvffreetype-2.3.4.
cdfreetype-2.3.4
./configure--prefix=/usr/local/freetype
make
makeinstall
4).安装Jpeg
tar-zxfjpeg-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
configure--prefix=/usr/local/libjpeg--enable-shared--enable-static
make&&makeinstall
5).安装Fontconfig
tar-zxvf2.4.2fontconfig-2.4.2
6).安装GD
tar-zxvf2.0.34gd-2.0.34
./configure--prefix=/usr/local/libgd--with-png--with-freetype=/usr/local/freetype--with-jpeg=/usr/local/libjpeg
./configure--with-freetype-config=/usr/local/freetype
make
makeinstall
make
makeinstall
编译时显示以下信息:
**Configurationsummaryforgd2.0.34:
SupportforPNGlibrary:
yes
SupportforJPEGlibrary:
yes
SupportforFreetypelibrary:
yes
SupportforFontconfiglibrary:
yes
SupportforXpmlibrary:
no
Supportforpthreads:
yes
7).编辑/etc/,添加以下几行到此文件中。
/usr/local/zlib/lib
/usr/local/freetype/lib
/usr/local/libjpeg/lib
/usr/local/libgd/lib
并执行ldconfig命令,使用动态装入器装载找到共享库
8).安装libxml,RedHatAS4默认安装libxml包,但版本太低,PHP5需要更高版本的libxml包。
#tar–zxvf2.6.25cdlibxml2-2.6.25
#./configure
#make
#makeinstall
9).安装PHP
PHP下载地址:
tar-zxvf5.2.3php-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
#makeinstall
#cp/usr/local/php/lib/
#ln–s/usr/local/php/bin/*/usr/local/bin/
#vi/usr/local/apache/conf/
查找
AddTypeapplication/x-compress.Z
AddTypeapplication/x-gzip.gz.tgz
在其下加入
AddTypeapplication/x-tar.tgz
AddTypeapplication/x-httpd-php.php
AddTypeimage/x-icon.ico
修改DirectoryIndex行,添加
修改为
DirectoryIndexvi/usr/local/apache/htdocs/
wq保存退出。
#/usr/local/apache/bin/apachectl–kstop
#/usr/local/apache/bin/apachectl–kstart
在浏览器中输入:
进行测试。
对php编译选项的解释:
--prefix=/usr/local/php装RRDTool
由于rrdtool-1.2.23需要一些库文件支持,故需先安装配置支持的环境,然后编译安装。
直接运行以下bash脚本就可以完成安装:
注意:
将、1.2.3、、、、放到/root/目录下,将脚本保存为/root/,并给执行权限chmodu+x/root/。
以下链接是我重新打好的一个rrdtool-1.2.23的安装包,里面包括了所有用到的库文件和安装脚本,下载解压后执行脚本即可以完成RRDTool的安装。
点击下载1.2.23如果以上脚本安装失败,可以试试以下安装包:
1.2.11
#!
/bin/sh
BUILD_DIR=`pwd`
INSTALL_DIR=/usr/local/rrdtool
cd$BUILD_DIR
tarzxf
makeCC=gccCFLAGS="-O3-fPIC-I."
mkdir-p$BUILD_DIR/lb/include
cp*.h$BUILD_DIR/lb/include
mkdir-p$BUILD_DIR/lb/lib
cplibcgi*$BUILD_DIR/lb/lib
cd$BUILD_DIR
tarzxf1.2.3zlib-1.2.3
envCFLAGS="-O3-fPIC"./configure--prefix=$BUILD_DIR/lb
make
makeinstall
cd$BUILD_DIR
tarzxvf1.2.18libpng-1.2.18
envCPPFLAGS="-I$BUILD_DIR/lb/include"LDFLAGS="-L$BUILD_DIR/lb/lib"CFLAGS="-O3-fPIC"\
./configure--disable-shared--prefix=$BUILD_DIR/lb
make
makeinstall
cd$BUILD_DIR
tarzxvf2.3.5freetype-2.2.5
envCPPFLAGS="-I$BUILD_DIR/lb/include"LDFLAGS="-L$BUILD_DIR/lb/lib"CFLAGS="-O3-fPIC"\
./configure--disable-shared--prefix=$BUILD_DIR/lb
make
makeinstall
cd$BUILD_DIR
tarzxvf2.3.17libart_lgpl-2.3.17
envCFLAGS="-O3-fPIC"./configure--disable-shared--prefix=$BUILD_DIR/lb
make
makeinstall
IR=-I$BUILD_DIR/lb/include
CPPFLAGS="$IR$IR/$IR/freetype2$IR/libpng"
LDFLAGS="-L$BUILD_DIR/lb/lib"
CFLAGS=-O3
exportCPPFLAGSLDFLAGSCFLAGS
cd$BUILD_DIR
tarzxf1.2.23rrdtool-1.2.23
./configure--prefix=$INSTALL_DIR--disable-python--disable-tcl&&make&&makeinstall
装net-snmp
RedHat默认安装了SNMP服务,但好象没有snmpwalk,snmpget这两个命令,所以需要编译安装NET-SNMP。
NET-SNMP官方网站:
#tarzxvf5.2.4net-snmp-5.2.4
#./configure--prefix=/usr/local/net-snmp--enable-developer
#make
#makeinstall
#ln–s/usr/local/net-snmp/bin/*/usr/local/bin/
#cp/usr/local/net-snmp/share/snmp/
装Cacti
Cacti官方网站:
#tar–zxvf0.8.6mv–rcacti-0.8.6j/usr/loca/apache/htdocs/cacti
#vi/usr/local/apache/htdocs/cacti/include/
$database_type="mysql";
$database_default="cacti";
$database_hostname="localhost";
$database_username="cacti";
$database_password="cacti";
装Cactid
CACTID的安装需要以下支持:
onet-snmp-devel(需要编译安装net-snmp时添加--enable-developer选项)
omysql
omysql-devel(mysql源文件编译安装后默认支持)
oopenssl-devel(Redhat默认安装)
#tar-zxvf0.8.6cdcacti-cactid-0.8.6i
#./configure--with-mysql=/usr/local/mysql--with-snmp=/usr/local/net-snmp
#make
据库配置
#mysql–uroot–p
Password:
mysql>createdatabasecacti;
QueryOK,1rowaffectedsec)
mysql>grantalloncacti.*tocacti@localhostidentifiedby“cacti”;
QueryOK,1rowaffectedsec)
mysql>exit
#cd/usr/local/apache/htdocs/cacti
#mysql–uroot–pcacti<
Password:
6.完成cacti的安装
1).在浏览器中输入:
默认用户名:
admin密码:
admin
2).更改密码
3).设置cacti用到的命令路径
snmpwalkBinaryPath/usr/local/bin/snmpwalk
snmpgetBinaryPath/usr/local/bin/snmpget
RRDToolBinaryPath/usr/local/bin/rrdtool
PHPBinaryPath/usr/local/bin/php
CactiLogFilePath/usr/local/apache/htdocs/cacti/log/
CactidPollerFilePath/usr/local/cactid/cactid
4).进入cacti后需确认更改以下位置:
(如下图)
Console>Settings>General
Console>Settings>Poller
三、Cacti的使用
1.界面介绍
登陆Cacti后,可以看到左上角是两个选项卡,“console”和“graphs”。
console表示控制台,在此进行所有的配置等操作;而graphs则是用来查看所有服务器的性能图像的界面。
2.console菜单
Create:
NewGraphs——创建新图像的快捷方式;
Management:
GraphManagement——图像管理。
可以在此删除、复制图像,Cacti会自动创建图像。
不过如果我们有特殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;
GraphTrees——图像树。
在graphs界面里,图像或devices是树状结构显示的,可以在此设置树的结构;
DataSources——管理rrd文件。
一般无需修改,Cacti会自己创建rrd文件;
Devices——设备管理。
这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。
CollectionMethods
DataQueries和DataInputMethods是采集数据的方式,一般我们无需对这两项进行修改;
Templates
GraphTemplates、HostTemplates和DataTemplates分别是图像模板、主机类型模板和数据模板。
这些模板可以导出、导入也可以自己编写,一般无需修改。
Import/Export
ImportTemplates和ExportTemplates,对上述模板的导入、导出。
我们可以在Cacti的官方网站上找到这些模板,不过需要注意模板对于的Cacti的版本。
Configuration
Settings——Cacti的主要配置菜单;
可以在此重新设置对应的程序的路径、版本等信息。
也可以设置图像的输出方式(允许ftp)、显示效果、登陆方式(允许使用LDAP)等。
Utilities
SystemUtilities——显示Cacti系统的一些cache和log信息,如果log文件太大建议直接到后台查看;
UserManagement——用户管理。
可以在此添加、删除用户,并对每个用户设置详细的权限;
LogoutUser——注销用户。
3.创建监测点
假设被监测的服务器名叫“TestHost”,IP为的community为public。
进入Cacti的console面板->
点击“Devices”进入设备面板->
点击“Add”添加新设备->
填写要监测服务器的各种信息,其中HostTemplate请选择“LocalLinuxMachine”或“ucd/netSNMPHost”(选择一个合适的主机模板)->
点击“Create”保存信息,如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现“SNMPerror”的红色字样->
点击上部的“CreateGraphsforthisHost”为该设备创建需监测的内容。
监测的内容分两种,“GraphTemplates”和“DataQuery”,区别在于“DataQuery”能根据SNMP信息列出监测项目的信息。
例如DataQuery里的“InterfaceStatistics”可以看到该主机所有网卡的信息,这样我们可以选择需要监测的网卡。
点击右侧的正方形选择框勾选上要监测的项目->
点击“Create”创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选。
Cacti会自动创建该监测点的rrd文件(在rra文件夹中)、“DataSource”和“graph”条目。
创建监测点完毕。
4.查看监测点
点击“GraphManagement”可以看到刚才创建的监测点对应的图像,注意由于Cacti默认每5分钟到监测服务器上取一次数据,所以刚创建的监测点会出现图像不能显示的现象,需要等几分钟查看才会正常显示。
为了方便查看,可以将刚才新创建的设备或图像加入到“图像树”上:
点击“GraphTree”进入“图像树”面板->
点击分支名称或“Add”新的分支->
点击“Add”,添加新的“TreeItems”->
“TreeItemType”中选择“Host”,“TreeItemValue”的“host”中选择刚才新添加的主机“TestHost”->
点击“Create”。
直接在ViewTree中添加一个host节点进行监控无疑是一个简单的方法,但随监控图的增多,将所有的图像放到一个host节点上,当查看图像时图像的显示速度会变慢,而且监控图的条理也不清除,所以通常可以根据监控图监控的功能和监控服务的类型等进行分类,整理出一棵有条理的图像树。
可以按下面步骤添加节点。
首先添加一个root节点,“TreeItemType”中选择“Header”,“Title”中填写一个合适的描述性信息,如本例填写“HostMonitor”,HostMonitor节点的图像主要是和主机性能相关的一些图像,如CPU、内存、磁盘空间等;
点击刚创建的root节点(HostMonitor)后面的Add链接来添加一个Graph;
在“TreeItemType”中选择“Graph”,在“graph”中选择加入想要加入的监控图,重复此过程加入所有你想加入的监控图。
你还可以添加TreeItems,如MySQLMonitor,此节点用来监控与MySQL服务相关的信息,重复上面的过程直到一颗有条例的树创建完成。
这样,我们就可以在“graphs”界面中查看“TestHost”的所有监测图像了。
5.为已有host添加新的监控图
在console控制台下点击“NewGraphs”,选择要添加监控图的主机。
在GraphTemplates中选择一个Graph模板,本例选择SNMP-CenericOIDTemplate,点击create按钮。
填写以下信息,在“Title”文本框中填写Graph的名字,在“VerticalLable”文本框中填写描述信息或是所绘图片使用的单位等,显示在所绘图片的左侧,在“name”文本框中填写此数据源的名字,在“LegendColor”中选择画图使用的颜色,在“LegendText”填写图例的名字,在“OID”文本框中填写要监控的主机的OID信息,点击“create”按钮完成Graph的创建。
完成后监控图如下:
6.合并多个数据源到一张图上
在console控制台下点击“GraphManagement”,然后点击Add链接。
在“SelectGraphTemplate”下拉框中选择None,在“Host”下拉框中选择None,然后点击create按钮。
在“Title”文本框中输入Graph的名字。
点击Add链接,添加GraphItems。
添加多个数据源,将所选的多个数据源画到一张监控图上。
完成后将所画的监控图放到GraphTrees中。
四、Cacti脚本及模板
Cacti脚本及模板论坛:
一个完整的cacti脚本及模板列表:
Ping脚本及模板
下载地址:
注:
要使用此模板,编译PHP时必须加上--enable-sockets选项来支持套接字。
1).功能:
此模板用来监控一个TCP/UDP端口、ICMP的延时情况和丢包情况。
2).下载脚本并放到/usr/local/apache/htdocs/cacti/scripts/目录下,下载模板,用cacti的模板导入页将此模板导入。
3).在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。
在AssociatedGraphTemplates中添加Advanced模板。
并点击最上面的CreateGraphsforthisHost链接。
在GraphTemplates的选择框中选择PING-AdvancedPing,然后点击Create按钮,出现以下WEB页。
第一项意思是一次向要监控的端口发送多少个探测包(默认20个),第二项是使用的协议,可以是ICMP、TCP、UDP,第三项是要监控的端口号(只有第二项