1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。
因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。
rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。
(1)mysql安装
[root@monitor_server ~]#rpm -qa | grep mysql
//检查系统是否安装自带的rpm包mysql
[cacti@monitor_server ~]$mkdir pkgs
[cacti@monitor_server ~]$cd pkgs
[cacti@monitor_server pkgs]$tar -zxvf mysql-5.0.45.tar.gz
[cacti@monitor_server pkgs]$cd mysql-5.0.45
[root@monitor_server mysql-5.0.45]$useradd mysql
//转为root用户,添加mysql用户来运行mysql
[cacti@monitor_server mysql-5.0.45]$./configure --prefix=/home/cacti/mysql --with-charset=gb2312
[cacti@monitor_server mysql-5.0.45]$make && make install
然后将源配置文件拷贝到目的路径下
[root@monitor_server ~]#cp /home/cacti/mysql/share/mysql/my_medium.cnf /etc/my.conf
将Mysql的目录权限进行设置
[root@monitor_server ~]#chown -R cacti.cacti /home/cacti
[cacti@monitor_server ~]$/home/cacti/mysql/bin/mysqld_safe --user=mysql&
//让Mysql以后台方式运行起来
[cacti@monitor_server ~]$/home/cacti/mysql/bin/mysqladmin -u root -password 'mysql'
//将Mysql的Root用户的密码进行更改
[cacti@monitor_server ~]$/home/cacti/mysql/bin/mysql -u root -p
//连接到数据库,测试密码是否更改成功,若连接到说明已成功。
(2)apache安装
[cacti@monitor_server pkgs]$tar -zxvf httpd-2.2.17.tar.gz
[cacti@monitor_server pkgs]$cd httpd-2.2.17
[cacti@monitor_server httpd-2.2.17]$./configure --prefix=/home/cacti/httpd \\
--enable-modules=most \
--enable-mods=most \
--enable-cache \
--enable-disk-cache \
--enable-mem-cache \
--enable-file-cache \
--enable-nonportable-atomics \
--enable-rewrite-shared
[cacti@monitor_server httpd-2.2.17]$make && make install
[cacti@monitor_server httpd-2.2.17]$vim ~/httpd/conf/httpd.conf
//修改apache配置文件。把servername去掉注释,并把后面改成本机的ip地址和端口,端口1024前除root用户不可用,所以最好改成9090端口。
cacti@monitor_server httpd-2.2.17]~/httpd/bin/apachetcl -t //检查配置文件的语法是否正确。
Syntax ok
cacti@monitor_server httpd-2.2.17]~/httpd/bin/apachetcl -k start
在浏览器访问::9090 若能成功,则说明没有问题。(作者本机ip是192.168.16.137)