Cacti的起源与发展现况

故事要从2001年的某三天说起。

一个叫IanBerry的学生还在学习怎么使用PHP和MySQL进行编程及功能的实现,那时侯他业余时间为一个名不见经传的互联网营运商开发项目,他希望利用这个项目除了可以精进自己的编程功底,还可以创建一个新的监控显示方式,既要比RRDTool容易使用、比MRTG灵活,又要愈发容易扩充和调整。

天赋异禀的Ian在自己的不懈努力下,通过使用PHP语言,完成了第一个开源程序的版本。在此后的几年中,开源社区的开发爱好者们越发关注这只“带刺儿的仙人掌”,并在你们的共同推进下,0.8.6版本在2004年9月13日即将发布。0.8.6版本甚至可以觉得是Cacti发展历史上的里程碑,它退去了幼稚与粗糙,在全球开发者的悉心关爱下开始展露自己成熟以后的诱人魅力,它的执行效率越来越高,经过优化的源代码促使Cacti显得越来越灵活,越来越便于扩充。

根据原先Roadmap的计划,1.0.0版本将会在2013年年末即将发布,并且这个开源项目太火了嵌入式linux 培训,你们开始不断地完善自己的分支版本,不断在各个版本基础上开发带有附加特点的新的子版本,这造成1.0.0版本仍然无法统一。预看到这个状况可能发生,Ian开始在2012年6月份linux系统下载官网,集中力量重组研制资源配置,开始在提升研制效率、缩短研制周期方面花力气,直至目前为止官方已更新至1.2.14版本。

一,cacti介绍1.哪些是Cacti?

Cacti在英语中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网路流量检测图形剖析工具。它通过snmpget来获取数据,使用RRDtool书法图形,但是你完全可以不须要了解RRDtool复杂的参数。它提供了十分强悍的数据和用户管理功能,可以指定每一个用户能查看树形结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己降低模板,功能十分强悍构建。Cacti的发展是基于让RRDTool使用者更便捷使用该软件,不仅基本的Snmp流量跟系统资讯监控外,Cacti也可外挂Scripts及加上Templates来做出各色各样的监控图。

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

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

snmp抓到数据不是储存在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和储存就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobinArchive),它还能储存的数据笔数在创建时就早已定义。关于RRDTool的知识请参阅RRDTool教学。

2,哪些是SNMP?

snmp(SimpleNetworkManagementProtocal,简单网路管理合同)在构架体系的监控子系统上将饰演重要角色。大体上,其基本原理是,在每一个被监控的主机或节点上(如交换机)都运行了一个agent,拿来搜集这个节点的所有相关的信息,同时窃听snmp的portcentos sendmail 配置,也就是UDP161,并从这个端口接收来自监控主机的指令(查询和设置)。

假如安装net-snmp,被监控主机须要安装net-snmp(包含了snmpd这个agent),而监控端须要安装net-snmp-utils,若接受被监控端通过trap-communicate发来的信息的话,则须要安装net-snmp,并启用trap服务。倘若自行编译,须要beecrypt(libbeecrypt)和elf(libraryelf)的库。

3,哪些是RRDtools?

RRDtool是指RoundRobinDatabase工具(环状数据库)。Roundrobin是一种处理定量数据、以及当前元素表针的技术。想像一个周边标有点的圆环--这种点就是时间储存的位置。从圆心画一条到圆周的某个点的箭头--这就是表针。如同我们在一个圆环上一样,没有起点和终点,你可以始终往下走下去。过来一段时间,所有可用的位置就会被用过,该循环过程会手动重用原先的位置。这样,数据集不会减小centos sendmail 配置,但是不须要维护。RRDtool处理RRD数据库。它用向RRD数据库储存数据、从RRD数据库中提取数据。

centos sendmail 配置_配置模式_配置电脑

Cacti整个系统的构架是这样的:基于SNMP合同,被监控端是服务器,或一些网路设备,网路管理工作站,采用Linux或Freebsd操作系统,而且安装Net-SNMP工具,使用RRDTOOL采集数据,储存数据,并用Cacti调用rrdtool显示下来。

CACTI采用PHP编撰,基于B/S结构。

Cacti实例应用:

1)网路设置

2)主机系统

(1)网路插口流量(进与出的带宽)

centos sendmail 配置_配置模式_配置电脑

(2)监控CPU的负载、内存等等

(3)监控c盘的空间、进程数等等

3)cacti常见的检测对象

(1)服务器资源:CPU、内存、磁盘、进程、连接数等

(2)服务器类型:WEB、Mail、FTP、数据库、中间件

(3)网路插口:流量、转发速率、丢包率

(4)网路设备性能、配置文件(对比与备份)、路由数

(5)安全设备性能、连接数、攻击数

(6)设备运行状态:吊扇、电源、温度

(7)机房运行环境:电压、电压、温温度

二,Cacti安装和配置

本章基于rpm一键包来布署,所用的包组,来自于whsir一键包

环境要求

1、卸载自带的mariadb相关服务

yum remove mariadb-libs

2、添加epel源

yum install epel-release

3、添加whsir一键包源

rpm -ivh //mirrors.whsir.com/centos/whsir-release-centos.noarch.rpm

4、安装nginx、php、mysql

yum install wnginx wphp71 wmysql57

5、安装php扩充及其他所需依赖

yum install wphp71-ldap wphp71-snmp wrrdtool wnet-snmp wspine-1.2.2 sendmail

6、设置环境变量

echo 'export PATH=$PATH:/usr/local/nginx/sbin/:/usr/local/php/bin/:/usr/local/mysql/bin/' >> /etc/profile
source /etc/profile

7、设置两个软链接

ln -sv /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20
ln -sv /usr/local/mysql/lib/libmysqlclient.so /usr/lib64/libmysqlclient.so

8、取消被禁用的php函数

vi /usr/local/php/etc/php.ini

找到disable_functions行,删掉_exec,exec,popen,保存退出,重启php服务

/etc/init.d/php-fpm71 restart

9、启动相关服务

/etc/init.d/nginx start
/etc/init.d/mysql start
/etc/init.d/snmpd start

10、修改MySQL密码(默认为空)*

更改默认MySQL密码,创建cacti数据库,并添加相应权限

mysql -uroot -p
mysql> set password = password('whsir');
mysql> CREATE DATABASE cacti DEFAULT CHARACTER SET utf8;
mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'blog.whsir.com';
mysql> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost IDENTIFIED BY 'blog.whsir.com';
mysql> ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

centos sendmail 配置_配置模式_配置电脑

mysql> flush privileges; mysql> quit

11、加载时区到mysql数据库

/usr/local/mysql/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -uroot -pwhsir mysql

12、下载cacti

网路不佳的情况下,强烈建议先下载到本地,再上传到服务器

mkdir /data/www
cd /data/www
wget //www.cacti.net/downloads/cacti-1.2.14.tar.gz
tar xf cacti-1.2.14.tar.gz
mv cacti-1.2.14 cacti

13、修改cacti数据库配置文件

cd /data/www/cacti/include
vi config.php
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'blog.whsir.com';
$database_port = '3306';
$database_retries = 5;
$database_ssl = false;
$database_ssl_key = '';
$database_ssl_cert = '';
$database_ssl_ca = '';

14、导入cacti.sql

mysql -ucacti -pblog.whsir.com cacti < /data/www/cacti/cacti.sql

touch日志文件,后续安装时用的到

touch /data/www/cacti/log/cacti.log
touch /data/www/cacti/log/cacti_stderr.log

15、做一些软链,后续安装用的到

ln -sv /usr/local/rrdtool/bin/rrdtool /usr/local/bin/rrdtool
ln -sv /usr/local/php/bin/php /usr/bin/php
ln -sv /usr/local/snmp/bin/snmpwalk /usr/local/bin/snmpwalk
ln -sv /usr/local/snmp/bin/snmpget /usr/local/bin/snmpget
ln -sv /usr/local/snmp/bin/snmpbulkwalk /usr/local/bin/snmpbulkwalk
ln -sv /usr/local/snmp/bin/snmpgetnext /usr/local/bin/snmpgetnext
ln -sv /usr/local/snmp/bin/snmptrap /usr/local/bin/snmptrap

16、修改cacti目录权限

chown -R www:www /data/www/cacti/

17、修改nginx配置

vi /usr/local/nginx/conf/vhost/demo.conf

更改root路径为root/data/www;,取消php注释includeenable-php71.conf;,更改下server_name为本机IP,或则自己填个域名,自行hosts,不做过多说明!

18、重启nginx服务

nginx -t
/etc/init.d/nginx restart

19、spine配置

spine是一个基于C语言的,特别快速的寻址引擎,它是默认的cmd.php的可选代替,假如要使用spine须要单独的设置

cd /usr/local/spine/etc
cp spine.conf.dist spine.conf
vi spine.conf
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass blog.whsir.com
DB_Port 3306

验证一下

/usr/local/spine/bin/spine

返回以下内容表示成功

SPINE: Using spine config file [spine.conf]
SPINE: Version 1.2.2 starting
SPINE: Time: 1.0244 s, Threads: 1, Devices: 1

20、进入web安装

注意:假如访问有问题,更改后建议清空下浏览器缓存,或直接开浏览器隐身模式,以防有缓存

//IP/cacti

默认帐号admin密码admin

详尽优化请见

本文原创地址://lrxjmw.cn/cpzcdqyyfzci.html编辑:刘遄,审核员:暂无