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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

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

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

相关文章
|
21天前
|
Ubuntu Windows
【Ubuntu/Arm】Ubuntu 系统如何链接有线网络(非虚拟机)?
【Ubuntu/Arm】Ubuntu 系统如何链接有线网络(非虚拟机)?
|
28天前
|
数据采集 监控 安全
快速部署:基于Kotlin的公司网络流量控制方案
本文介绍了使用Kotlin构建网络流量控制系统的方案,该系统包括数据采集、分析和自动提交到网站的功能。`TrafficMonitor`类负责监控网络流量,收集流量数据并进行分析,然后通过HTTP POST请求将数据安全提交到指定网站,以实现对公司网络流量的有效管理和安全优化。此方案有助于提升网络安全性和性能,支持数字化业务发展。
75 5
|
1月前
|
机器学习/深度学习 数据采集 人工智能
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
40 0
|
1月前
|
消息中间件 网络协议 C++
C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)
C/C++网络编程基础知识超详细讲解第三部分(系统性学习day13)
|
1月前
|
存储 Shell Linux
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
26 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
29 0
|
11天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
31 6
|
13天前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
30 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
|
16天前
|
机器学习/深度学习 人工智能 运维
构建未来:AI驱动的自适应网络安全防御系统
【4月更文挑战第7天】 在数字时代的浪潮中,网络安全已成为维系信息完整性、保障用户隐私和确保商业连续性的关键。传统的安全防御策略,受限于其静态性质和对新型威胁的响应迟缓,已难以满足日益增长的安全需求。本文将探讨如何利用人工智能(AI)技术打造一个自适应的网络安全防御系统,该系统能够实时分析网络流量,自动识别并响应未知威胁,从而提供更为强大和灵活的保护机制。通过深入剖析AI算法的核心原理及其在网络安全中的应用,我们将展望一个由AI赋能的、更加智能和安全的网络环境。
28 0
|
27天前
|
存储 Unix Linux
深入理解 Linux 系统下的关键网络接口和函数,gethostent,getaddrinfo,getnameinfo
深入理解 Linux 系统下的关键网络接口和函数,gethostent,getaddrinfo,getnameinfo
14 0

热门文章

最新文章