公有云:可观测性产品

阿里云官网上监控与可观测性产品,初看起来,既熟悉又陌生,熟悉的是好像都见过,陌生的是怎么会有这么多产品,它们来自于哪里?边界在什么地方?产品之间是不是有竞争关系?

公有云:可观测性产品

和其它云产品类似,一方面,阿里有商用系统的锤炼,自研的产品具有高可靠、高可用等优点。另一方面,要求所有客户都使用阿里的技术体系,并不现实。

于是,阿里云的监控与可观测产品采用的思路是:

(1)基于内部自研的系统,进行产品化,并兼容对外提供服务。如SLS、ARMS。

(2)基于开源工具进行优化,关注高可用、高可靠和零运维,实现托管服务。如监控Prometheus版、可视化Grafana版、链路OpenTelemetry版。

一、自研产品产品化

1. ARMS

应用架构历经单体架构、SOA架构、微服务架构、ServiceMesh的历程。

2012年,淘宝核心业务系统已经采用了微服务的应用架构,其调用关系拓扑图如下所示:

公有云:可观测性产品

这些调用关系已无法通过人力来梳理,存在链路梳理难、故障定位难的问题。

为了解决上面的问题,阿里开发了一个以链路追踪技术为核心的监控系统,称之为EagleEye鹰眼系统。也就是通常所说的应用程序性能监控系统APM(Application Performance Management),其功能有调用拓扑、链路跟踪、慢事务报表、慢SQL查询等等。

解决的核心问题是在万亿次的调用中,如何去定位问题。实现思路参考自Google发表论文《Dapper,a Large-Scale Distributed Systems Tracing Infrastructure》。类似于运营商的呼叫业务中,如何通过手机号定位出“手机为什么呼叫失败”的问题。

EagleEye鹰眼系统的演进历程如下所示:

公有云:可观测性产品

2017年,阿里巴巴将内部监控工具EagleEye鹰眼系统对外提供服务,应用实时监控服务ARMS(Application Realtime Monitoring System)正式商业化。

后又不断丰富产品功能和特性,如2022年5月,ARMS Grafana服务正式商用。

如今,ARMS已经是一个产品系列,包含应用监控、前端监控、Prometheus监控、云拨测、Grafana服务、告警管理等。

公有云:可观测性产品

ARMS能够提供从应用、到容器调度与编排、再到基础设施的全栈式性能监控。

也能够提供端到端的全链路追踪诊断能力。

同时,结合阿里云日志服务SLS的日志数据分析能力以及云监控丰富的云服务与基础设施监控能力,用户可以轻松完成用户体验、应用服务、云产品、容器的一站式监控。

具体使用时,用户无需修改代码,只需为应用安装一个探针,ARMS就能够对应用进行全方位监控,如自动发现应用拓扑、自动发现并监控接口、多维调用链分析、慢SQL分析和CPU&内存诊断等。

总的来说,ARMS是在内部使用的APM系统EagleEye鹰眼基础上,不断丰富产品特性和能力,在阿里云上提供的可观测产品。

2. SLS

2012年,为了满足海量日志实时采集与分发的需求,阿里开发了内部产品,也就是SLS的前身。

2015年,实现了单用户可支持EB级存储,千亿日志秒级检索。

2016年,SLS正式对外商业发布。

2019年,SLS由日志存储平台演进到日志与监控平台。实现了日志与Metric数据的统一存储与分析。

2020年,SLS又演进为统一的可观测数据平台。统一了Log/Metic/Trace 数据的采集、存储和分析,并兼容了可观测数据相关开源生态。

2021年,SLS 品牌升级,成为 Data to Operation Insight 的平台,成为云原生可观测数据平台。

公有云:可观测性产品

开源软件与SLS的对比:

公有云:可观测性产品

总的来说,SLS处理的不仅仅是Log,而是统一了Log/metric/trace,也就是泛日志。

二. 开源工具优化再提升

以监控Prometheus为例来说明。

1.基础

Google公司内部使用Borg系统部署其应用程序,使用Borgmon监控应用程序的正常运行。

后来,Google公司开源kubernetes容器编排系统,Google前员工对照Borgmon,编写了Prometheus。

Prometheus的开发语言是Go,孵化于CNCF(Cloud Native Computing Foundation,云原生计算基金会)。

Prometheus的定位是提供近提供近实时的、基于动态云环境和容器的微服务、服务和应用程序的监控

2.架构

Prometheus 的主要模块包含:Exporters、Server、PromQL、WebUI、Alertmanager和Pushgateway等。其中:

(1)Exporters:用于metrics(指标)的采集,并通过HTTP服务(Endpoint端点)Export出来,Server通过Endpoint端点采集监控数据。

如果内置了对Prometheus的支持(符合数据规范),如cAdvisor,则可以直接采集。

如不直接支持Prometheus,则需要通过Prometheus提供的Client Library编写的监控采集程序,如:Mysql Exporter。

Client Library为需要监控的服务生成相应的metrics。

CAdvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。

(2)Server:用来收集和存储时间序列数据。包含Retrieval(抓取)、TSDB(存储)、HTTP server。

(3)PromQL:Server提供的查询语言,实现对数据的查询和分析。

(4)WebUI:用于显示简单的界面,如要丰富,则Prometheus需要集成Grafana [ɡrəˈfɑːnə]。

(5)Alertmanager:告警处理中心。

(6)Pushgateway:用于Server无法直接与Exporter相连或者短期的Job(没来得及拉取就执行完),则将内部的数据推送到Pushgateway。Server再从Pushgateway拉取数据。

公有云:可观测性产品

总的来说,

(1)Server是Prometheus的核心组件,Exporters是用于监控应用程序和服务,Client Library支持监控由多种语言编写的应用程序和服务。数据与分析能力以PromQL或统一开放界面(Grafana)的形式提供给用户。

(2)Prometheus采集数据的方法拉取,但它也支持接收推送到网关的事件。

(3)如果要从应用程序日志中提取指标,可以借助Google的mtail。

(4)如果要丰富可视化展示,可集成 Grafana 。

3. 监控实施

Prometheus通过Node Exporter监控主机。通过cAdvisor监控docker容器。通过文件、API、DNS进行服务发现。

4. 可观测监控 Prometheus 版

阿里云可观测监控 Prometheus 版全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的Prometheus服务。

相较于开源Prometheus,可观测监控 Prometheus 版做了如下提升:

(1)高可用性:支持采集存储组件多副本,可水平扩展。

(2)数据可视化:内置Grafana,各类常见监控模板开箱即用。

(3)告警管理:集成ARMS告警中心,提升告警效率与精度。

公有云:可观测性产品

三、自研与开源集成套件

为解决如下问题:

(1)随着云原生技术的发展,产出一批优秀的监控工具,造成新老工具的割裂。

(2)为了获得可观测数据,计算成本与存储成本以指数级增长。

(3)监控大多还处在单点排查或基础告警上,投入产出比不高。

2022年6月,阿里云发布可观测套件ACOS(Alibaba Cloud Observability Suite)。

公有云:可观测性产品

ACOS集成了监控(Prometheus服务)、可视化(Grafana服务)和链路追踪(OpenTelemetry),并通过开放标准打通所有可观测产品,实现全链路数据标准化,连接企业存量可观测数据资产。

(1)向上形成兼容开源标准的统一观测界面。

(2)向下连接阿里云可观测数据存储类产品。

(3)统一诸如日志服务 SLS、Elasticsearch 服务等可观测数据存储,以及散落在异构数据存储设施中(如 Clickhouse、Lindorm、RDS)的可观测数据,实现可观测数据源管理与异构数据间无缝探索。

总的来说,云原生可观测套件ACOS做到了在采集、存储、计算、告警、查询、可视化六大环节做到与开源标准的全面兼容与优化提升。形成了指标存储分析、链路存储分析、异构构数据源集成的可观测数据层,同时通过标准的PromQL 和 SQL,提供数据大盘展示,告警和数据探索能力。

参考资料

https://mp.weixin.qq.com/s/xyJ4GB955PoOXk7UOMqGBwhttps://help.aliyun.com/zh/arms/product-overview/https://mp.weixin.qq.com/s/1If5TycOpOUtpFgzBLnKZwhttps://mp.weixin.qq.com/s/C-d-rZuM43QuxTB-1Q6FJghttps://mp.weixin.qq.com/s/ZCTkbtKkECViC58cCq-bMwhttps://mp.weixin.qq.com/s/NKoTCM5o-Rs_83Wakk9yCw


原文始发于微信公众号(码农与软件时代):公有云:可观测性产品

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/175967.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!