本篇讲在分布式系统架构中,如何进行远程监控分析的方法。“钩”就是钩取、获取的意思。即使用各种办法(包括监控推送、状态获取等)拿到远程节点系统的运行状况,然后进行相关的分析和维护。“飞”,指的是通过远程通信的方式,进行监控数据的传输,主要分为拉取、推送2种获取信息的方式。
作为分布式系统架构的核心,只有能够充分完全的获取远程服务节点的性能、健康状态,才能确保整个分布式系统的稳定和安全。要想能够及时获取远程服务节点的性能和健康状态,制定出对应的维护优化方案,一定先要了解各个服务节点的共性以及不同的业务行为特性,能够分辨出正确的业务日志与组件错误日志;要进行服务压测与场景化并发预演测试,通过组合不同的监控和维护方法,筛选出正确有效的方案,来应对将来可能出现的问题和状况;要制定出服务崩溃不可用的应对方案,深刻透彻的了解各服务之间的关联关系和访问热点占比,即经常使用到的服务节点要加强监控维护,进行高可用、可扩展的维护方案,不经常使用的服务节点,进行常规的监控维护和日常维护。
在分布式系统的远程监控分析中,一定要仔细衡量远程节点的分布情况和热点占比。如果远程服务节点是业务系统的主要核心功能,就要采取实时心跳检测、日志抓取、性能分析的方式进行全方位实时控制。可以采用双向通信的方式,监控服务可以周期性的向远程服务节点发起心跳检测或者数据抓取,也可以是远程服务节点周期性的主动将自己的信息推送到监控节点上。2种方法交替使用,以便能够第一时间获取到远程服务节点的相关信息。如果远程服务节点只是偶尔服务延迟,间接性故障的话,可以通过向该节点不断加压测试,来观察基于不同场景、不同压力的情况下,该服务的运行情况,结合监控日志综合分析出现的问题。
在分布式系统的远程监控策略中,有时可以通过高并发场景模拟的加压测试法进行监控预演分析。有时,可以用过结合多个分布的服务节点特性,进行组合日志分析,通过执行流程、服务响应、并发加压、内存收集、性能监控去综合分析评估问题;或者,也可以根据同一个组件的特性,将其放在不同的业务场景,进行综合分析评估,找出其中的问题,进一步分析和控制;
本篇可以结合上一篇“补完”进行结合使用,作为系统开发维护人员,在业务系统运行的基础上,进行辅助的监控分析,以促进整个系统的稳定运行和服务治理,一定要综合分析各个服务节点的职责和配置性能,观察整个系统的运行和发展,衡量各个系统的性能消耗指标,评估出后续的用户和服务增长压力,透彻了解各个服务之间的调用关系,以及核心系统的运行情况。然后根据整个业务系统的服务功能比重,进行全方位的监控和分析,结合拉取或者推送的监控行为,从而及时方便的收集远程服务节点的运行情况。
在分布式系统的监控信息的传输方式上,要根据各个服务节点的职责、性能、网络环境,进行远程推送、主动拉取、或者双向组合的方式,进行监控信息的采集工作。如果远程服务节点的监控要求不高的话,可以进行周期性主动拉取的方式,获取目标服务节点的常规监控信息,进行日常采集记录分析;如果远程服务节点比较重要,需要及时获取远程节点的监控信息,以便出现故障时,进行应对维护。可以选择使用远程服务节点,主动推送的方式,实时主动汇报自己的运行状况,由监控节点统一收集汇总分析;如果担心远程服务节点的推送失败,可以采用推送、拉取的双向通信机制进行监控信息的收集获取。
本篇从三个不同的角度讲述如何在分布式系统架构中,运用”飞钩“进行远程服务节点的监控分析,如下:
(1)系统的开发维护人员必须全面掌握各个服务系统节点的关系和情况,通过推送、拉取的方式,进行监控数据的收集分析;
(2)在监控策略上,可以采用模拟场景高并发、组合日志分析、切换不同使用场景来进行综合对比和分析;
(3)在监控信息传播上,要根据各个服务节点的综合情况,进行远程推送、主动拉取或者双向组合的方式,进行监控采集工作;
总之,本篇的主旨就是强调在分布式系统架构中,研究获取分析远程节点的健康状况、性能指标、监控日志,尽量真实充分的获取远程节点的信息,然后运用各种方法进行数据分析和服务维护。在分布式系统架构中,全面透彻的了解各个业务系统的服务节点的关系和情况,是能够合理使用“飞钩”的关键。