参考:https://blog.51cto.com/chenhao6/1249302


一、cacti概述


1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。


2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。


3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。


1> 配置LAMP环境


2> 安装rrdtool和net-snmp


3> 安装cacti


4>配置cacti


5> 配置cacti连接数据库


6 >配置cron计划任务


7 >配置开机自启动


8>测试


1> 配置LAMP环境


a. 安装apache


这里直接用yum装了


yum -y install httpd


c. 配置apache与php


yum -y install zlib freetype libjpeg fontconfig gd libxml2 php-gd


yum -y install php php-mysql


b.安装mysql数据库


yum -y install mysql mysql-server mysql-devel


2> 安装rrdtool和net-snmp


yum -y install perl-Net-Daemon perl-PlRPC perl-DBI rrdtool  perl-rrdtool  perl-DBD-MySQL


yum -y install php-pdo lm_sensors net-snmp php-snmp net-snmp-utils


3. 安装cacti


下载cacti 


wget http://www.cacti.net/downloads/cacti-0.8.8f.tar.gz


tar -zxvf cacti-0.8.8f.tar.gz -C /usr/src/   解压到指定目录


mv cacti-0.8.8f  /var/www/html/cacti/     //将解压的cacti这个包移动到网页根目录下,改名为cacti


4> 配置cacti


a. 配置httpd服务


vim /etc/httpd/conf.d/cacti.conf


Alias /cacti /var/www/html/cacti



DirectoryIndex index.php


AllowOverride all


order deny,allow


deny from all


allow from all


AddType application/x-httpd-php .php


php_flag magic_quotes_gpc on


php_flag track_vars on



b.配置apache


cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/


vim /etc/httpd/conf/httpd.conf    配置apache


276行ServerName localhost:80


c.配置php


vim /etc/php.ini


946行date.timezone = PRC


开启服务


d. 配置 mysql并导入 cacti.sql


service mysqld start  (开启服务)


create database cacti;


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


GRANT 权限列表 ON 库名.表名 TO ‘用户名’@‘来源地址’【IDENTFIED BY ‘密码’】


flush privileges;


导入数据库


use cacti;


source /var/www/html/cacti/cacti.sql;


完成


e. 配置snmpd服务


vim /etc/snmp/snmpd.conf


41 行om2sec notConfigUser  127.0.0.1  public//地址自己服务器的地址,也可用127.0.0.1来表示的,后面的"public"


   表示的是snmp 团体名,也可以改的,默认的就是“public”


62行access  notConfigGroup ""      any      noauth    exact  all  none none//把"exact"后面的单词改成"all"


85 行view all  included  .1      80//把这一行前面的"#"号去掉


开启服务


f.配置cacti目录权限


useradd cacti -d /var/www/html/cacti  -s /sbin/nologin


chown -R root:root    /var/www/html/cacti/


chown -R cacti:cacti  /var/www/html/cacti/rra  /var/www/html/cacti/log


5> 配置cacti连接数据库


vim /var/www/html/cacti/include/config.php


29行 $database_username = "cacti";


30行$database_password = "cacti"


6 >配置cron计划任务


crontab -u cacti –e


*/5 * * * * /usr/bin/php  /var/www/html/cacti/poller.php &>/dev/null


每5分钟 运行一次


7> 配置完成,设置服务开机自启动


chkconfig httpd 35 on


chkconfig mysqld 35 on


systemctl enable snmpd


 8>开始测试


firewall-cmd --permanent --add-service=http


firewall-cmd --permanent --add-service=https


客户端IE浏览器中输入网址:http://IP/cacti/


默认用户名和密码都是admin


集中监测完成!