网络监控系统的建立及部署

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一个依赖互联网站点生存的企业,是不会对他的生存之本疏忽大意的,而企业的本性又是追求利润的最大化,所以在硬件,软件方面的投入又是锱铢必较。我们这些运维人员是在力求软硬件性能最大化的同时保证业务的正常运转。这次我们从企业利润最大化角度构建一套让站点基础硬件及基础软件平稳运行的监控系统。

我们以一个简易网站架构为例(网站架构图来自51CTO的weizhenguo的博客)来解析在应用架构之下的监控体系如何建立的。

 
  clip_image002

我们分析一下整个架构图的数据流向: 互联网的访问数据通过防火墙的80端口进入,在web防火墙端对SQL注入攻击,跨站攻击等数据进行一次过滤,真正的访问数据流经过负载均衡组(一个节点容易产生单点故障)把流量分配给主应用服务器区的负载均衡web组(这里应该有缓冲集群,静态文件集群和动态web服务器集群),动态web服务器调用数据库集群(我们常说的主从<一主多从,多主多从等>)的数据来响应用户。这是主体站点,当然为了安全起见,又有日志监控服务器,入侵监测系统,为了网站依然被攻破的情况下,有应急措施,在生产环境的交换机下又挂接了一个防火墙,防火墙后面是一直运行并且和生产环境保持同步的备份机。

好,我们把应用业务分析完毕,怎么去查看每个设备的实时状态呢,比如说防火墙的session数,负载均衡器的硬件利用率,交换机的带宽,单台应用服务器的内存使用率,I/o情况等。这就需要我们建立一套完整的监控系统,让我们运维人员随时了解服务器的喜怒哀乐,灵活的提醒方式更给我们的运维安心和舒畅的心情。^_^,我们开始介绍目前业界流行的监控体系:cacti+nagios构建的全方位监控体系。

我们采用分而治之的方式来分别介绍这个庞大的体系:首先介绍cacti,然后介绍nagios,然后介绍他们的结合点的搭建。

Cacti(http://www.cacti.net/):

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。他的工作原理是这样的:Net-snmp定时采集数据并把传送给RRDtool,当用户查询某台具体设备的流量时,cacti查找该设备对应的rra文件名称,然后RRDtool绘制图形,cacti把图形展示给客户。

 
  clip_image004

Net-snmp定时采集数据存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

由于Cacti是基于php开发,且用到mysql数据库,展示用apache服务器,看来一套LAMP基础环境的安装我们是逃不过去了。下面我们就介绍LAMP环境的安装:

LAMP的环境需要的软件 
yum install -y gcc gcc-c++ glibc glibc-devel glibc-common autoconf automake libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel gd gd-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel openssl openssl-devel libart_lgpl-devel

一.rpm安装

yum install -y mysql mysql-server mysql-devel httpd php php-mysql

开启服务:

[root@listen html]# service httpd restart

[root@listen html]# service mysqld restart

我们为Mysql设置密码:[root@listen cacti]# mysqladmin -uroot password zhenglang0813

[root@listen html]# chkconfig httpd on

[root@listen www]# chkconfig mysqld on

我们开始安装net-snmp:

[root@listen yum.repos.d]# yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils php-snmp

我们开始安装RRDtool这个绘图软件:

[root@listen www]# cd /etc/yum.repos.d/

[root@listen yum.repos.d]# vi dag.repo

[dag]

name=Dag RPM Repository for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/elreleasever/en/basearch/dag

gpgcheck=1

gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

enabled=1

[root@listen yum.repos.d]# yum install rrdtool perl-rrdtool

好,我们到此为止还只有Cacti没有安装,我们现在就来安装他:

Cacti的下载及安装:

[root@listen ~]# wget -c http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz

[root@listen ~]# tar zxvf cacti-0.8.7e.tar.gz

[root@listen ~]# mv cacti-0.8.7e /var/www/html/cacti

[root@listen ~]# cd /var/www/html/cacti

[root@listen cacti]# chown -R root:root ./*

我们需要创建cacti数据库:

[root@listen cacti]# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql&gt; create database cacti;

Query OK, 1 row affected (0.00 sec)

mysql&gt; \q

Bye

You have new mail in /var/spool/mail/root

然后我们用/var/www/html/cacti目录中的cacti.sql来创建表和其中的字段等。

[root@listen cacti]# mysql -uroot -p cacti <cacti.sql

Enter password:

[root@listen cacti]#

下面我们创建一个数据库用户cactiuser并让他对cacti数据库拥有所有的权限。

mysql> grant all on cacti.* to cactiuser@localhost identified by "zhenglang0813";

Query OK, 0 rows affected (0.00 sec)

mysql&gt; flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql&gt; quit;

下面我们需要更改/var/www/html/cacti下面两个文件进行修改,以使php能够链接到数据库上。

[root@listen cacti]# pwd

/var/www/html/cacti

[root@listen cacti]# cd include

[root@listen include]# vi config.php

找到这一项并修改成如下密码:$database_password = "zhenglang0813";

[root@listen include]# vi global.php

找到这一项并修改成如下密码:$database_password = "zhenglang0813";

到目前为止,我们的安装算是告一段落,下面我们建立任务调度,这样才能使得net-snmp定期采集数据并放到rrdtool下面去

[root@listen include]# crontab -e

*/5 * * * * php /var/www/html/cacti/poller.php &gt;/dev/null 2&gt;&1 ----表明5分钟采集一次数据

[root@listen include]# crontab -l 我们查看刚才的任务计划

接下来我们做的就是初始化Cacti,好,我们现在就开始:http://192.168.0.88/cacti访问如上链接会看到如下画面:

 
  clip_image006

我们点击NEXT进入下一页面:我们选择“New Install”
 
  clip_image008

然后进入如下页面:图中显示为Cacti寻找出来的各种组件的路径,假如有红色标注的,说明没有找到,这时我们可以查看组件是否安装,以及路径是否正确。当然假如你是按照我操作的步骤的话,那就没有什么问题,
 
  clip_image011

好,我们点击finish,进入如下页面:

这是Cacti的默认用户名和密码填写处,默认用户名密码为:admin/admin:

 
  clip_image013

填入之后Cacti强制我们修改密码,那我们就修改为:zhenglang0813,到此cacti的庐山真面目算是呈现在我们面前:
 
  clip_image015

在介绍怎么使用Cacti之前,我们还需要修改一处:点击左侧的Settings,选择:RRDTool Utility Version的版本为“RRDtool 1.3.x”,因为我们安装的RRDtool组件是1.4的,我们只能在Cacti中选择最靠近这个版本的,不然不能绘制图形。

接下来我们开始介绍Cacti的使用方法:


本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/343131,如需转载请自行联系原作者

目录
打赏
0
0
0
0
69
分享
相关文章
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
238 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(Neural ODEs)是深度学习领域的创新模型,将神经网络的离散变换扩展为连续时间动力系统。本文基于Torchdyn库介绍Neural ODE的实现与训练方法,涵盖数据集构建、模型构建、基于PyTorch Lightning的训练及实验结果可视化等内容。Torchdyn支持多种数值求解算法和高级特性,适用于生成模型、时间序列分析等领域。
206 77
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
53 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
基于ssm的网络直播带货管理系统,附源码+数据库+论文
该项目为网络直播带货网站,包含管理员和用户两个角色。管理员可进行主页、个人中心、用户管理、商品分类与信息管理、系统及订单管理;用户可浏览主页、管理个人中心、收藏和订单。系统基于Java开发,采用B/S架构,前端使用Vue、JSP等技术,后端为SSM框架,数据库为MySQL。项目运行环境为Windows,支持JDK8、Tomcat8.5。提供演示视频和详细文档截图。
44 10
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
108 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型
90 4
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型
138 8
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
优质网络舆情监测系统大盘点
一款出色的网络舆情监测系统,不仅能够助力相关主体迅速捕捉舆情信息,有效应对危机,还能够助力其更好地把握舆论动态,维护自身形象。那么,市场上有哪些比较好的网络舆情监测系统呢?这里,本文有为各位整理了一些好用的舆情检测系统,以供各位参考!
40 0
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
本项目基于YOLOv4深度学习网络,利用MATLAB 2022a实现排队人数统计的算法仿真。通过先进的计算机视觉技术,系统能自动、准确地检测和统计监控画面中的人数,适用于银行、车站等场景,优化资源分配和服务管理。核心程序包含多个回调函数,用于处理用户输入及界面交互,确保系统的高效运行。仿真结果无水印,操作步骤详见配套视频。
73 18

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等