日期:2014-05-16 浏览次数:20677 次
一、Cacti概述
1、cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2、Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
3、snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。
二、Cacti架构及原理
?
1、基本架构
?
2、工作原理
?
?
三、Cacti的安装
?
1、基本需求
?? apache+php+mysql
?? 注意:
PHP必须开启snmp、socket、gd这三个函数库。
?? 如果您的PHP是通过源码安装且已经支持GD库,但没有安装和开启snmp和socket库。那么,您可以按照下列方式动态安装这两个库,而不必重新编译安装。
?? 假设您的PHP源码路径为:/usr/local/software/php-5.3.5,安装路径为:/usr/local/php5,php.ini文件路径为:/usr/local/php5/etc/php.ini
??
?? 编译sockets
?? # cd /usr/local/software/php-5.3.5/ext/sockets
?? # /usr/local/php5/bin/phpize
?? # ./configure --with-php-config=/usr/local/php5/bin/php-config
?? # make && make install
?? 编译SNMP
?? # cd /usr/local/software/php-5.3.5/ext/snmp
?? # /usr/local/php5/bin/phpize
?? # ./configure --with-php-config=/usr/local/php5/bin/php-config
?? # make && make install
?? 复制刚编译的扩展到PHP扩展目录
?? # cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/sockets.so /usr/local/php5/etc/
?? # cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/snmp.so /usr/local/php5/etc/
?? 修改php.ini
?? # vi /usr/local/php5/etc/php.ini
?? 加入:
?? extension=sockets.so
?? extension=snmp.so
2、安装snmp
?? 查看《linx+snmp的安装及配置说明》
3、安装RRDTool
?? http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.0.x/rrdtool-1.0.50.tar.gz
?? # tar zxvf rrdtool-1.0.50.tar.gz
?? # cd rrdtool-1.0.50
?? # ./configure --prefix=/usr/local/rrdtool
?? # make
?? # make install
4、安装Cacti
??? A、解压cacti包,并且将解压缩的包拷贝至www目录中。
??? # tar xzvf cacti-version.tar.gz
??? # mv cacti-version /var/www/cacti
??? 注:该处的/var/www为你服务器上对应的web根目录。
??? B、在mysql中创建cacti数据库,并且导入基本数据。
??? # mysqladmin --user=root create cacti
??? # mysql cacti < cacti.sql
??? C、修改include/config.php配置文件
??? $database_default = "cacti";
??? $database_hostname = "localhost";
??? $database_username = "cactiuser";
??? $database_password = "cacti";
??? D、新增cacti系统用户,设置cacti的log及rra文件夹权限
??? # useradd -r -M cactiuser
??? # chown -R cactiuser rra/ log/
??? E、将轮询程序增加到/etc/crontab中
??? # vi /etc/crontab
??? 加入:*/5 * * * * cactiuser php /var/www/cacti/poller.php > /dev/null 2>&1
??? 说明:请勿使用root执行上面命令,不然还要再执行上一步骤(设定log及rra文件夹权限)。
??? F、登录及基本设置
??? 登录地址为:http://your-server/cacti/
??? 账号及密码:默认账号和密码都是admin
??? 登录后需要基本配置(功能路径:console/configuration/settings/paths)中设置rrdtool、php、snmpwalk、snmpget等命令的具体位置(绝对路径)。
?
?
四、相关参考阅读
?