CentOS 6.0
架设流量监控及集中日志系统
 
 第一章、cacti的安装
 
1、 系统的基本设置
2、 设置主机名
3、 [root@localhost ~]# vi /etc/sysconfig/network
4、 [root@localhost ~]# exit
5、 重新登陆
6、 [root@GZ-Cacti ~]#
7、 安装screen后台运行程序
 yum -y install screen
8、 安装优秀的编辑器vim
 yum -y install vim
9、 执行screen -S cacti进程进行安装程序防止断开远程导致安装中断

 
 
10、              cacti所需组件
    http
    Mysql
    mysql-server
    Php
    Php-mysql
    Php-snmp
    php-cli
    php-common
    Perl-DBD-MySQL
    Php-pdo
    rrdtool
    Net-snmp
    Net-snmp-libs
    Net-snmp-utils
    rrdtool
yum安装这些组件
yum -y install httpd php php-mysql php-snmp php-cli php-common mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL rrdtool
 
#下载cacti
[root@GZ-cacti ~]# cd /home/
[root@GZ-cacti home]# wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz
 
#解压cacti
[root@GZ-cacti home]# tar xvf cacti-0.8.7g.tar.gz
#进入cacti文件夹,将里面的文件移动到/var/www/html/
[root@GZ-cacti home]# cd cacti-0.8.7g
[root@GZ-cacti cacti-0.8.7g]#
[root@GZ-cacti cacti-0.8.7g]# mv * /var/www/html/
#启动apache及mysql服务
[root@GZ-cacti cacti-0.8.7g]# /etc/init.d/httpd restart
Stopping httpd:                                            [ OK ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 61.140.3.66 for ServerName
                                                           [ OK ]
[root@GZ-cacti cacti-0.8.7g]# /etc/init.d/mysqld restart
Stopping mysqld:                                           [ OK ]
Starting mysqld:                                           [ OK ]
[root@GZ-cacti cacti-0.8.7g]#
 
#并将apache、mysql及network加入自启动
 
# chkconfig --level 35 httpd on
# chkconfig --level 35 mysqld on
#chkconfig network on
 
建立数据库
mysql> create database cacti;
mysql> grant all privileges on cacti.* to cactiuser@localhost identified by 'cacti' with grant option;
mysql>flush privileges;
 
导入cacti数据库
[root@GZ-cacti cacti-0.8.7g]# mysql -h localhost -u cactiuser -p cacti Enter password:
[root@GZ-cacti cacti-0.8.7g]#
 
修改cacti配置文件
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cacti";
$database_port = "3306";
 
/* Default session name - Session name must contain alpha characters */
#$cacti_session_name = "Cacti";
 
暂时关闭防火墙
/etc/init.d/iptables stop
 
检查SELinux现时况态

要知到你现在是否使用 SELinux:

# getenforce
enforcing
 
 
关闭selinux
修改档案/etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=enforcing

# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted.NETwork daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

把 SELINUX设定为disable, 下次启动系统后将会停止SElinux。
 
# getenforce
disable


 
进入安装界面
http://(cacti-ip)/install/index.php
确保每个路径都正确点击下一步完成安装
 
配置snmp
vi /etc/snmp/snmp.conf
(7)配置snmp
vi /etc/snmp/snmp.conf
#将下边这行中的default
com2secnotConfigUser default public
 
#改为127.0.0.1
com2secnotConfigUser 127.0.0.1 Cacti
 
#将下边这行中的systemview
access notConfigGroup "" any noauth exact systemview none none
 
#改为all
access notConfigGroup "" any noauth exact all none none
 
#将下边这行的注释“#”号去掉
#view all included .1 80
 
#重启snmpd服务
service snmpd restart
 
用这个命令进行测试能抓取信息为配置正确
snmpwalk -v 1 localhost -c Cacti
 
安装ntpdate并且停用自动更新
yum -y install ntpdate
/etc/init.d/ntpdate stop
chkconfig ntpdate off
 
以cacituser用户增加入一个计划任务,使得 cacti 每五分钟生成一个监控图表。
crontab -e
 
#加入如下内容。注意poller.php的路径
*/5 * * * * php /var/www/html/poller.php > /dev/null 2>&1
 
时间同步命令,每十分钟跟因特网同步时钟
*/10 * * * * ntpdate 210.72.145.44 > /dev/null 2>&1
并将rra和log文件夹赋予cactiuser以读写权限,poller.php文件赋予cactiuser用户运行权限
[cactiuser@localhost html]$ chmod 777 rra
[cactiuser@localhost html]$ chmod 777 log
[cactiuser@localhost html]$ chmod 755 poller.php
 
至此cacti安装完成,稍等五分钟刷新一下就可以出图


11、报错处理

1)/usr/bin/ld: cannot find -lmysqlclient 解决方法

原因是GCC 的默认搜索没有包含 /usr/lib/mysql

 解决方法:

    执行   export LIBRARY_PATH=/usr/lib/mysql


2)# make

false // No help2man // --output=spine.1 --name='Data Collector for Cacti' --no-info --version-option='--version' ./spine

make: *** [spine.1] Error 1报错


解决办法

需安装help2man解决

#yum -y install help2man


3)ERROR: Your Cacti database login account does not haveaccess to the MySQL TimeZone database. Please provide the Cacti databaseaccount "select" access to the "time_zone_name" table inthe "mysql" database, and populate MySQL's TimeZone informationbefore proceeding

错误解决办法

# grant all privileges on *.* to cacti@localhost identified by 'cacti';

# flush privileges;


4)ERROR: Your MySQL TimeZone database is not populated.Please populate this database  before proceeding.

 解决办法# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql


12、参考资料

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

Cacti官网论坛:http://forums.cacti.net/

Cacti文档:http://docs.cacti.net/

Cacti插件:http://cactiusers.org/index.php

Network Weathermap:http://www.network-weathermap.com/

RRDTool官网:http://oss.oetiker.ch/rrdtool/

NET-SNMP官方网站:http://www.net-snmp.org/

Apache官网:http://httpd.apache.org/

MySQL官网:http://www.mysql.com/

PHP官网:http://www.php.net/