日期:2014-05-16  浏览次数:20711 次

linux+cacti安装配置,监控主机性能

一、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、基本架构

cacti-architecture

?

2、工作原理

cacti-principle

?

?

三、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等命令的具体位置(绝对路径)。

?

?

四、相关参考阅读

?

一、概述及Cacti的工作流程

二、Cacti的安装
三、Cacti的使用
四、Cacti脚本及模板
五、Cacti插件
六、Cacti高级应用--打造自己的Cacti模板