本文主要是介绍Cacti监控软件安装与应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Cacti监控软件安装与应用
前言
在生产环境中,监控在Linux运维中是不可或缺的,不管平台做的多么稳定,总有一些意想不到的事情发生。作为一种开源的监控软件,cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。cacti是通过 snmp
协议来获取数据,使用 RRDtool
绘画图形,它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图。
基础理论说明
snmp协议
SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。
RRDTool
RRDtool(Round Robin Database Tool)是一个用来处理定量数据的开源高性能数据库。
由于 RRDtool 设计的初衷就是为监控开发的,所以与其他的数据库相比,RRDtool 有以下特性:
-
有一个强大的绘图引擎,可以根据数据库内容,创建 png 格式的图片。
-
是一个基于时间序列的环形数据库。可以想象一个圆,圆周上有一些均匀分散的点。这些点就是数据存储的位置。从圆心画一条到圆周的某个点的箭头,这个箭头就是指向当前元素的指针。在当前元素被读或写之后,指针就往下一个元素移动。当所有位置都被用过,原来的位置就会被重用。这样,数据库永远不会满,不需要维护。
-
可以被配置成存储当前值与前一个值变化速度,而不是简单地存储提供的值。
-
要求在预定的时间间隔中取得监控数据,如果没有得到更新的数据,就将该时间段的值设为 UNKNOWN.
工作原理
- 步骤一,snmp协议收集远程服务器的数据
- 步骤二,将snmp收集的数据内容保存到rrd数据库中
- 步骤三,若用户查看某台设备上的流量或其它状态信息
- 步骤四,在mysql数据库中查找该设备对应的rra数据库文件的名称
- 步骤五,通过rrdtool命令进行绘图即可
实验步骤
实验目的:搭建Cacti监控平台
实验准备:两台C6标准虚拟机(selinux与防火墙已关闭)
实验规划:
服务器角色 | 简称 | IP地址 |
---|---|---|
Cacti监控服务器 | M(monitor) | 192.168.10.10 |
监控测试机 | T(test) | 192.168.10.11 |
ps:标准虚拟机安装见网络阶段Centos6安装指南。
ps2:注意同步虚拟机时间。
一、Cacti服务端搭建
准备好Catic软件包,安装基础环境与依赖(LAMP)。
yum -y install httpd mysql mysql-server mysql-devel libxml2-devel mysql-connector-odbc perl-DBD-MySQL unixODBC php php-mysql php-pdo lrzsz gcc gcc-c++ net-snmp net-snmp-utils lm_sensors
PS:生产环境中MySQL数据库最好使用源码安装。
启动MySQL与apache服务
service httpd start
service mysqld start
挂载准备好的软件镜像,并将软件拷贝至指定目录。
mkdir /mnt/iso
mount -o loop cacti.iso /mnt/iso/
cp -a /mnt/iso/* ./
1.安装RRDtool
解压编译安装rrdttool工具,此版本有bug,必须等报错后再安装缺失依赖库方可解决。。。。。。
tar -zxvf rrdtool-1.4.5.tar.gz
cd rrdtool-1.4.5
./configure --prefix=/usr/local
解压安装cgilib库(图形支持库)
cd
tar zxvf cgilib-0.5.tar.gz
cd cgilib-0.5
make
将生成的两个文件拷贝至指定目录下
cp libcgi.a /usr/local/lib
cp cgi.h /usr/include
安装缺失依赖
yum -y install libart_lgpl-devel
yum -y install pango-devel* cairo-devel*
返回rrdttool解压目录,重新编译安装。
cd /root/rrdtool-1.4.5
./configure --prefix=/usr/local && make && make install
echo $?
2.部署Cacti
解压cacti软件包,将解压目录移动至指定目录下。
cd /root/cacti
tar -zxf cacti-0.8.7g.tar.gz
mv cacti-0.8.7g /var/www/html/cacti
进入解压目录,开始打补丁操作。
cd /var/www/html/cacti/
patch -p1 -N < /root/cacti/data_source_deactivate.patch
patch -p1 -N < /root/cacti/graph_list_view.patch
patch -p1 -N < /root/cacti/html_output.patch
patch -p1 -N < /root/cacti/ldap_group_authenication.patch
patch -p1 -N < /root/cacti/script_server_command_line_parse.patch
patch -p1 -N < /root/cacti/ping.patch
patch -p1 -N < /root/cacti/poller_interval.patch
添加检测数据的用户账户,更改权限,保证读写数据正常。
useradd runct # 创建runct用户
chown -R root.root * # 更改当前目录下文件属主属组权限为root
chown -R runct.runct rra log # 更改rra和log属主属组权限为root
授权数据库用户,导入初始化数据。
mysqladmin -uroot password 123 #设置root密码
mysql -uroot -p123 #登录数据库
create database cactidb default character set utf8; #创建数据库,设置默认字符集
grant all on cactidb.* to 'cactiuser'@'localhost' identified by 'daqiang'; #进行授权操作并设置连接密码
quit
mysql -u cactiuser -p cactidb < cacti.sql #还原数据库
查看生成的数据表。
mysql -uroot -p123
show databases;
use cactidb
show tables;
还原成功,退出数据库。
编辑cacti配置文件,设置连接数据库信息。
vim /var/www/html/cacti/include/config.php
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "daqiang";
$database_port = "3306";
保存退出,配置apache。
vim /etc/httpd/conf/httpd.conf# 取消276行注释,配置域名
ServerName cacti.daqiang.com
# 修改292行,设置默认主页。
DocumentRoot "/var/www/html/cacti"
# 修改317行,配置主页相关权限信息
<Directory "/var/www/html/cacti">
# 修改402行,配置主页匹配
DirectoryIndex index.php index.html index.html.var
保存退出,重新启动apache。
/etc/init.d/httpd restart
使用浏览器访问服务器进入安装页面
192.168.10.10
点击Next进行下一步
选择新安装,点击Next进行下一步。
确认上述文件存在并且可以使用,完成安装操作,进入登陆界面。
输入默认账户和密码(均为admin),系统提示重新设置密码。
重新设置完毕后保存登陆。
登陆成功,页面安装完毕。
二、监控测试端配置
安装基础软件
yum -y install net-snmp net-snmp-utils lm_sensors
编辑snmp服务的主配置文件
vim /etc/snmp/snmpd.conf# 修改41行,配置服务器地址、共同体名称等信息。
com2sec notConfigUser default public
# 修改62行,开放所有的SNMP查询权限 all 默认为SystemView
access notConfigGroup "" any noauth exact all none none
#取消85行注释,支持各种查询与访问。
view all included .1 80
保存退出,启动服务。
service snmpd start
chkconfig snmpd on # 设为开机自启
测试端配置完毕,开始监控测试。
三、监控设置
在浏览器的监控窗口中删除localhost的监控,添加监控测试端。
添加新的监控主机名称、描述信息、监控内容等,添加完成点击create创建。
创建后的页面可以自定义监控模版与图形绘制模版
配置图形绘制内容
选择绘制内容,点击create创建。
在默认图片树上挂载图片
点击点击create创建,再点击save保存。
保存完毕后,点击graphs查看生成的服务器状态图片。
无生成的服务器状态图片,因为RDDTool未运行。
服务端执行php命令生成服务器状态图片。
php /var/www/html/cacti/poller.php
图片存放在/var/www/html/cacti/rra中
返回浏览器刷新查看
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fgkzDjEV-1606051767136)(https://7.dusays.com/2020/11/22/136c6b1c3eb12.png)]
生成完毕,此时并无数据,需要运行一段时间。
将上述命令写入服务端的定时计划任务中,使其自动运行。
crontab –e */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null #每5分钟执行一次
service crond restart #启动crond服务
chkconfig crond on #设置开机自启
监控设置完毕。
四、添加新功能(拓展)
如果想实现更多新功能,需要现安装插件管理器。
cd /root/cacti-plugin/
tar -zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch/
mysql -uroot -p123 cactidb < pa.sql
还原后生成了补丁文件,前往相应目录打补丁。
cd /var/www/html/cacti
patch -p1 -N </root/cacti-plugin/cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff
打完补丁后,生成了plugins目录。
前往浏览器管理界面启用插件管理器
graphs > console > User Management > admin
点击save保存,Configuration一栏处出现Plugin Management时表示安装成功。
安装新插件,添加新功能。
cp -a /root/cacti-plugin/monitor-0.8.2.tar.gz .
tar -zxvf monitor-0.8.2.tar.gz
cd monitor mysql -uroot -p123 cactidb < monitor.sql
返回浏览器监控端,网页刷新。
点击Configuration > Plugin Management添加新插件。
启用插件后点击上方的monitor查看新插件功能
该插件功能是将主机以排列的展现,绿色代表正常监测,红色表示监测异常。
基础理论说明内容参考以下文章:
https://blog.51cto.com/freeloda/1308140
https://www.cnblogs.com/smallcoderhujin/p/3796599.html
本文于2020年11月22日由Vonmerlot整理成文。
这篇关于Cacti监控软件安装与应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!