307
iPhone_iPad_Mac_手机_平板_苹果apple
技术架构__产品简介_业务实时监控服务 ARMS-阿里云
技术架构概述
ARMS的技术架构由下面几个模块组成
在完整的一个监控任务中,数据流依次经过以下技术栈:
- 从数据源流入数据通道,作统一管理和缓存作用。
- 从数据通道流入实时计算引擎进行实时计算。
- 计算结果流入持久化存储平台作统一存储。
- 通过数据展示层对数据进行各类导出,包括,OpenAPI直接读取,报表展示,报警通知,等。
以下对每个涉及到的技术栈作说明。
数据源
在ARMS中,数据源负责为ARMS提供数据输入。数据源包括以下几种方式:
- 云服务器ECS数据源: 应用直接将数据在ECS上输出到相应的日志文件上,再通过ECS上的ARMS Agent (也就是SLS Agent)将日志数据传输到ARMS计算节点中。通过ECS方式获取数据的应用需要在相应的ECS上安装和配置ARMS Agent,并在某些情况下要求应用就相关数据日志进行改造。
- LogHub数据源:也叫做SLS日志源。ARMS可以通过重用用户在阿里云上的SLS-日志服务来直接拉去SLS中的数据。
- API数据源:通过提供API接口来为用户进行数据收集。用户可以将API集成到各类不方便收集日志的终端进行数据收集。典型场景如各类移动终端的数据收集。
- DRDS(敬请期待): 通过解析DRDS或者RDS的Binlog,将指定的数据传输到ARMS计算节点。该种方式可以有效即时获取数据库中增、删、改的数据。
- MQ(敬请期待): 通过配置MQ相应Topic的接收端,将指定的数据以消息方式传输到ARMS计算节点。
ARMS在收集数据时,需要在已定义的数据源中通过建立数据采集规则来实现数据采集。以ECS方式为例,采集规则包括从哪些数据源中收集,对应的文件路径,等。
数据通道
从数据源中流出的数据首先进入数据通道。数据通道在ARMS中其实是一个类似于Kafka的数据队列。它主要起到以下作用:
- 保证从数据源中流出的数据能立即被ARMS接收到,以为下游的实时计算层充当缓冲层。
- 当计算节点出现任何异常时,相应时间点数据能统一从日志通道重新发送给计算层,以保证所有数据至少被实时计算层处理过一次。
日志通道在ARMS上对于用户是透明不可见的。用户仅能控制数据源和实时计算层的计算逻辑。日志通道的各类管理由ARMS自动完成。
实时计算
在数据通道中的数据会被ARMS计算层节点实时读取。ARMS实时计算层的实时计算能力由基于阿里内部开发且开源的实时计算引擎JStorm提供,并实现毫秒级的流式计算处理能力。
ARMS的实时计算层虽然基于JStorm,但是并不要求用户基于编写JStorm的流式计算任务。在ARMS中,用户只需要基于交互界面做以下事情:
- 定义数据的清洗逻辑:例如一行日志数据是以”|”或是”;”符号进行切分(清洗的一种逻辑),切分后的Key-Value设定等。
- 定义数据集的聚合计算逻辑:例如数据以何种维度进行聚合(Group By),聚合的计算方式(Sum, Max, etc)等。
在监控任务中,用户通过定义清洗和聚合计算逻辑来产出计算结果,最终的结算结果形成一个个特定的数据集,被持久化的存储层。
持久化存储
作为一款致力于提供端到端实时监控解决方案的产品,ARMS除了提供实时计算能力以外,同时将计算结果持久化以供下游使用的能力。
在ARMS中,持久化存储通过特质的列式存储实现,以达到高吞吐和高扩展的性能要求。在实时计算中产生的一个个数据集以ARMS特定优化的数据结构方式存储在HBase中。存储具体结构对外部透明,而并不需要用户干预。用户只需要在实时计算中通过控制产生的数据集和相关属性(索引键,保存周期,等)来控制哪些数据需要进行持久化存储,以及对应的存储空间。
ARMS持久化到后端列式存储的数据结构对外部透明。用户通过访问数据展示层来间接访问列式存储的数据结果。
数据展示层
ARMS的监控数据结果一般可通过以下三种方式被用户利用。
- RestAPI: 最直接的方式。通过RestAPI基于数据集定义的各类查询Key对数据结果进行访问。
- 报表控件: 每个报表控件基于特定的一个或一组数据集。用户通过将报表控件嵌入到自己的展示页面(尽情期待)或者直接在ARMS的大盘中进行交互式访问。
- 报警通知: 通过定义报警策略,定期对数据集结果进行抓取和匹配,对符合特征的事件进行包括Email, 短信方式的报警。
最后更新:2016-11-23 16:04:15
上一篇:
典型场景__产品简介_业务实时监控服务 ARMS-阿里云
下一篇:
关键组件和流程__产品简介_业务实时监控服务 ARMS-阿里云
消息服务MNS和消息队列ONS产品对比__FAQ_开发人员指南_消息服务-阿里云
查询域名Whois信息__域名信息接口_API文档_域名-阿里云
登录 Linux 实例__远程连接_实例_用户指南_云服务器 ECS-阿里云
CDN节点默认缓存策略__运维技术分享_技术运维问题_CDN-阿里云
VPC中的ECS访问经典网络中的RDS失败__异常处理_用户指南_专有网络 VPC-阿里云
新购__购买实例_购买指南_云服务器 ECS-阿里云
修改RDS实例备注__实例管理_API 参考_云数据库 RDS 版-阿里云
子用户登录常见问题__常见问题_产品使用问题_访问控制-阿里云
Android SDK 使用手册__使用SDK调用已开放API_SDK_API 网关-阿里云
AnalyticDB数据源配置__数据源配置_数据同步手册_用户操作指南_大数据开发套件-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云