<返回更多

监控工具之Cacti,搭建和使用

2020-10-13    
加入收藏

前面我整理了两篇关于Prometheus和Zabbix的部署和使用方法的文章,这次介绍第三个监控工具,就是Cacti。相比前面两个开源的监控工具,可能稍微小众些。但也是很强大的工具,希望能帮助到大家。

一、简介

1.1 Cacti监控框架工具介绍

监控工具之Cacti,搭建和使用

 

Cacti是一套基于php,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

Cacti是通过 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),它能够存储的数据笔数在创建时就已经定义。

1.2 优缺点

Cacti的优点:

1、基于RRDtool使效率提高。

Cacti基于RRDtool存储监控数据,在查询指定时间段的监控数据时候不用浏览整个数据文件,和mrtg的文本log相比具有更高的效率。监控曲线图片的生成并不想mrtg那样和数据采集同步并定时成生,而是通过RRDtool提供的图片生成工具使用PHP脚本来生成动态web图片。

2、监控项目曲线图多样化。

RRDtool的图片生成工具提供了多种参数,这样可以动态设置更多样式的曲线图,也可以将若干监控项目集中显示在一张图片中,例如我们如果要同时显示http/ftp/DNS多种协议的流量时就可以派上用场了。当然,其他如颜色,曲线样式,图片大小格式,说明文字等都可以定制产生。

3、基于web配置与监控,操作简单。

Cacti是一种web方式的软件,监控项目的新建、配置、管理、监控都是基于web方式来操作的,这对于使用者来说是非常舒服的。

4、可扩展性

Cacti支持超过二十种的插件,丰富的插件资源,大大提高了cacti的功能。

Cacti的缺点:

Cacti主要的功能强大在于他的画图功能,所以说它的其他功能都是靠它的插件来完成的,我们必须手动去添加所需插件。例如:当我们需要报警功能是,我们必须安装thold插件。

当需要添加多台监控设备时,我们只能一个一个的添加,并一个一个的添加相应的监控项。

当监控一个新设备时,必须新建模板,而且还要知道你想要监控项目的OID值,无论是新建模板还是获取OID值都非常繁琐,很不方便。

SNMP协议的中文名叫简单网络管理协议,所以SNMP协议的安全性不高。

与NagIOS比较,Cacti在监控方面绘图比较不错,在流量与图形展现方面存在优势,Nagios侧重于监控应用状态、故障分析,报警机制(邮箱、短信等)相对来说比Cacti灵活。

1.3 支持类型

支持snmp协议监控

有命令行监控

支持snmpAgent客户端

支持windows环境

二 部署过程

2.1 安装包下载

离线方式:

下载安装包地址:https://www.cacti.net/download_cacti.php

监控工具之Cacti,搭建和使用

 

解压下载的安装包:tar xf cacti-1.2.12.tar.gz -C /var/www/html/

监控工具之Cacti,搭建和使用

 


监控工具之Cacti,搭建和使用

 

2.2 安装部署

2.2.1 部署cacti运行环境

(1)linux环境用的centos7,安装时区选择Shanghai

关闭防火墙命令:systemctl stop firewalld.service

关闭SELINUX命令:vim /etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器。

(2)安装LAMP架构

安装Apache的命令:yum -y install httpd

安装mysql数据库的命令:yum -y install mariadb mariadb-server

安装php的命令:yum -y install php php-mysql

开启apache服务的命令:/bin/systemctl start httpd.service

监控工具之Cacti,搭建和使用

 

查看apache服务状态的命令:service httpd status

监控工具之Cacti,搭建和使用

 

查看apache安装成功的命令:rpm -qa |grep httpd

启动mysql命令:systemctl start mariadb(Mariadb是mysql的分支,centos7默认识别mariadb)

查看mysql的状态命令:systemctl status mariadb

将mysql加入开机自启的命令:systemctl enable mariadb

(3)编写php首页进行测试机

进入编辑路径下命令:cd /var/www/html/

编辑测试页面命令:vim index.php

<?php

phpinfo();

?>

监控工具之Cacti,搭建和使用

 

(4)安装工具包,snmp协议,rrdtool

安装工具包的命令:yum -y install zlib freetype libjpeg fontconfig gd libxml2 php-gd

安装snmp的命令: yum -y install net-snmp net-snmp-utils

安装rrdtool的命令:yum -y install rrdtool rrdtool-devel

开启snmp服务的命令:/bin/systemctl start snmpd.service

监控工具之Cacti,搭建和使用

 

查看httpd服务状态的命令:/bin/systemctl status snmpd.service

监控工具之Cacti,搭建和使用

 

2.2.2 安装cacti

(1)用wget下载源码包的命令:

wget https://www.cacti.net/downloads/cacti-1.1.38.tar.gz

解压到/var/www/html底下然后用mv重命名为cacti的命令:

tar zxvf cacti-1.1.38.tar.gz -C /var/www/html/

mv /var/www/html/cacti-1.1.38/ /var/www/html/cacti

(2)创建cacti管理用户的命令:

useradd -M -s /sbin/nologin cacti

(3)修改cacti属主和数组的命令:

chown -R cacti.cacti /var/www/html/cacti/

(4)修改cacti底下include底下config.php文件

先执行查找config.php的命令:find -name config.php

监控工具之Cacti,搭建和使用

 

(5)执行修改cacti连接数据库配置命令

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

监控工具之Cacti,搭建和使用

 

(6)数据库设置密码命令:mysqladmin -uroot password 12345

进入数据库创建cacti数据库并授予权限命令:mysql -u root –p

在数据库中建库cacti

create database cacti default character set utf8;

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

quit;

监控工具之Cacti,搭建和使用

 

把cacti目录底下的cacti.sql导入到cacti数据库里面(这边使用的用户时cacti用户授予的密码是12345)命令:mysql -u cacti -p cacti < cacti.sql

(7)修改snmp协议的配置文件(在本机模拟linux cacti被控端)

修改配置文件命令:vim /etc/snmp/snmpd.conf

41行:com2sec notConfigUser 127.0.0.1 public

62行:access notConfigGroup "" any noauth exact all none none

85行:view all included .1 80 #去掉前面的#号

重启snmp协议命令:/bin/systemctl restart snmpd.service

使用snmpwalk -v 2c -c public 127.0.0.1命令测试这个ip的snmp是否正常,有响应。

(8)进入安装页面http://192.168.43.148/cacti

监控工具之Cacti,搭建和使用

 

进入下面页面后,要解决PHP一些拓展应用

监控工具之Cacti,搭建和使用

 

(9)解决PHP拓展模块

先执行命令 cd / 命令回到根目录,再执行find –name php.ini命令寻找到php.ini的路径

修改php.ini的命令:vim /etc/php.ini

监控工具之Cacti,搭建和使用

 

1:
安装ldap
yum install php-ldap
打开php.ini配置文件找到ldap那个区域模块添加
extension=ldap.so
 
2:
安装mbstring拓展模块
yum install php-mbstring
打开php.ini配置在配置文件最后一行添加
extension=mbstring.so
 
3:
安装posix模块
yum -y install php-process
查看验证是否安装成功
php -m|grep posix
posix

显示红色字体posix就表示安装成功

(10)解决数据库时间问题

#进入数据库授权语句
GRANT SELECT ON mysql.time_zone_name TO cacti@localhost IDENTIFIED BY '12345';
#再把以下命令重新授权一下语句
grant all on cacti.* to cacti@localhost identified by '12345';
#刷新语句
flush privileges;
 
#又会出现下面报错
ERROR: Your MySQL TimeZone database is not populated. Please populate this database before proceeding.
#解决办法执行以下命令:
mysql_tzinfo_to_sql /usr/share/zoneinfo/Asia/Shanghai Shanghai | mysql -u root -p mysql
 
#重启数据库命令:
systemctl restart mariadb.service

问题改完可能会出现这个时区错误

监控工具之Cacti,搭建和使用

 

#打开php.ini配置文件找到date.timezone原本是注释状态需要去掉前面的;分号然后在=等于后面空格加上Asia/Shanghai
date.timezone = Asia/Shanghai
监控工具之Cacti,搭建和使用

 

(11)执行重启HTTP服务的命令:/bin/systemctl restart httpd.service

点击next下一步安装好后进入登录页面,登录修改密码

监控工具之Cacti,搭建和使用

 

默认账密admin/admin,登陆进去后会提示当前密码不安全重新设置密码,密码要求符合复杂性要求:大写字母加数字加特殊符号(我设的:Cacti123!)

2.3 部署完成

简单部署开启数据任务后,持续监控画面:

监控工具之Cacti,搭建和使用

 

三 使用方法

3.1 cacti导入模板

Cacti的常用服务器的画图大部分都是使用模板的形式做的,而Cacti安装好之后本身自带了一部分模板,这些模板虽然可用,但是支持的项目太少。一个Cacti的模板一般有两部分组成。一部分是xml模板文件,另一部分是xml的数据收集文件。

Cacti的官方的模板库:http://docs.cacti.net/templates

Xml模板文件是要在cacti的Web页面的Console选项卡内Import Templates项进行添加:

监控工具之Cacti,搭建和使用

 

而xml数据收集文件,则是要放在Linux上Cacti的安装目录cacti/resource/snmp_queries中,并确保属主和属组均为cacti:

监控工具之Cacti,搭建和使用

 

3.2 cacti创建设备监控

1.点击Console->Devices,打开设备管理页面。

2. 点击右上角的add,添加一个新的机器

3. 当主机的信息填好之后,点击Create

4. 此时你的页面左上角应该显示:Save Successful,并且已经显示出了主机信息和SNMP信息,如果SNMP信息显示 SNMP error,请查看最后的问题综述。

5. 这时我们就可以添加相应的监控项了,在页面最下方的Associated Graph Templates中添加图形模板,在Associated Data Queries中添加数据模板。

6. 添加好相应的模板之后点击Save。此时左上角会出现Save Successful.

7. 点击右上角的Create Graphs for this Host(为这个主机增加监控图形),来为刚才通过模板所获得到的数据进行画图。

8. 选中需要画图的项,其中依然分为两部分:

通过Graph Templates中的内容都需要选中,而Data Query获取的内容比较详细,所以可以按需选择。

9. 选择好需要画图的项目后,点击右下角的Create,左上角会出现被创建出来的画图项。

添加被监控设备:

监控工具之Cacti,搭建和使用

 


监控工具之Cacti,搭建和使用

 


监控工具之Cacti,搭建和使用

 


监控工具之Cacti,搭建和使用

 


监控工具之Cacti,搭建和使用

 

3.3 cacti的Graphs界面显示新添加主机设置定时任务采集数据

1. 在Console >> Graph Trees中,点击右上角的Add,添加一个新的显示项(或者系统默认的Default Tree)。

2. 在Tree 编辑页面中选择Edit Tree,然后在下面的Tree Items中拖动中间区域我们刚才创建的主机,及右侧区域需要展示的图模型。点击Finish Editing Tree,再点右上角的save保存,完成Tree的编辑。

3. 此时,再进入Graphs界面,就可以看到在Default Tree下加入了我们新创建的主机。

界面显示监控主机界面:

监控工具之Cacti,搭建和使用

 


监控工具之Cacti,搭建和使用

 


监控工具之Cacti,搭建和使用

 


监控工具之Cacti,搭建和使用

 

执行采集数据的命令:

/usr/bin/php /var/www/html/cacti/poller.php

将采集数据的命令加上定时每分钟采集一次,以此得到动态图像的命令:

echo '*/1 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null' >> /var/spool/cron/root

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>