4.3.2 ARMS优势
ARMS与其它监控类产品相比在基础数据采集以及监控展示的功能外还具有其独特的优势。首先ARMS支持多语言以及多环境监控。多语言支持JAVA应用、GO应用、NODE.JS应用等其它语言应用。ARMS提供的多环境监控包括但不限于阿里云生态中的函数计算、阿里云容器服务k8s集群、消息中间件等云产品,还包括丰富的自建系统组件例如自建k8s集群、自建中间件、自建数据库等自建产品。此外ARMS还具备丰富且优秀的终端监控能力,除了支持IOS App以及Android App外还支持对各类小程序进行详细监控。在具有丰富探测监控能力的基础上,ARMS提供了诸多Java类以及第三方组件和框架。通过使用这些第三方组件以及框架可以实现代码无入侵式接入,在提供便捷接入的同时极大的降低了监控系统与业务系统的耦合程度。一个完整的业务系统是各个功能模块组成,不同的功能模块所需要关注的场景也不尽相同,为满足多样的场景化监控需求ARMS提供了多种链路数据采样方式:基于链路
特征采样、基于业务特征采样、基于运维特征采样以及基于时间特征采样。使用合适的数据采集方式采样的数据集合可以在数据有效的基础上最大限度降低成本投入以及对相关设备资源的损耗。
ARMS除了提供对服务端的相关监控项外ARMS还支持对Web场景、Weex场景和小程序场景的监控,用户可以从页面打开速度(测速)、页面稳定性(JS诊断错误)和外部服务调用成功率(API)这三个方面监测Web和小程序页面的健康度。在客户端页面加载的同时将页面数据实时上报到日志服务器,之后可以借助ARMS提供的海量实时日志分析和处理服务对当前线上所有真实用户的访问情况进行监控,最后通过直观的报表展示,帮助团队及时发现并诊断问题。
ARMS不仅能对系统各个模块提供完善的监控外,还可在无需修改应用代码的情况下为应用在运行时提供自我保护。ARMS应用安全通过运行在应用程序内部,钩住关键函数实时检测应用在运行时与其它系统的交互过程的方式实时监控应用的运行状态,当应用出现可疑行为时会自动根据上下文环境识别并阻断攻击,从而保证业务系统的安全运行。ARMS应用安全功能可以帮助应用对威胁其安全的攻击手法进行防护,包括但不限于SQL注入、恶意文件读写、恶意文件上传、命令执行、任意文件读取、恶意外连、线程注入、恶意DNS查询、内存马注入等。文件读写、恶意文件上传、命令执行、任意文件读取、恶意外连、线程注入、恶意DNS查询、内存马注入等。针对存在安全漏洞的第三方应用组件,应用安全功能可以进行自动化梳理,关联组件对应的CVE漏洞、组件的详细路径、漏洞风险等级和评分以及相关实例信息等,帮助研发和安全团队盘点危险第三方组件风险,快速定位风险详情并按照优先级进行修复。
ARMS在数据的展示方面也有其独到之处,由于瀑布图、折线图、散点图等传统监控展示类图表只能展示某个接口或者系统某段链路的调用情况,为观察系统整体的调用情况ARMS支持展示系统相关拓扑图:应用拓扑(应用的上下游组件以及他们的调用关系)、集群网络拓扑(Kubernetes集群下的Service、Workload、Node和Pod的网络拓扑,以及各资源与云服务之间的网络拓扑)、分布式拓扑(追踪分布式架构中的所有微服务用户请求,并将它们汇总成分布式调用链)等多种拓扑图,可以帮助相关人员快速分析和诊断系统架构下的性能瓶颈以及系统异常问题。ARMS除了自身的监控展示平台外还可以接入阿里云丰富的监控系统:Prometheus监控、Grafana监控、Kubernetes监控等,从而打造云上应用全方位监控体系,为系统优化、故障排查、安全预警等提供可靠的技术保障。