一、cacti概述
1.1 cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
1.2 Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
1.3 snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobin Archive),它能够存储的数据笔数在创建时就已经定义。
1.4 LAMP: Linux + Apache + Mysql + PHP ,另此Cacti 版本号为0.8.8H只能用于文档centos6、PHP 5.6 、Mysql 5.6,高于以上版本会报错;
1.5 修改/etc/crontab配置文件,增加红框内的内容重要:
二、安装rrdtool
2.1 rpm-ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
2.2 yum install rrdtool -y
三、安装配置net-snmp
3.1 安装net-snmp
yum install net-snmp net-snmp-libs net-snmp-utils
3.2 配置net-snmp,在/etc/snmp/snmpd.conf中修改:
view systemview included .1.3.6.1.2.1.1为:view systemview included .1.3.6.1.2.1
3.3 测试net-snmp
service snmpd start
snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux cronos 2.4.28 #2 SMP ven jan 1414:12:01 CET 2005 i686
四、安装LAMP
yum install httpd php php-mysql php-snmp php-xml php-gd mysqlmysql-server
五、安装cacti
5.1 cd /home
wget http://www.cacti.net/downloads/cacti-0.8.8h.tar.gz
tar xzf cacti-0.8.8h.tar.gz
mv cacti-0.8.8h /var/www/html/cacti
cd /var/www/html/cacti
5.2 创建数据库,数据库名称可根据个人爱好去定义;
mysqladmin--user=root -p create cacti
或是进入mysql后台创建数据库,如下图:
5.3 导入数据库,此需要mysql-uroot -p cacti < cacti.sql
5.4 创建数据库用户,注,我个人比较懒mysql里设定的全是空密码,在生产环境里必须设定密码以保证数库的安全;另外在生产环境需要设定独立的数据库用户名,不要使用root;
shell> mysql -u root -p
mysql> GRANT ALL ON cacti.* TO root@localhost ;
mysql> flush privileges;
5.5 配置include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "root";
$database_password = "";
5.6 设置目录权限
chown -R apache rra/ log/
5.7 配置计划任务
echo"*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null2>&1">>/etc/crontab
servicecrond restart
servicehttpd restart
5.8 完成cacti的安装
在浏览器中输入:http://XX.XX.XX.XX/cacti/
默认用户名:admin 密码:admin
更改密码
设置cacti用到的命令路径
-------------------------------------------------------------------------------------
注:至此cacti设定完成,只需要交换机设定相关的SNMP服务,Cacti就可以采集到相关的数据。因本文的重点不是数据采集,故对数据如何采集不作说明;
-------------------------------------------------------------------------------------
六、Plugins管理
Plugins存放位置/var/www/html/cacti/plugins -->只做经常用到的Plugin说明以及安装使用
Configstore:用于管理交换机防火墙的configure的备份管理。这插件可以帮助对所有设备进行分类批量进行备份。
Weathermap :天气图就不用说了,这是我感觉对网络拓扑图监控最为强大的一个插件,商业软件有些功能不能解决的Weathermap都可以做到,比如你可以一张图上图示几个AP接的终端用户数;你可以一张拓扑图上显示你的网络架构的流量、各设备的CPU、内存等信息;你可以一张图上显示一个机房所有服务器设备运行的网卡信息、I/0信息等;
Syslog用于收集所有网络设备的Log;查看网络设备日志对于网工来说很正常的一件事情,但当你对面上千台网络设备时,你如分析海量的设备信息?对,syslog可以帮助你解你的烦恼,它可能快速收集所有设备信息,再根据你编写的Alert分类,你就可以从分析日志繁重的工作中分离出来;
Thold用于设定各类的阀值,比如你的设备被***了CPU跑到100%,你是如何去发现以及解决问题?thold可以帮助你解决此类问题;
七、Plugins: Configstore使用
7.1 Linux上安装tftp: 需要安装xinetd、tftp、tftp-server3软件
如果能上网,通过yum安装:
sudo yum install xinetd
sudo yum install tftp
sudo yum install tptp-server
如果不能上网,可以直接安装提供的rpm包:
sudo rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm
sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm
sudo rpm -ivhtftp-server-0.48-3.fc9.i386.rpm
7.2 配置tftp服务器,修改/etc/xinetd.d/tftp文件
disable=yes 改为 disable=no
server_args=-s /var/lib/tftpboot 改为 server_args=-s /opt/backups -c
7.3 检查tftp
修改/etc/sysconfig/selinux文件 :SELINUX=disabled (系统默认是enforcing)要改成disabled
chmod 777 /opt/backups 修改/opt/backups文件夹的权限
启动 service xinetd restart
o查看tftp服务是否开启:netstat -a | grep tftp 显示结果为 udp 0 0 *:tftp *:* 表示服务已经开启,tftp配置成功
7.4 Configstore设定
添加交换机至设备组并设定备份时间,可分日/周/月三种,必须设定DeviceType以及认证组别否则不能备份
下图为已经已经进行备份完成的设备
configstore下载 https://forums.cacti.net/viewtopic.php?f=19&t=39573&hilit=configstore
八、Plugins: syslog使用
8.1 安装syslog-ng
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum install -y syslog-ng
8.2 配置syslog-ng
vi /etc/syslog-ng/syslog-ng.conf,在此配置文件最后加上如下:
# Remote logging
source s_remote {
tcp(ip(XXX.XXX.XXX.XXX) port(514)); [备注:此处为本机的IP]
udp(ip(XXX.XXX.XXX.XXX) port(514));
};
destination d_separatedbyhosts {
file("/var/log/syslog-ng/$HOST/messages" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));
};
log { source(s_remote); destination(d_separatedbyhosts); };
destination d_mysql {
program("mysql -u root syslog" [备注:syslog为收集设备日志数据库]
template("INSERT INTO syslog_incoming (host, facility, priority, date, time, message, status)
VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$MSG', '0' );\n")
template-escape(yes));
};
log {source(s_remote);destination(d_mysql);};
8.3. 安装syslog插件,此syslog已经安装,此不作说明并作如下配置:
创建syslog 数据库
mysql -uroot -p
create database syslog;
GRANT ALL ON syslog.* TO root@localhost ;[备注:在生产环境中要设定数据库的密码]
进入cacti的syslog插件目录执行下面命令
mysql -uroot -p syslog < /var/www/html/cacti/plugins/syslog/syslog.sql [导入相关数据表]
vi /var/www/html/cacti/plugins/syslog/config.php 内容如下:
修改/etc/crontab,增加如下内容
*/1 * * * * root php /var/www/html/cacti/plugins/syslog/syslog_process.php
重启以下服务
/etc/init.d/syslog-ng restart
/etc/init.d/mysqld restart
交机或是路由器增加log日志指向服务器
logging source-interface Loopback0
logging host 10.133.83.194
logging on
完成后系统收集的log,后面就可以根据收集到的数据进行分类alert消息
九、Plugins: weathermap使用
weathermap监控拓扑图如下:
下图监控状态实例说明: