试设计大规模云环境监测架构

我一直对这种大规模的公有云环境是如何监控的,有兴趣,可出于没有相关的人给介绍。所以就自己设想了一下如何监控这种大规模的环境。

在这里写出来,希望有兴趣的朋友一起交流一下。

下面是拓扑图



结构层次:

采用分布式部署,集中展现数据的部署结构


功能说明

集中管理中心

  1. 接收每个区域监控的告警、配置数据CMDB。(注意没有性能数据)
  2. 当需要查看远程性能数据时,从远程中心直接调用。
  3. 可以查看某节点的配置数据,但不能改。如果要改,需要远程中心运维人员修改。
  4. 主要功能是集中展现,告警集中管理等


每个区域的本地监控

  1. 采集所在区域中的内容
  2. 把性能数据、告警、配置数据都存储在本地
  3. 当采集到告警时,本地展现,同时将告警信息同步到“集中管理中心”
  4. 需要有本地操作功能,本地运维人员做操作管理

关于数据采集方法

对于公有云,由于用户是独立的,不方便统一管理,可以设计Agent方式采集。但由于Agent会占用系统资源,可能会产生意外的影响。
对于私有云,由于可以统一管理,建议采用SNMP,这样虽然采集的内容可能会比AGENT少一些,但占用系统资源比AGENT少很多。

关于数据采集方式

我觉得对于大规模环境的监测,可能采集是个难题。我觉得采集方式分为两种:主动采集和被动收集,示例图如下:

主动采集



由本地监控主动向所有被监测设备发送监测请求,这样采集的压力都在“本地监控”服务器中,比如一个服务器可以监测CPU、内存、磁盘空间(一般有最少2个)、网卡流量,那监控机要发送5个监测请求,如果有5000台服务器,就需要25000个请求,如果服务器性能再差点,估计要4-5分钟才能忙的过来。

被动收集



对于被动接收,是指本地监控机被动接收设备发过来的自身监测数据( 请注意,这个图有点问题,我觉得对于网络设备,还是采用主动监测会好一些,但我懒,就没有再改图)
在这种方式中,我觉得要考虑2点要素:
1、服务器上自监测程序(也可以叫代理程序)对服务器占用的资源,要严格控制
2、与本地监控设备的通信,我分析了好久,最后觉得采用HTTP协议可能会更方便,比如在“本地监控”机上安装个NGINX服务,利用NGINX的高并发能力来接收服务器发过来的自身监测数据,即不用考虑数据接收的多线程压力,又可以用简单的WEB开发语言,如PHP等实现,可以一举多得。

好了,我写的有点零零碎碎的,只是把自己的想法记录,可能还有很多考虑的不足,有空间我去研究一下现在公有云服务商的监控架构去,哈


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值