Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。



一. 安装apache

1.准备工作

1yum方式安装gccgcc-c++

# yum install gcc gcc-c++ -y

 

2)安装pcre

pcre下载地址:

http://jaist.dl.sourceforge.net/project/pcre/pcre/8.35/ 

#tar zxf pcre-8.35.tar.gz 

#cd pcre-8.35

#./configure prefix=/usr/local/pcre

#make && make install

  

3)安装aprapr-util

aprapr-unit下载地址:

http://archive.apache.org/dist/apr/    

1)解压文件

#tar zxf apr-1.5.0.tar.gz 

#tar zxf apr-util-1.5.3.tar.gz 

#tar zxf httpd-2.4.9.tar.gz 

 

2)将aprapr-util拷到httpsrclib目录下,并去掉版本号

#cp -r apr-1.5.0 httpd-2.4.9/srclib/apr

#cp -r apr-util-1.5.3 httpd-2.4.9/srclib/apr-util

 

3)编译安装

安装apr

#cd httpd-2.4.9/srclib/apr

#./configure --prefix=/usr/local/apr

#make && make install

 

安装apr-util

#cd /root/httpd-2.4.9/srclib/apr-util/

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

#make && make install

  

2.正式安装apache

Apache下载地址:

http://archive.apache.org/dist/httpd/ 

#cd httpd-2.4.9

#./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/

#make && make install


启动apache服务

#service httpd start

安装成功,启动httpd服务并加入开机启动

#chkconfig httpd on


二. 安装mysql

1.准备工作

1yum方式安装ncurses-devel

#yum install ncurses-devel y

 

2)安装cmake

cmake下载地址:

http://wwwNaNake.org/files/v3.0/

#tar zxf cmake-3.0.0.tar.gz 

#cd cmake-3.0.0

#./configure

#make && make install

 

2.创建mysql的安装目录及数据库存放目录

#mkdir /usr/local/mysql/date -pv

 

/usr/local/mysql/          //mysql安装目录

/usr/local/mysql/data       //存在数据库

3.创建mysql用户和用户组

#groupadd mysql

#useradd -r -g mysql mysql

 

4.源码方式安装mysql

Mysql下载地址:

http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz

#tar zxf mysql-5.6.17.tar.gz 

#cd mysql-5.6.17

#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DWITH_DEBUG=0

#make && make install

 

参数说明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  //安装目录

-DMYSQL_DATADIR=/usr/local/mysql/data   //数据库存放目录

-DMYSQL_TCP_PORT=3306    //端口号

-DENABLED_LOCAL_INFILE=1   //允许从本地导入数据

 

5.配置mysql

1)设置目录权限

#chown mysql:mysql /usr/local/mysql/ -R

 

2)初始化mysql数据库

#cd /usr/local/mysql/

#./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/

 

3)复制mysql服务启动脚本

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

 

4)配置环境变量

#vim /etc/profile

添加:

PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

 重新加载重启生效

#source /etc/profile

 

5)修改mysql主配置文件/etc/my.cnf

全部内容如下:

wKioL1h1qYSwblq3AAAdMvdkshU931.png-wh_50

6.启动mysql

1)开启守护进程,生成pid

#./mysqld_safe &

 (2)启动mysql

#service mysqld restart

 

 7.设置mysql管理员密码

#./mysqladmin password "123456" -u root

  

三. 安装PHP

1.准备工作

1)安装zlib

zlib下载地址:

http://www.zlib.net/

#tar zxf zlib-1.2.8.tar.gz 

#cd zlib-1.2.8

#./configure --prefix=/usr/local/zlib

#make && make install

 

2)安装libpng

libpng下载地址:

http://sourceforge.net/projects/libpng/postdownload?source=dlp

注意:这里建议下载libpng-1.5.18版本,因为libpngzlib存在版本兼容的问题,如果版本不合适,会make的时报错

 

已知 zlib-1.2.8libpng-1.6.10之间就存在这种问题, zlib-1.2.8libpng-1.5.18可以正常安装,有篇文章对此问题进行了一些描述

#tar zxf libpng-1.5.18.tar.gz 

#cd libpng-1.5.18

#./configure --prefix=/usr/local/libpng 

#make && make install


编译的时候后面加上--with-zlib-prefix=/usr/local/zlib/,还是提示相同的错误

明明已经安装了zlib,为什么提示zlib没有安装,原来是没有安装zlib-devel,下面我们使用yum方式安装zlib-devel

#yum install zlib-devel

 

下面编译就成功了

#./configure --prefix=/usr/local/libpng --with-zlib-prefix=/usr/local/zlib/

再安装

 

3)安装freetype

freetype下载地址:

http://sourceforge.net/projects/freetype/files/freetype2/2.5.3/

#cd freetype-2.5.3

#./configure --prefix=/usr/local/freetype

#make && make install

 

4)安装jpeg

jpeg下载地址:

http://www.ijg.org/files/ 

#tar zxf jpegsrc.v9.tar.gz 

#cd jpeg-9/

#./configure --prefix=/usr/local/libjpeg

#make && make install

 

5yum方式安装fontconfiggdlibxml2*libjpeg-devel

# yum install fontconfig gd –y

 # yum install libxml2* libjpeg-devel –y

 

2.正式安装PHP

PHP下载地址:wget http://cn2.php.net/distributions/php-5.5.14.tar.gz 

 

#tar zxf php-5.5.14.tar.gz 

#cd php-5.5.14

#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-gd --with-mysql=/usr/local/mysql/ --with-zlib-dir=/usr/local/zlib/ --with-png-dir=/usr/local/libpng/ --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --enable-mbstring --enable-sockets --enable-xml  --disable-fileinfo

#make && make install


最后建立一个软连接

 ln -s /usr/local/php/bin/* /usr/local/bin/


四. 安装rrdtool

1.准备工作

1yum方式安装cairo-develpangopango-devellibpng-devellibart_lgpl-develintltoolfreetype-devel 

#yum install cairo-devel pango pango-devel libpng-devel libart_lgpl-devel intltool freetype-devel –y

 

2yum方式安装perl-ExtUtils-CBuilderperlExtUtils-MakeMaker

# yum install perl-ExtUtils-CBuilder perlExtUtils-MakeMaker –y

 

2.正式安装rrdtool

rrdtool下载地址:

http://download.chinaunix.net/down.php?id=35595&ResourceID=9078&site=1 

#tar zxf rrdtool-1.4.5.tar.gz 

#cd rrdtool-1.4.5

#./configure --prefix=/usr/local/rrdtool --disable-tcl

#make && make install

 

 2.增加链接

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


五. 安装net-snmp

1yum方式安装net-snmp

# yum install net-snmp* -y


2)配置net-snmp(主配置文件/etc/snmp/snmpd.conf


1)找到:

 wKioL1h1t_bDWzNsAAANXrLq9Z4948.png

修改成:

 wKioL1h1uAmzo3QnAAAKhba-c5Y869.png

其中的192.81.128.66就是你允许哪台主机可以访问到你(即cacti服务器)

2)找到:

 wKiom1h1uBux_o9BAAAL_Dmioeg259.png

将注释去掉,即:

 wKiom1h1uDDQkcC5AAAMd8oqtEE656.png

3)找到:

 wKioL1h1uESQMfmDAAAD-***QbE755.png

将注释去掉

 wKioL1h1uFaRFoDiAAAGvoCrVC4152.png

3)启动net-snmp

 service snmpd start

监控的端口是161,查看是否已打开

netstat -an |grep snmp 

4)验证是否有数据

1localhost

# snmpwalk -v 2c -c public localhost

 

2)本机ip测试

# snmpwalk -v 2c -c public 192.81.128.66

192.81.128.66就是被监控机的IP(这里测试的是本机,所以就是本机IP

  

六. 安装cacti

cacti下载地址:

http://www.cacti.net/downloads/

1. 解压cacti后,把cacti的目录移到httpd里存放网页的htdocs目录,并去掉版本号

 #tar zxf cacti-0.8.7h.tar.gz

#mv cacti-0.8.7h  /usr/local/apache/htdocs/cacti


2.增加cacti用户,并修改目录权限

cd /usr/local/apache/htdocs

useradd catic

 chown -R cacti.cacti ./


3.root身份登陆mysql,新建数据并授权

 mysql -uroot -p

> grant all on cacti.* to cacti@'localhost' identified by '123456';

> flush privileges;

 

4.导入数据库

 cd /usr/local/apache/htdocs/cacti

 # /sur/local/mysql/bin/mysql -u cacti -p123456 cacti < cacti.sql


vim include /config.php

这里有cacti连接使用的数据库类型,用户名,密码信息,按照自己的需要进行配置

wKioL1h1vB-x6RInAAAnCA7fAZ4277.png 

并增加:$url_path="/cacti/";


5.配置apache(配置文件/usr/local/apache/conf/httpd.conf

 找到:

wKiom1h1vEjhIQsaAAAJO6_IWEc294.png

修改成:

wKioL1h1vFnxEDGsAAAVO_ZTBaY659.png

wKioL1h1vIyjPJLnAAAOYmKLews746.png

检测一下httpd的配置文件语法重启httpd服务

 /usr/local/apache/bin/apachectl configtest

 yum install php-mysql -y


6.关闭防火墙和selinux,访问cacti安装界面

 setenforce 0

service iptables stop


7.重启apache服务

 service httpd restart


七. 登陆cacti,进行cacti安装

1.在浏览器输入http://192.81.128.66/cacti,进入web界面

 

点击Next 

2.出现如1界面

 依然点击Next

3.出现如下界面,没有错误,perfect

wKiom1h1xfCRJXkIAAF8UJlKnis529.png 

点击Finish

重新访问一下看看

这是就出现了cacti的登陆界面

 4.第一次登陆,用户名,密码都是admin

wKioL1h1xk-Czi8GAAFOrQHdyio663.png 

7.这是成功登陆cacti

wKiom1h1xrSC9tf3AAGMnWWxZGA201.png 

当出现上图情况时,cacti已安装完毕,可正常使用。

cacti默认是使用cmc.php方式去画图的,但据说使用spine方式比较节省系统资源消耗,

8. 生成图形文件 

 在界面中点击graphs,图形不显示,使用如下命令生成图形文件 

/usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php 

此时,图片出现的可能都是乱码,那个因为/usr/share/fonts/下没有任何字符文件。

 这个问题解决办法很简单,随便拷一个.ttf的文件到/usr/share/fonts/下就可以了

wKioL1h1x83CNDqOAAAWAEXegxA172.png 就可以出图了 

9. 加入crontab服务

 */5 * * * * env LANG=C /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php

 

10.过一段时间后,就会有数据图了