Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。Cacti是通过 snmp get来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。即如果想监控一台主机,需要在被监控主机上安装net-snmp相关软件包,在监控主机上安装rrdtool和cacti。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
通过snmp抓到的数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
利用cron定期执行php脚本代码,通过snmp读取指定监控项目的snmp信息,然后将结果保存到rrdtool数据文件中。在web监控界面中通过php读取rrdtool并生成指定监控项目和指定时间段的监控曲线图。
$ yum install -y gcc gcc-c++
上传安装包到/usr/local/software目录下,获取源码包方式文章结尾有说明。
$ yum install -y httpd httpd-devel httpd-tools mysql mysql-server mysql-devel mysql-libs php php-devel php-mysql php-pdo php-common php-cli php-snmp
$ yum install -y rrdtool rrdtool-devel rrdtool-php rrdtool-perl
$ yum install -y net-snmp*
$ yum install -y openssl-devel
$ service httpd start
$ service mysqld start
$ /usr/bin/mysqladmin -u root password 123456
$ service snmpd start
加入开机启动项
$ chkconfig --add httpd
$ chkconfig --add mysqld
$ chkconfig --add snmpd
$ chkconfig httpd on
$ chkconfig mysqld on
$ chkconfig snmpd on
$ rpm -ivh cacti-0.8.8h-1.cn.el6.noarch.rpm
$ rpm -ivh cacti-spine-0.8.8h-1.el6.x86_64.rpm
$ cd /usr/share/cacti/include
$ vim config.php
$ vim global.php
******************* start *******************
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
$database_ssl = false;
******************* stop *******************
$ mysql -uroot -p123456
> create database if not exists `cacti` default charset utf8 COLLATE utf8_general_ci;
> grant all on cacti.* to 'cacti'@'%' identified by 'cacti';
> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';
> flush privileges;
$ mysql -uroot -p123456 cacti < /usr/share/doc/cacti-0.8.8h/cacti.sql
$ vim /etc/spine.conf
******************* start *******************
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306
******************* stop *******************
$ service httpd restart
访问192.168.0.68/cacti进入初始化界面,初始帐号密码都是 admin,第一次访问要求修改密码。
在客户端上,修改snmp配置文件如下
$ vim /etc/snmp/snmpd.conf
com2sec notConfigUser 192.168.0.69 public
access notConfigGroup "" any noauth exact all none none
view all included .1 80
cacti主要依赖的是rrdtools、php和snmp三块。
参考链接:
1、cacti安装记录 第四阶段cacti的基本使用(1)添加监控主机
https://blog.csdn.net/weixin_38642130/article/details/84646939
2、Cacti-安装和使用详解
https://www.cnblogs.com/JohnABC/p/6072776.html
关注微信公众号“微圈网络”,回复关键字,即可获取源码包!