Cacti监控软件安装与应用

2023-11-10 04:11

本文主要是介绍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监控软件安装与应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/380334

相关文章

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

mac安装redis全过程

《mac安装redis全过程》文章内容主要介绍了如何从官网下载指定版本的Redis,以及如何在自定义目录下安装和启动Redis,还提到了如何修改Redis的密码和配置文件,以及使用RedisInsig... 目录MAC安装Redis安装启动redis 配置redis 常用命令总结mac安装redis官网下

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众