Cacti被广泛用于各行各业,监控必须掌握它了。
Cacti是通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。
Cacti架构视图
CACTI
软件Cacti的发展是基于让RRDTool使用者更方便使用该软件,除了基本的Snmp流量跟系统资讯监控外,Cacti也可外挂Scripts及加上Templates来作出各式各样的监控图。
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobinArchive),它能够存储的数据笔数在创建时就已经定义
安装cacti
Cacti的安装
1.安装环境:RedHatAS4
2.安装Apache、MySQL、PHP
(1).安装MySQL
下载地址:http://dev.mysql.com/downloads/mysql/5.0.html
//查看系统中是否已经安装了MySQL,如果是卸载所有以mysql开头的包。
#rpm�Cqa|grepmysql
#rpm�Cemysql-*
//查找/etc/my.cnf(MySQL的选项配置文件),如果有请删除它,以免影响新安装版本的启动。
#rm�Cf/etc/my.cnf
#tar�Czxvfmysql-standard-5.0.27-linux-i686-glibc23.tar.gz
#cp�Crfmysql-standard-5.0.27-linux-i686-glibc23/usr/local/
//建立符号链接,如果以后有新版本的MySQL的话,你可以仅仅将源码解压到新的路径,然后重新做一个符号链接就可以了。这样非常方便,数据也更加安全。
#ln�Csmysql-standard-5.0.27-linux-i686-glibc23/usr/local/mysql
//添加用于启动MySQL的用户及用户组(如果以前安装过MySQl,用户及用户组可能已存在)。
#useraddmysql
#groupaddmysql
//初始化授权表
#cd/usr/local/mysql
#scripts/mysql_install_db
//修改MySQl目录的所有权
#cd/usr/local
#chgrp�CRmysqlmysql-standard-5.0.27-linux-i686-glibc23
#chgrp�CRmysqlmysql
#chown�CRmysqlmysql-standard-5.0.27-linux-i686-glibc23/data
#chown�CRmysqlmysql/data
#ln�Cs/usr/local/mysql/bin/*/usr/local/bin/
//启动Mysql
#bin/safe_mysqld--user=mysql&
//配置系统启动时自动启动MySQl
#cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld
#chkconfig--addmysqld
//修改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-pvariables
Password:
//可以看到以下项说明修改成功
|max_connections|1000
|max_user_connections|500
|wait_timeout|200
(2).安装Apache
下载地址:http://httpd.apache.org/
#tar�Czxvfhttpd-2.2.4.tar.gz
#cdhttpd-2.2.4
#./configure--prefix=/usr/local/apache--enable-so
//编译时加上加载模块参数--enable-so
#make
#makeinstall
#vi/usr/local/apache/conf/httpd.conf
//修改Apache配置文件,添加ServerNamewww.yourdomain.com或ServerName本机ip
#vi/etc/rc.d/rc.local
//在rc.local上加入一行
/usr/local/apache/bin/apachectl�Ckstart
系统启动时启动Apache服务。
(3).安装PHP
先安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库(Cacti的WeatherMap插件必须要较新GD库的支持)
库文件下载地址:http://oss.oetiker.ch/rrdtool/pub/libs/
1).安装zlib
tarzlib-1.2.3.tar.gz
cdzlib-1.2.3
./configure--prefix=/usr/local/zlib
make
makeinstall
2).安装libpng
tarzxvflibpng-1.2.16.tar.tar
cdlibpng-1.2.16
cdscripts/
mvmakefile.linux../makefile
cd..
make
makeinstall
注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个
3).安装freetype
tarzxvffreetype-2.3.4.tar.gz
cdfreetype-2.3.4
./configure--prefix=/usr/local/freetype
make
makeinstall
4).安装Jpeg
tar-zxfjpegsrc-1.v6b.tar.gz
cdjpeg-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一定要带--enable-shared参数,不然,不会生成共享库
./configure--prefix=/usr/local/libjpeg--enable-shared--enable-static
make&&makeinstall
5).安装Fontconfig
tar-zxvffontconfig-2.4.2.tar.gz
cdfontconfig-2.4.2
6).安装GDGD注释:GD是CACTIphp用于处理图像的程序;
tar-zxvfgd-2.0.34.tar.gzcdgd-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/freetypemakemakeinstallmakemakeinstall
编译时显示以下信息:
**Configurationsummaryforgd2.0.34:
SupportforPNGlibrary:yes
SupportforJPEGlibrary:yes
SupportforFreetype2.xlibrary:yes
SupportforFontconfiglibrary:yes
SupportforXpmlibrary:no
Supportforpthreads: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,RedHatAS4默认安装libxml包,但版本太低,PHP5需要更高版本的libxml包。
#tar�Czxvflibxml2-2.6.25.tar.gz
#cdlibxml2-2.6.25
#./configure
#make
#makeinstall
9).安装PHP
PHP下载地址:http://www.php.net/downloads.php#v5
tar-zxvfphp-5.2.3.tar.gzcdphp-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#cpphp.ini-recommended/usr/local/php/lib/php.ini#ln�Cs/usr/local/php/bin/*/usr/local/bin/#vi/usr/local/apache/conf/httpd.conf
查找
AddTypeapplication/x-compress.Z
AddTypeapplication/x-gzip.gz.tgz
在其下加入
AddTypeapplication/x-tar.tgz
AddTypeapplication/x-httpd-php.php
AddTypeimage/x-icon.ico
修改DirectoryIndex行,添加index.php
修改为
DirectoryIndexindex.phpindex.htmlindex.html.var
#vi/usr/local/apache/htdocs/test.php
wq保存退出。
#/usr/local/apache/bin/apachectl�Ckstop
#/usr/local/apache/bin/apachectl�Ckstart
在浏览器中输入: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//激活对FreeType1.x的支持
--with-freetype-dir=/usr/local/freetype//激活对FreeType2.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,并给执行权限chmodu+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/shBUILD_DIR=`pwd`INSTALL_DIR=/usr/local/rrdtoolcd$BUILD_DIRtarzxfcgilib-0.5.tar.gzcdcgilib-0.5makeCC=gccCFLAGS="-O3-fPIC-I."mkdir-p$BUILD_DIR/lb/includecp*.h$BUILD_DIR/lb/includemkdir-p$BUILD_DIR/lb/libcplibcgi*$BUILD_DIR/lb/libcd$BUILD_DIRtarzxfzlib-1.2.3.tar.gzcdzlib-1.2.3envCFLAGS="-O3-fPIC"./configure--prefix=$BUILD_DIR/lbmakemakeinstallcd$BUILD_DIRtarzxvflibpng-1.2.18.tar.gzcdlibpng-1.2.18envCPPFLAGS="-I$BUILD_DIR/lb/include"LDFLAGS="-L$BUILD_DIR/lb/lib"CFLAGS="-O3-fPIC"\./configure--disable-shared--prefix=$BUILD_DIR/lbmakemakeinstallcd$BUILD_DIRtarzxvffreetype-2.3.5.tar.gzcdfreetype-2.2.5envCPPFLAGS="-I$BUILD_DIR/lb/include"LDFLAGS="-L$BUILD_DIR/lb/lib"CFLAGS="-O3-fPIC"\./configure--disable-shared--prefix=$BUILD_DIR/lbmakemakeinstallcd$BUILD_DIRtarzxvflibart_lgpl-2.3.17.tar.gzcdlibart_lgpl-2.3.17envCFLAGS="-O3-fPIC"./configure--disable-shared--prefix=$BUILD_DIR/lbmakemakeinstallIR=-I$BUILD_DIR/lb/includeCPPFLAGS="$IR$IR/libart-2.0$IR/freetype2$IR/libpng"LDFLAGS="-L$BUILD_DIR/lb/lib"CFLAGS=-O3exportCPPFLAGSLDFLAGSCFLAGScd$BUILD_DIRtarzxfrrdtool-1.2.23.tar.gzcdrrdtool-1.2.23./configure--prefix=$INSTALL_DIR--disable-python--disable-tcl&&make&&makeinstall
//完成后建立符号连接
ln�Cs/usr/local/rrdtool/bin/*/usr/local/bin/
//执行rrdtool看是否安装正确
2.安装net-snmp
RedHat默认安装了SNMP服务,但好象没有snmpwalk,snmpget这两个命令,所以需要编译安装NET-SNMP。
NET-SNMP官方网站:http://www.net-snmp.org/
#tarzxvfnet-snmp-5.2.4.tar.gz
#cdnet-snmp-5.2.4
#./configure--prefix=/usr/local/net-snmp--enable-developer
#make
#makeinstall
#ln�Cs/usr/local/net-snmp/bin/*/usr/local/bin/
#cpEXAMPLE.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�Czxvfcacti-0.8.6j.tar.gz
#mv�Crcacti-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用户
#useraddcacti
//将rra目录的所有权给cacti用户
#chown�CRcacti/usr/loca/apache/htdocs/cacti/rra
//修改cacti目录所属组
#chgrp�CRcacti/usr/loca/apache/htdocs/cacti
//为cacti用户添加cron任务
#su�Ccacti
#crontab�Ce
*/5****/usr/local/bin/php/usr/local/apache/htdocs/cacti/poller.php>/dev/null2>&1
注意:首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限。
4.安装Cactid
CACTID的安装需要以下支持:
onet-snmp-devel(需要编译安装net-snmp时添加--enable-developer选项)
omysql
omysql-devel(mysql源文件编译安装后默认支持)
oopenssl-devel(Redhat默认安装)
#tar-zxvfcacti-cactid-0.8.6i.tar.gz
#cdcacti-cactid-0.8.6i
#./configure--with-mysql=/usr/local/mysql--with-snmp=/usr/local/net-snmp
#make
//这时你将在此目录下看到多出了cactid、cactid.conf两个文件
#mkdir/usr/local/cactid
#cpcactidcactid.conf/usr/local/cactid
#vi/usr/local/cactid/cactid.conf//修改cactid配置文件
DB_Host127.0.0.1
DB_Databasecacti
DB_Usercacti
DB_Passcacti
5.数据库配置
#mysql�Curoot�Cp
Password:
mysql>createdatabasecacti;
QueryOK,1rowaffected(0.00sec)
mysql>grantalloncacti.*tocacti@localhostidentifiedby“cacti”;
QueryOK,1rowaffected(0.00sec)
mysql>exit
#cd/usr/local/apache/htdocs/cacti
#mysql�Curoot�Cpcacti<cacti.sql
Password:
6.完成cacti的安装
1).在浏览器中输入:http://www.yourdomain.com/cacti/
默认用户名: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/cacti.log
CactidPollerFilePath/usr/local/cactid/cactid
4).进入cacti后需确认更改以下位置:(如下图)
Console>Settings>General
Console>Settings>Poller
下面是简单的安装总结可以和上面的对应着看:
以下就是Cacti中文版安装的全过程,各安装包基本都是最新的,基于Centos5.2平台下安装的!!下面是安装和配置的具体内容。
1.基本安装
Cacti中文是运作在apache+php+mysql+net-snmp工具集+rrdtool这样的一个工作环境之下,所以我们先要做一个基本的工作的环境
记的安装前先安装rpm的扩展包,安装方法见我的另外一个文章"rpm的高级管理"
#yum-yinstallmysqlmysql-serverphp-mysqlhttpdphp
上面完成一个php,http,mysql的环境,接下来安装要用到的包
#yum-yinstallphp-pdolm_sensorsnet-snmpphp-snmpnet-snmp-utilsperl-Net-Daemonperl-PlRPCperl-DBIrrdtoolperl-rrdtoolperl-DBD-MySQL
安装完,启动相关的程式,和设置开机启动
#chkconfigmysqldon
#chkconfighttpdon
#servermysqldstart
2.数据库设置
准备数据库,和设置权限,安装Cacti中文。
#mysql-uroot-p
mysql>createdatabaseCactidefaultcharactersetutf8;
mysql>GRANTSELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,LOCKTABLES,CREATETEMPORARYTABLES,DROP,REFERENCESONCacti.*TOCacti@localhostIDENTIFIEDBY‘passwd’;
mysql>flushprivileges;
mysql>\q
3.下载安装
下载Cacti中文版,解压到/var/www/Cacti.后进入Cacti的目录.导入Cacti的数据结构
下载地址:Cacti-0.8.7b-cn-utf8.tar.gz
#cd/var/www/Cacti
#mysql-uCacti-pCacti<Cacti.sql
修改配置文件
#vim/var/www/Cacti/include/config.php
$database_type="mysql";
$database_default="Cacti";
$database_hostname="localhost";
$database_username="Cacti";
$database_password="passwd";
$database_port="3306";
添加Cacti用户
$useraddCacti-d/var/www/Cacti-s/bin/false
$chown-RCacti/var/www/Cacti/rra/var/www/Cacti/log
这个上面可能添加不行试试:
#chown-hRCacti/var/www/Cacti/rra/var/www/Cacti/log