论文部分内容阅读
互联网架构从单主机、分层架构,再到后来的集群架构,经历了数次改变。架构始终随着不断变化的业务应用需求等因素而变化,在这个变化的过程中出现了微服务架。微服务架构突破传统以虚拟机为基础的集群架构模式,按照一定的策略将传统单体应用拆分为多个微服务,以容器为载体,容器之间通过轻量级通信机制交互,有效地解决了应用与日俱增的系统性能需求,提高了研发效率。然而实际应用场景中的微服务粒度比传统虚拟机更小,调度也更加复杂,同时随着业务的发展,微服务的规模不断扩大,微服务之间的关联关系也愈加繁杂,使得无论是运维人员还是应用开发人员,对系统进行监测管理的难度和成本都大大增加。本文正是基于以上特点和背景,研究基于日志的微服务监测与故障预测关键技术问题。本文设计实现了一个基于日志的微服务监测和故障预测系统,主要由微服务日志采集、微服务监测、微服务故障预测三个部分组成。首先基于Fluentd实现高可用、低延时的日志收集功能,并将收集得到的日志数据作为输入,对其进行分析处理,实现对微服务的监测和故障预测。微服务的监测主要分为三个方面:(1)微服务概览与性能指标信息。用于获得微服务运行状况信息,如微服务API(Application Programming Interface)功能集、微服务处理耗时等信息。(2)微服务调用链路跟踪。利用Storm对微服务日志进行实时分析计算,根据计算结果集绘制出用户调用所经过的链路。该链路包含该次请求所经历的各个容器完整的路径、请求网络耗时、处理耗时、上下级调用异常与否等信息。(3)微服务故障追踪与定位。通过本文所提出的基于加权的频繁项关联分析算法,对具体时间范围内的日志进行分析,有效帮助用户进行故障定位和排查。微服务故障预测。对日志数据基于时间间隔单位进行划分,从中提取特征并进行特征筛选,然后将筛选后的结果集输入到分类预测算法并进行训练学习,从而对微服务进行故障预测。通过该方法实现对未来一定时间段的故障进行预测。最后,从微服务监测和微服务故障预测两个方面对系统进行测试,测试结果表明本文中所实现的基于日志的微服务监控与预测系统满足设计要求,能够实现低时延、宿主资源占用率低、高性能等监控需求;能基于对日志数据的分析,进行微服务监控和系统故障的预测,为运维工作人员提供宝贵信息,将业务故障损失降到最小。