宜信智能监控平台建设实践|分享实录

摘要:介绍宜信智能运维平台UAVStack的设计思想、技术架构和核心功能,及落地实践经验。

内容来源:宜信技术学院第6期技术沙龙-线上直播|宜信智能监控平台建设实践

主讲人:宜信高级架构师 & 智能监控平台负责人谢知求

一、UAVStack平台的产生背景

宜信智能监控平台建设实践|分享实录

目前业界常用的监控软件有很多,主流产品或以监控深度见长、或以监控广度见长。

关注监控广度的代表产品是Prometheus,其特点是生态圈活跃,针对常见的互联网中间件(如MySQL、Redis、Kafka、RocketMQ、MongoDB、ElasticSearch等)均提供了现成的指标采集插件来进行监控。类似产品还有Zabbix、Nagios和Open-Falcon。

关注监控深度的产品也有很多,如听云、OneAPM、PinPoint、SkyWalking。这类软件一般是探针型的,在应用性能监控方面提供了更深入的监控能力。

这些产品各有优势,也存在不足之处:

无法兼顾监控的广度和深度;

无法同时支持实时指标、调用链和日志三类类数据的采集,未考虑这三类功能的集成连通性,无法解决数据的时效、品控、对齐等问题。

为了克服上述不足,同时满足公司多样化和智能化的监控需求、降低二研的成本和难度,我们自主研发了全维监控与智能运维基础平台(UAVStack)。

宜信智能监控平台建设实践|分享实录

作为智能监控平台,监控仅仅是智能化运维的第一环。我们认为,智能运维(AIOps)可以分三步走:全维监控、全维关联和全维智能。

第一步:全维监控,通过统一的采集体系,采集全维度的监控数据,包括系统、应用和服务的画像数据、实时指标数据、调用链数据和日志数据。

第二步:全维关联,获取全维度的监控数据后,需要进一步建立数据之间的关联关系。这种关联关系可以是通过画像、服务流图谱或调用链数据建立的强关联关系,也可以是通过机器学习算法建立的关联关系。通过全维关联,可以在监控数据之间建立实时关联关系;有了关联关系,我们就可以做根因分析了。

第三步:全维智能,通过引入包括异常检测、根因分析、智能降噪及任务机器人等AI服务,用机器取代人进行一些决策,从而持续提升公司智能化运维的水平。

二、UAVStack平台的总体技术架构 2.1 全维度监控+应用运维解决方案

使用UAV的全维监控和应用性能管理工具集可以搭建一站式全维度监控+应用运维解决方案。

宜信智能监控平台建设实践|分享实录

首先,UAV在每个物理机、虚拟机以及容器上部署一个监控代理程序(MonitorAgent,MA)。MA实际上是部署在宿主机上的独立JVM进程。

其次,在每个JEE中间件、JSE应用或其他JVM语言应用中,可通过Java Agent的形式植入监控探针,监控探针会与应用在同一个JVM进程中一起启动。

监控探针启动时,会自动对应用进行画像和监控。应用画像包括服务组件、客户端组件和日志组件的画像。

服务组件是应用对外暴露服务能力的接口,如服务URL;

客户端组件是应用访问的其它服务或第三方数据源(如MySQL,、Oracle、 Redis、MQ等)客户端;

日志组件是应用输出的日志。

除对以上三类组件进行自动画像和实时数据采集外,监控探针也会记录每个请求/响应生成端到端的调用链路,绘制各个应用/服务之间的调用关系,并生成服务图谱。

监控代理程序(MA进程)会定时拉取监控探针采集的数据,同时也会采集应用环境的性能指标(如CPU、内存、磁盘IO等)。此外,MA还提供了插件机制,支持个性化指标的采集。

最终,我们采集到了包括指标Metrics、调用链Tracing及日志Logging的全维度监控数据。其中:

Metrics数据包括:业务自定义指标、应用环境性能指标、应用集群/实例性能指标、服务组件/客户端组件/URL性能指标。

Tracing数据包括调用链指标、客户端体验(UEM)数据。

Logging数据包括日志、线程栈(Thread)数据。

2.2 监控探针架构

UAV采集侧主要包括监控Agent和监控探针两部分。

监控探针负责应用层面的监控。

监控Agent负责应用环境层面的监控,同时会定时拉取监控探针的数据并上送给UAV服务端。

宜信智能监控平台建设实践|分享实录

上图所示是监控探针的架构图。随着UAV功能的增强,探针已不仅仅用于监控目的,现在已经改名为中间件增强框架。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzydz.html