AnyBackup
性能爆表
AnyShare
如何购买
我已是Anyshare 客户
AnyRobot
如何购买
购买 AnyRobot 订阅服务
我已是 AnyRobot 客户
一对一在线咨询
我是 AnyRobot 新客户
一对一在线咨询
AnyDATA

爱数博客

全部 AnyBackup AnyShare AnyRobot AnyDATA AnyFabric

AnyRobot助力实现系统可观测性

2022-08-23 244 0
随着分布式架构逐渐成为了架构设计的主流,系统可观测性日益被频繁提起。2017 年 Peter Bourgon的一篇文章《Metrics, tracing, and logging》,系统地阐述了指标、追踪、日志作为可观测性的三大支柱,受到了业界的普遍认同。三者之间的相互关系可以由下图简要说明。
Amended, annotated Venn diagram
我们首先对以上三类数据的特征进行简要介绍
  • 日志(Logging)

日志主要用来记录应用运行而产生的事件,例如调用和什么方法,操作了哪些数据,执行结果如何。日志可以详细解释系统的运行状态。
  • 追踪(Tracing)

在分布式系统中,嘴拙的范畴不再只局限于单一程序的栈追踪,一个外部请求需要系统内部若干服务之间的联动响应。日志记录了每个独立服务自身的事件,追踪则可重新构造出请求在服务之间的完整链路与各个独立日志之间的因果关系。因此,分布式系统中的追踪也可被称为“全链路追踪”。
  • 度量(Metrics)

度量是一段时间内组成单个逻辑测量、计数器或直方图的原子,例如,服务调用的QPS、响应时间、错误请求发生率等,通过对技术指标的收集与观测,实现对系统的监控与预警。
以上三者作为系统可观测性的三大支柱信息,为我们对系统进行分析提供了数据基础。
那么 AnyRobot 是如何为系统提供可观测性能力的,我们从 AnyRobot 基础架构来进行说明。

1. 首先是数据收集能力。AnyRobot 通过 Super Agent 客户端,支持对各类型数据进行采集,同时兼容常用网络通用协议的数据传输。日志收集不仅要保证能覆盖全部数据来源,还要尽力保证日志数据的连续性。在现代大型服务系统中,每天的日志量往往都是TB量级,那么此时归集到系统中的日志,要想与实际产生的日志保持绝对的一致性,是非常困难的。AnyRobot 通过架设数据缓冲区,实现对突发流量的削峰填谷,保证了数据最终均可被完整地存储与数据引擎之中。
数据收集能力是 AnyRobot 最基础的能力之一,类比马斯洛需求层次理论,将企业对数据的需求也可以看作是一个金字塔状的结构:

最底层是数据的收集和查询,让所有上层服务能够以简单、标准的形式读写。一旦数据的最基本需求得到满足,就可以基于此进一步做数据语义解析、数据理解和自动化。为满足数据分析的需求,数据的解析是必不可少的一步。对于服务日志,通常为非结构化数据,如果不做处理,那么我们只能以全文检索的方式进行查询,无法进一步对关键字段进行聚合,过滤等操作。
以Nginx 服务的Access Log为例

14.123.255.234 - - [19/Feb/2020:00:12:11 +0800] "GET /index.html HTTP/1.1" 200 1314 "https://icyfenix.cn" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"
可以解析出以下字段信息

AnyRobot 将结构化的日志数据存入数据引擎,实现对具体字段内容的处理分析
在保证日志数据完整的同时,还需要确保“不该有”的数据不被存储。我们肯定都清楚交易密码,银行账号,身份证信息等信息不应被明文存储,在特定环境下,用户登录名,登录地址等也需要进行加密处理,此时 AnyRobot 数据脱敏功能就可以发挥作用,确保敏感信息加密存储,保障数据安全
2. 接下来我们来介绍度量(Metrics),度量指标数据,是系统中一些基础信息的量化数据,例如系统CPU使用量,内容占用量,进程数据,磁盘空间使用量等。度量就是用经过聚合统计后的高维度信息,以最简单直观的形式来总结复杂的过程。通过度量信息可以揭示系统运行状态,为监控、预警提供决策支持。
由上面介绍的 AnyRobot 的基础架构可以了解到,通过 Super Agent 客户端,AnyRobot 自身具备了度量指标数据的采集能力。后端机器数据湖则通过对DSL,PromQL,SPL,Gremlin等多模式查询语言的支持,实现了对各类机器数据的查询分析能力。

3. 最后我们再来讨论一下信息追踪问题。在分布式系统中,我们往往会遇到以下问题:
  • 单一属性的日志,无法识别异常行为
  • 单一来源的日志,无法溯源安全事件
  • 单一异常的日志,无法定位业务故障
此时,如何串联一个事件在整个分布式系统中的完整流程,将成为我们处理问题的关键。进行实践溯源,发现问题根因,是实现系统可观测性重要目标。那么 AnyRobot 是如何对不同来源的信息日志信息进行分析的,答案就是关联分析。AnyRobot 通过关联分析功能,将分散在多个设备,系统上的实践数据串联起来,解决单一属性/来源的日志无法识别异常行为、无法溯源安全事件、无法定位系统故障的问题。
AnyRobot 通过提供全面的数据接入能力,灵活的异构数据处理能力,弹性开放的数据分析查询能力,可以实现对当前复杂分布式系统的有效管理。同时通过机器学习,KPI智能分析等功能,进一步提升系统分析能力,最终帮助用户获得更好的可见性,更准确的告警,更快速的问题定位,助力实现企业实现智能化运维。

请就本文对您的益处进行评级:

相关文章

热门标签

版本发布 在线教学

拨打400

免费销售咨询热线

400 8216055

7*24 小时免费售后服务热线

400 880 1569

购买咨询

购买咨询

售后服务

售后服务

返回顶部

为了给您提供更优质的服务,请您先完善以下信息:
确认提交

扫码关注

爱数技术支持中心公众号