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

相关文章

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库