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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

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

我们以一个简易网站架构为例(网站架构图来自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/el$releasever/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,如需转载请自行联系原作者

相关文章
|
4天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
16 2
|
1月前
|
机器学习/深度学习 数据采集 人工智能
未来的守护神:AI驱动的网络安全之盾,如何用智慧的光芒驱散网络黑暗势力?揭秘高科技防御系统背后的惊天秘密!
【10月更文挑战第3天】随着网络技术的发展,网络安全问题日益严峻,传统防御手段已显不足。本文探讨了构建AI驱动的自适应网络安全防御系统的必要性及其关键环节:数据采集、行为分析、威胁识别、响应决策和执行。通过Python库(如scapy、scikit-learn和TensorFlow)的应用实例,展示了如何利用AI技术提升网络安全防护水平。这种系统能够实时监控、智能分析并自动化响应,显著提高防护效率与准确性,为数字世界提供更强大的安全保障。
60 2
|
18天前
|
监控 安全 测试技术
网络信息系统的整个生命周期
网络信息系统规划、设计、集成与实现、运行维护及废弃各阶段介绍。从企业需求出发,经过可行性研究和技术评估,详细设计系统架构,完成设备安装调试和系统集成测试,确保稳定运行,最终安全退役。
32 1
网络信息系统的整个生命周期
|
4天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
27 3
|
4天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
25 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
1月前
|
安全 定位技术 数据安全/隐私保护
|
18天前
|
机器学习/深度学习 存储 运维
图神经网络在复杂系统中的应用
图神经网络(Graph Neural Networks, GNNs)是一类专门处理图结构数据的深度学习模型,近年来在复杂系统的研究和应用中展现了强大的潜力。复杂系统通常涉及多个相互关联的组件,其行为和特性难以通过传统方法进行建模和分析。
40 3
|
18天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
1月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
46 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
1月前
|
域名解析 缓存 网络协议
【网络】DNS,域名解析系统
【网络】DNS,域名解析系统
96 1

热门文章

最新文章