第一部分:Cacti+Spine的安装部署。
注:此文Cacti+Spine安装是参照CSDN上一位大佬发的原创文章,但是安装时遇到了一些小问题,解决方法都已经完善在此文章里了,发布此文是为了方便自己以后阅读。原文链接:点这里
平台 CentOS-6.5 Cacti版本 1.1.36
1、安装epel扩展源
#yum install -y epel-release
2、配置lamp,分别安装httpd、php、mysql
安装epel扩展源后使用yum安装会报错,所以需要先把/etc/yum.repos.d/epel.repo,文件baseurl的注释放开,mirrorlist注释掉。
具体如下:
#vi /etc/yum.repos.d/epel.repo (找到baseurl去掉注释,mirrorlist加上注释)
#yum install -y httpd php php-mysql php-ldap php-mbstring mysql mysql-server mysql-devel php-gd libjpeg libjpeg-devel libpng libpng-devel php-snmp php-posix vim wget
#/etc/init.d/mysqld start
#/etc/init.d/httpd start
#chkconfig mysqld on
#chkconfig httpd on
3、安装cacti net-snmp rrdtool
#yum install -y net-snmp net-snmp-utils rrdtool
#/etc/init.d/snmpd start
#chkconfig snmpd on
#cd /usr/local/src
#wget https://www.cacti.net/downloads/cacti-1.1.36.tar.gz
#tar zxvf cacti-1.1.36.tar.gz
#mkdir -p /data/www
#mv cacti-1.1.36 /data/www/cacti
4、安装spine
#wget https://www.cacti.net/downloads/spine/cacti-spine-1.1.36.tar.gz
#tar zxvf cacti-spine-1.1.36.tar.gz
#mv cacti-spine-1.1.36 /usr/local/spine
#cd /usr/local/spine
#yum install -y net-snmp-devel mysql-devel openssl-devel dos2unix autoconf automake binutils libtool gcc cpp glibc-headers kernel-headers glibc-devel help2man
#sh bootstrap
#./configure --with-reentrant
#make
#make install
#chown root:root /usr/local/spine/bin/spine
#chmod +s /usr/local/spine/bin/spine
编辑spine.conf:
#cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
#vi /etc/spine.conf修改如下部分:
DB_Host 127.0.0.1
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306
进行初始化:
#/usr/local/spine/bin/spine //执行此命令,成功后显示如下
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 1.1.36 starting
SPINE: Time: 0.0716 s, Threads: 5, Devices: 0
5、配置httpd
创建并编辑cacti主机:
#vim /etc/httpd/conf.d/cacti.conf添加:
Alias /cacti /data/www/cacti
<Directory /data/www/cacti/>
<IfModule mod_authz_core.c>
#httpd 2.4
Require host localhost
</IfModule>
<IfModule !mod_authz_core.c>
#httpd 2.2
Order deny,allow
Allow from all
Allow from localhost
</IfModule>
</Directory>
<Directory /data/www/cacti/log>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Directory>
<Directory /data/cacti/rra>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Directory>
6、配置mysql数据库
导入数据创建cacti库
#mysql -uroot -e “create database cacti”
创建cacti用户
#mysql -uroot -e “grant all on cacti.* to ‘cacti’@’127.0.0.1’ identified by ‘cacti’;”
导入sql文件:
#mysql -uroot cacti < /data/www/cacti/cacti.sql
#yum install -y ntp(安装ntpdate)
#ntpdate asia.pool.ntp.org(同步时间)
7、编辑cacti配置文件
#vim /data/www/cacti/include/config.php更改如下:
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "127.0.0.1";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
$database_ssl = false;
8、添加任务以及更改属组
#crontab -e
* * * * * /usr/bin/php /data/www/cacti/poller.php
#chgrp -R root /data/www/cacti
#chown -R root /data/www/cacti/rra
#chown -R root /data/www/cacti/log
#chown -R root /data/www/cacti/poller.php
#chmod 777 /data/www/cacti/rra
#chmod 777 /data/www/cacti/log
#chmod 777 /data/www/cacti/resource/snmp_queries
#chmod 777 /data/www/cacti/resource/script_server
#chmod 777 /data/www/cacti/resource/script_queries
#chmod 777 /data/www/cacti/scripts
#chmod 777 /data/www/cacti/cache/boost
#chmod 777 /data/www/cacti/cache/mibcache
#chmod 777 /data/www/cacti/cache/realtime
#chmod 777 /data/www/cacti/cache/spikekill
9、设置防火墙和Selinux
#vi /etc/sysconfig/iptables
在配置文件里添加这条规则:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
保存退出后使用/etc/init.d/iptables restart重启防火墙,如果报错就再输入以下三条命令:
#/sbin/iptables -l INPUT -p tcp --dport 80 -j ACCEPT
#/etc/rc.d/init.d/iptables save
#/etc/init.d/iptables restart
关闭Selinux命令:
#vi /etc/selinux/config
将这行改成SELINUX=disabled
#vi /etc/php.ini找到date.timezone取消注释并修改成date.timezone = “Asia/Shanghai”
然后重启服务器,在浏览器访问:ip/cacti,进入安装界面。
在安装界面看到MySQL时区设置报错:ERROR: Your Cacti database login account does not have access to the MySQL TimeZone database. Please provide the Cacti database account "select" access to the "time_zone_name" table in the "mysql" database, and populate MySQL's TimeZone information before proceeding.
解决办法:登录MySQL,执行以下内容
>GRANT SELECT ON mysql.time_zone_name TO cacti@localhost IDENTIFIED BY 'cacti';
>flush privileges;
然后发现又报错:ERROR: Your MySQL TimeZone database is not populated. Please populate this database before proceeding.
解决办法:执行以下内容
#/usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -uroot -p mysql
然后就可以继续点击下一步。
然后到这一步的时候发现有个路径报错,编辑一下把最后的/spine给删掉。(或者继续点击下一步安装完后也可以在设置里找到修改)
修改后可以看到路径正确了(具体的路径可以使用find / -name spine来查看,保持一致就行)
检查各个模块时,可能有部分错误,比如提示没有日志:
#touch /data/www/cacti/log/cacti.log
刷新浏览器,显示正常,而spine可以在后面设置具体路径
如果到这一步显示Not Writable的话就使用chmod命令给相应的权限,如果有权限就点击下一步
全选点击完成
默认的用户名密码都是admin,登录后会强制修改密码。
修改完密码后就安装完成,到用户界面了。
在设置里可以将poller周期和cron周期改为每分钟。
至此,Cacti+Spine的流量监控环境就搭建好了。
第二部分:添加交换机创建流量图。
在这一步之前先准备一台配置好远程和SNMP的交换机
一、点击console -> Create -> New Graphs然后右上角点击Create New Device
二、输入设备的信息
三、添加端口
四、创建树
五、添加树
六、发布树
七、完成创建
至此流量监控图就创建完成了。