环境:系统为CentOS 6.0

1. 安装所依赖的软件包

 
  1. yum groupinstall "SNMP Support"  
  2. yum install net-snmp-devel  
  3. yum install rrdtool* 

安装snmp和rrdtool(cacti绘图需要rrdtool)

安装php-snmp扩展

 
  1. cd /usr/local/src/php-5.2.17/ext/snmp/  
  2. /usr/local/php/bin/phpize  
  3. ./configure  
  4. make  
  5. make install  
  6. # 添加扩展  
  7. vi /usr/local/php/etc/php.ini  
  8. extension = "snmp.so" 
  9. # 重载php  
  10. php-fpm reload 

2. 添加cacti用户

 
  1. useradd -r cacti -d /data/www/cacti 

3. 下载软件包,解压

 
  1. wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz -P /usr/local/src  
  2. tar zxvf /usr/local/src/cacti-0.8.7g.tar.gz -C /data/www  
  3. chown -R root:root /data/www/cacti  
  4. chown -R cacti:cacti /data/www/cacti/logs  
  5. chown -R cacti:cacti /data/www/cacti/rra  
  6. chmod -R 0777 /data/www/cacti/logs  
  7. chmod -R 0777 /data/www/cacti/rra 

4. 创建数据库并导入数据

 
  1. mysql -uroot -p  
  2. > create database cacti;  
  3. > grant all on cacti.* to cacit@'192.168.1.10' identified by 'xxxxxx';  
  4. > flush privileges; 

因为cacti.sql文件中使用TYPE=MyISAM,我的mysql版本是5.5.x,将TYPE=修改为ENGINE=

 
  1. sed -i 's#TYPE=#ENGINE=#g' /data/www/cacti/cacti.sql 

导入数据库

 
  1. mysql -uroot -p cacti < /data/www/cacti/cacti.sql 

5. 修改cacti配置文件

 
  1. vi /data/www/cacti/include/config.php  
  2. $database_type = "mysql";  
  3. $database_default = "cacti";  
  4. $database_hostname = "192.168.1.10";  
  5. $database_username = "cacti";  
  6. $database_password = "xxxxxx";  
  7. $database_port = "3306"

6. 添加定时任务

 
  1. su – cacti  
  2. crontab -e  
  3. */5 * * * * /usr/local/php/bin/php /data/www/cacti/poller.php > /dev/null 2>&1 

可以手动执行/usr/local/php/bin/php /data/www/cacti/poller.php看看是否有报错,如果有报错需要解决。

7. 配置nginx

nginx,php和mysql的安装参考张宴的文章

 
  1. vi /usr/local/nginx/conf/vhosts/cacti.conf  
  2. server  
  3. {  
  4. listen 192.168.1.11:8013;  
  5. server_name 192.168.1.11;  
  6. index index.html index.htm index.php;  
  7. root /data/www/cacti;  
  8.  
  9. location ~ .*\.(php|php5)?$  
  10. {  
  11. # fastcgi_pass unix:/tmp/php-cgi.sock;  
  12. fastcgi_pass 192.168.1.10:9000;  
  13. fastcgi_index index.php;  
  14. include fcgi.conf;  
  15. }  
  16.  
  17. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  
  18. {  
  19. expires 30d;  
  20. access_log off;  
  21. }  
  22.  
  23. location ~ .*\.(js|css)?$  
  24. {  
  25. expires 1h;  
  26. access_log off;  
  27. }  
  28.  
  29. log_format cacti '$remote_addr – $remote_user [$time_local] [$request_time] "$request" '  
  30. '$status $body_bytes_sent "$http_referer" '  
  31. '"$http_user_agent" $http_x_forwarded_for';  
  32. access_log off;  

重载nginx

 
  1. nginx -t  
  2. nginx -s reload 

8. 安装rrdtool

在第一步中已经用yum安装完成

9. 进入登陆界面

在Web浏览器中输入:http://192.168.1.11:8013/,确认各个执行文件的路径,最后进入登陆页面,用户名和密码都为admin,之后需要输入admin的新密码两次,安装完成。