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

相关文章

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/