Cacti工具是一套开源的基于Web的网络监控和系统监控的图形解决方案。Cacti通过SNMP服务获取数据,并使用RRDtool绘制图形,提供非常直观的数据和用户管理功能。Cacti需要Web、MySQL和PHP的支持。Cacti一般用于监控网络流量、CPU负载、磁盘空间等。

wKioL1agqMHSuWDVAAGQ-kNaHtY778.jpg

Cacti官网:http://www.cacti.net/


安装Cacti需要安装的软件包:Apache、MySQL、PHP、RRTool、PHP-SNMP、NET-SNMP


一、安装Cacti需要安装的软件包

1、安装扩展源

[root@sh ~]# rpm -ivh http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm

2、安装Apache

[root@sh ~]# yum -y install httpd httpd-devel

3、安装MySQL

[root@sh ~]# yum -y install mysql mysql-server

4、安装PHP及相关软件

[root@sh ~]# yum install php php-mysql php-gd php-pear php-devel php-common php-cli php-mbstring php-mcrypt

5、启动Apache、MySQL

[root@sh ~]# chkconfig httpd on
[root@sh ~]# chkconfig mysqld on
[root@sh ~]# service httpd start
[root@sh ~]# service mysqld start

[root@sh ~]# mysqladmin -uroot password dbpasswd ;设置root用户密码

6、安装PHP-SNMP和NET-SNMP

[root@sh ~]# yum -y install php-snmp net-snmp net-snmp-utils net-snmp-libs

7、安装RRDTool

[root@sh ~]# yum -y install rrdtool

wKioL1agUPiRcShDAABcj__hdVY812.jpg

二、安装Cacti服务

1、下载cacti-0.8.8f.tar.gz

[root@sh ~]# wget http://www.cacti.net/downloads/cacti-0.8.8f.tar.gz


2、解压到网站目录/var/www/html/下

[root@sh ~]# tar zxf cacti-0.8.8f.tar.gz 

[root@sh ~]# mv cacti-0.8.8f /var/www/html/cacti

[root@sh ~]# chown -R apache.apache /var/www/html/


3、创建Cacti数据库、用户和密码

[root@sh ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL ON cacti.* TO 'cacti'@'localhost' IDENTIFIED BY 'cactipass';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
mysql> quit
Bye

4、导入Cacti数据库文件

[root@sh ~]# mysql -uroot -p cacti < /var/www/html/cacti/cacti.sql 


5、修改Cacti相关的MySQL数据库配置文件

[root@sh ~]# vim /var/www/html/cacti/include/config.php
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cactipass";
$database_port = "3306";
$database_ssl = false;


6、添加防火墙规则允许外部访问80端口

[root@sh ~]# iptables -A INPUT -p udp --dport 80 -j ACCEPT
[root@sh ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[root@sh ~]# service iptables save


7、配置Cacti虚拟主机文件,创建/etc/httpd/conf.d/cacti.conf,允许192.168.1.0的网段访问

[root@sh ~]# vim /etc/httpd/conf.d/cacti.conf
Alias /cacti    /var/www/html/cacti
<Directory /var/www/html/cacti/>
        Order Deny,Allow
        Deny from all
        Allow from 192.168.1.0/24
</Directory>


8、调整系统时间,并且修改php.ini对应的时区为'Asia/Shanghai'

[root@sh ~]# ntpdate time.nist.gov
[root@sh ~]# hwclock    ;写入BIOS
#添加时间自动同步计划任务
0 11 * * * /usr/sbin/ntpdate time.nist.gov;hwclock -w
[root@sh ~]# vim /etc/php.ini
date.timezone = 'Asia/Shanghai'

9、配置cacti轮询php脚本,添加cron计划任务,让它每五分钟执行一次以生成图像显示

*/5 * * * *  /usr/bin/php /var/www/html/cacti/poller.php
[root@sh ~]# /usr/bin/php /var/www/html/cacti/poller.php
OK u:0.00 s:0.01 r:0.08
OK u:0.00 s:0.01 r:0.10
OK u:0.00 s:0.01 r:0.11
OK u:0.00 s:0.01 r:0.13
OK u:0.00 s:0.01 r:0.19
01/21/2016 03:15:01 PM - SYSTEM STATS: Time:0.3285 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5


10、重启服务

[root@sh ~]# service httpd restart
[root@sh ~]# service mysqld restart
[root@sh ~]# service snmpd restart
[root@sh ~]# service crond restart


11、浏览器登录http://IP/cacti/install/完成安装向导

wKioL1aggwnBNB_-AAFgGoHIBts880.jpg

Cacti默认登录用户和密码都是admin,根据提示修改,进入Cacti的Web界面

wKioL1agg5_i1dssAADKHJGyKBs790.jpg

安装完成


三、安装Cacti加速轮询器Spine

1、下载spine-0.8.8f,版本对应cacti的版本

[root@sh ~]# wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8f.tar.gz

2、安装Spine依赖的包

[root@sh ~]# yum -y install libtool net-snmp-devel mysql-devel

3、编译安装Spine

[root@sh cacti-spine-0.8.8f]# ./configure 
[root@sh cacti-spine-0.8.8f]# make
[root@sh cacti-spine-0.8.8f]# make install
make[1]: Entering directory `/root/cacti-spine-0.8.8f'
 /bin/mkdir -p '/usr/local/spine/bin'
  /bin/sh ./libtool   --mode=install /usr/bin/install -c spine '/usr/local/spine/bin'
libtool: install: /usr/bin/install -c spine /usr/local/spine/bin/spine
 /bin/mkdir -p '/usr/local/spine/etc'
 /usr/bin/install -c -m 644 spine.conf.dist '/usr/local/spine/etc'
make[1]: Leaving directory `/root/cacti-spine-0.8.8f'
[root@sh cacti-spine-0.8.8f]# ls /usr/local/spine/
bin  etc

4、配置spine.conf文件,指定cacti数据库、用户和密码

[root@sh ~]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf

[root@sh ~]# vim /etc/spine.conf 

wKioL1ag5LXAX0rgAAAUaZVITj4400.jpg


5、执行Spine轮询脚本获取监测主机信息

[root@sh ~]# /usr/local/spine/bin/spine 
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 0.8.8f starting
SPINE: Time: 0.2636 s, Threads: 5, Hosts: 2


6、在Cacti页面选择Spine为默认轮询方式

console--->Settings--->Paths--->Spine Poller File Path--->/usr/local/spine/bin/spine--->save

wKiom1ag5cHjUFGEAACBb3A_nS4105.jpg

Poller--->Poller Type--->spine--->save

wKioL1ag5pngKI3lAABp3QWA5Es787.jpg

Cacti配置完成