前言:
目前兄弟们对“centos7cacti10”都比较关注,小伙伴们都需要剖析一些“centos7cacti10”的相关内容。那么小编在网摘上汇集了一些有关“centos7cacti10””的相关内容,希望兄弟们能喜欢,大家一起来学习一下吧!Cacti的起源与发展现状
故事要从2001年的某一天说起。
一个叫Ian Berry的中学生还在学习如何使用PHP和MySQL进行编程及功能的实现,那时候他业余时间为一个名不见经传的互联网运营商开发项目,他希望借助这个项目不仅可以精进自己的编程功力,还可以创建一个新的监控显示方法,既要比RRDTool容易使用、比MRTG灵活,又要更加容易扩展和调整。
天赋异禀的Ian在自己的不懈努力下,通过使用PHP语言,完成了第一个开源程序的版本。在随后的几年中,开源社区的开发爱好者们越发关注这只“带刺儿的仙人掌”,并在大家的共同推动下,0.8.6版本在2004年9月13日正式发布。0.8.6版本甚至可以认为是Cacti发展历史上的里程碑,它褪去了幼稚与粗糙,在全球开发者的细心呵护下开始展露自己成熟之后的迷人魅力,它的执行效率越来越高,经过优化的源代码使得Cacti变得越来越灵活,越来越易于扩展。
按照原来Roadmap的计划,1.0.0版本将会在2013年年底正式发布,但是这个开源项目太火了,大家开始不断地建立自己的分支版本,不断在各个版本基础上开发带有附加特性的新的子版本,这导致1.0.0版本一直难以统一。预见到这个状况可能发生,Ian开始在2012年6月份,集中力量重组研发资源配置,开始在提高研发效率、缩短研发周期方面花力气,直到目前为止官方已更新至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文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。
2,什么是SNMP?
snmp(Simple Network Management Protocal, 简单网络管理协议)在架构体系的监控子系统中将扮演重要角色。大体上,其基本原理是,在每一个被监控的主机或节点上 (如交换机)都运行了一个 agent,用来收集这个节点的所有相关的信息,同时监听 snmp 的 port,也就是 UDP 161,并从这个端口接收来自监控主机的指令(查询和设置)。
如果安装 net-snmp,被监控主机需要安装 net-snmp(包含了 snmpd 这个 agent),而监控端需要安装 net-snmp-utils,若接受被监控端通过trap-communicate发来的信息的话,则需要安装net-snmp,并启用trap服务。如果自行编译,需要 beecrypt(libbeecrypt)和 elf(libraryelf)的库。
3,什么是RRDtools?
RRDtool是指Round Robin Database 工具(环状数据库)。Round robin是一种处理定量数据、以及当前元素指针的技术。想象一个周边标有点的圆环--这些点就是时间存储的位置。从圆心画一条到圆周的某个点的箭头--这就是指针。就像我们在一个圆环上一样,没有起点和终点,你可以一直往下走下去。过来一段时间,所有可用的位置都会被用过,该循环过程会自动重用原来的位置。这样,数据集不会增大,并且不需要维护。RRDtool处理RRD数据库。它用向RRD数据库存储数据、从RRD数据库中提取数据。
Cacti整个系统的架构是这样的:基于SNMP协议,被监控端是服务器,或一些网络设备,网络管理工作站,采用Linux或Freebsd操作系统,并且安装Net-SNMP工具,使用RRDTOOL采集数据,存储数据,并用Cacti调用rrdtool显示出来。
CACTI采用PHP编写,基于B/S结构。
Cacti实例应用:
1)网络设置
2)主机系统
(1)网络接口流量(进与出的带宽)
(2)监控CPU的负载、内存等等
(3)监控磁盘的空间、进程数等等
3)cacti常见的监测对象
(1)服务器资源:CPU、内存、磁盘、进程、连接数等
(2)服务器类型:WEB、Mail、FTP、数据库、中间件
(3)网络接口:流量、转发速度、丢包率
(4)网络设备性能、配置文件(对比与备份)、路由数
(5)安全设备性能、连接数、攻击数
(6)设备运行状态:风扇、电源、温度
(7)机房运行环境:电流、电压、温湿度
二,Cacti安装和配置
本章基于rpm一键包来部署,所用的包组,来自于whsir一键包
环境要求CentOS 7.8.2003 (Core)PHP 7.1MariaDB或者Mysql5.7版本以上
1、卸载自带的mariadb相关服务
yum remove mariadb-libs
2、添加epel源
yum install epel-release
3、添加whsir一键包源
rpm -ivh
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/profilesource /etc/profile
7、设置两个软链接
ln -sv /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20ln -sv /usr/local/mysql/lib/libmysqlclient.so /usr/lib64/libmysqlclient.so
8、取消被禁用的php函数
vi /usr/local/php/etc/php.ini
找到disable_functions行,删除shell_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 -pmysql> 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;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/wwwcd /data/wwwwget xf cacti-1.2.14.tar.gzmv cacti-1.2.14 cacti
13、修改cacti数据库配置文件
cd /data/www/cacti/includevi 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.logtouch /data/www/cacti/log/cacti_stderr.log
15、做一些软链,后续安装用的到
ln -sv /usr/local/rrdtool/bin/rrdtool /usr/local/bin/rrdtoolln -sv /usr/local/php/bin/php /usr/bin/phpln -sv /usr/local/snmp/bin/snmpwalk /usr/local/bin/snmpwalkln -sv /usr/local/snmp/bin/snmpget /usr/local/bin/snmpgetln -sv /usr/local/snmp/bin/snmpbulkwalk /usr/local/bin/snmpbulkwalkln -sv /usr/local/snmp/bin/snmpgetnext /usr/local/bin/snmpgetnextln -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注释include enable-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/etccp spine.conf.dist spine.confvi spine.confDB_Host localhostDB_Database cactiDB_User cactiDB_Pass blog.whsir.comDB_Port 3306
验证一下
/usr/local/spine/bin/spine
返回以下内容表示成功
SPINE: Using spine config file [spine.conf]SPINE: Version 1.2.2 startingSPINE: Time: 1.0244 s, Threads: 1, Devices: 1
20、进入web安装
注意:如果访问有问题,修改后建议清空下浏览器缓存,或直接开浏览器隐身模式,以防有缓存
默认账号admin 密码admin
详细优化请见
标签: #centos7cacti10