7.4 海量日志分布式处理平台

    鹰眼平台除了对服务调用进行相关的监控外,也对各个中间件运行指标或各应用中的业务指标提供实时监控的能力,但各中间件平台或应用按照各需求的不同,生成的日志格式和包含的内容也存在很大的差异。针对这些不同服务管控信息的需求,为了更高效、快速地实现不同平台和应用与鹰眼平台对接,鹰眼平台中利用了阿里巴巴中间件团队开发的海量日志分布式处理平台TLog。

    TLog可以根据用户定制的处理流程,持续不断地对目标机器生成的日志数据进行解析、计算、入库等操作,对日志的处理流程提供了“所见即所得”的可视化配置界面,具备零业务侵入、高性能、实时性强等特点。

    要接入TLog平台,只需完成三步操作配置:日志采集设置、日志数据处理流程自定义、API方式数据获取,就能通过分布式日志处理的方式实现所需要监控的技术或业务指标信息。

    用户只需设置好日志收集的目标应用、机器IP、日志路径等信息(如图7-8所示)并保存后,就完成了采集点的配置工作。

    空标题文档 - 图1

    图7-8 鹰眼平台对日志采集规则的配置界面

    因为不同平台和应用的日志格式和处理计算方式都不同,TLog中最让人称道的功能就是可视化日志处理流程定义。

    TLog采用了Google Blockly可视化编程工具,给用户提供了自定义日志处理流程编辑体验。可对任意格式的日志信息进行切分、持久化、聚合等步骤的流程配置,整个处理流程的定制采用所见即所得的方式,你只需要将所有的处理模块按照顺序拼接在一起。同时也提供了测试的功能,允许你将测试日志文本粘贴至测试文本区,点击“测试”,就可以在右下角看到这些文本按照你所定制的流程执行的结果,如图7-9所示。

    空标题文档 - 图2

    图7-9 TLog平台提供可视化日志处理任务编排工具

    当用户定制好所需的处理流程并保存后,TLog平台会将处理流程部署在后端的流式处理引擎上,即将Blockly的配置信息转化为TLog内部的执行单元,并分配到JStorm流式引擎不同的组件中,即Spout和Bolt,这样你的日志就会从之前定义好的采集点中被源源不断地抓取并处理了。

    最后应用方可以通过TLog提供的API或数据提取工具实时获取处理后的数据,并将这些数据通过报表的方式展现在大盘或监控平台上(如图7-10所示)。TLog的API还提供按照不同的关键字对数据进行排序和统计的功能。

    鹰眼平台中正是有了TLog这套分布式日志处理平台,才能满足今天业务方对于服务、应用各种指标值的实时监控、查看、统计的需求,做到及时的业务对接和需求响应。

    从技术角度来说,在今天的分布式应用环境中,不管是对于服务的管控,还是各平台和应用的运行状态、业务指标的监控,相比传统的监控平台对单机或单集群的监控在技术实现方式上有了很大的不同,而分布式日志处理平台已经成为实现分布式应用环境中此类需求实现的事实标准。所以,在某种程度上,一个专业、成熟、稳定的分布式日志处理平台应该是互联网时代企业所需要的IT基础架构中的基础组件之一。

    空标题文档 - 图3

    图7-10 鹰眼平台提供的系统监控