统一日志系统中的日志获取模块与日志检索模块的设计与实现
发布时间:2020-11-16 03:18
随着智能便携设备的不断普及以及网络服务质量的不断提升,互联网产品的用户数量以及网络流量与日俱增,应用服务的高可用、高性能越来越被重视。日志作为记录应用程序运行时信息的组件,在应用程序的监控、问题排查、服务优化等工作中发挥着不可替代的作用。美团点评开发了统一日志系统,旨在为公司的分布式应用提供更好的日志服务,系统以磁盘文件收集方式或socket收集方式获取满足格式规范的日志数据,并将数据发送至本机代理,本机代理将原始日志按照日志类别发送到Kafka集群对应的topic中。实时日志解析任务消费Kafka中的原始日志并且对日志进行解析,将原始文本格式的日志解析成JSON格式的数据,提取出错误日志并按照日志类别将错误日志发送到Kafka集群中对应的topic中,供异常监控系统使用。同时,日志传输作业会实时消费Kafka中JSON格式的日志,并将数据发送到ElasticSearch集群中,按照索引分片策略对数据进行分片存储。ElasticSearch中存储的数据可被用于Kibana的可视化展示以及日志中心的日志检索。本论文的主要工作包括统一日志系统中的日志获取(socket收集方式)模块以及日志检索模块的设计与实现。其中,日志获取模块是利用Log4j2的插件化编程方式,实现了格式转换插件MTDPPatternConverter、日志格式化插件LcLayout以及日志输出插件ScribeAppender。同时,为了能将数据发送至本机日志代理的Scribe服务,日志获取模块还实现了 Scribe服务对应的Thrift客户端,用于数据传输。在ScribeAppender进行日志输出时,首先对日志数据进行格式化操作,然后使用Thrift客户端将日志发送至下游Scribe服务器。日志检索模块的主要工作是对存储于ElasticSearch中的日志进行检索,并对日志中心前端提供日志检索的RESTful接口。日志检索模块包括service层与web层,service层调用ElasticSearch提供的数据操作的RESTful接口进行数据检索,并向web层提供服务,web层对日志中心前端提供日志检索服务。
【学位单位】:南京大学
【学位级别】:硕士
【学位年份】:2018
【中图分类】:TP311.52
【文章目录】:
摘要
Abstract
第一章 引言
1.1 项目背景
1.2 日志获取和检索的发展现状
1.3 本文的主要内容
1.4 本文的组织结构
第二章 技术综述
2.1 Log4j2
2.1.1 Log4j2简介
2.1.2 Log4j2的组件结构
2.1.3 Log4j2的高级配置
2.2 RPC与Thrift框架
2.2.1 远程通信与RPC
2.2.2 Thrift框架
2.3 日志收集服务器Scribe
2.3.1 Scribe简介与架构
2.3.2 Scribe的日志收集原理
2.4 ElasticSearch
2.4.1 Lucene与倒排索引
2.4.2 ElasticSearch架构
2.4.3 ElasticSearch分片与存储结构
2.4.4 ElasticSearch索引与检索
2.5 本章小结
第三章 日志获取模块与日志检索模块的需求与设计
3.1 统一日志系统整体架构
3.2 需求分析
3.2.1 日志获取的需求
3.2.2 日志检索的需求
3.3 日志获取模块设计
3.3.1 日志数据的特点
3.3.2 日志获取模块设计
3.3.3 日志收集数据流
3.4 日志检索模块设计
3.4.1 日志检索模块整体设计
3.4.2 检索条件与返回结果
3.4.3 线上、线下运行环境隔离
3.5 本章小结
第四章 日志获取模块与日志检索模块的实现
4.1 日志获取模块的实现
4.1.1 日志格式转换插件
4.1.2 日志格式化插件
4.1.3 日志输出插件
4.1.4 Thrift客户端
4.1.5 日志获取主流程实现
4.2 日志检索模块的实现
4.2.1 日志检索service层服务
4.2.2 日志检索web层服务
4.2.3 环境隔离工具类
4.3 本章小结
第五章 总结与展望
5.1 总结
5.2 进一步工作展望
参考文献
致谢
【参考文献】
本文编号:2885558
【学位单位】:南京大学
【学位级别】:硕士
【学位年份】:2018
【中图分类】:TP311.52
【文章目录】:
摘要
Abstract
第一章 引言
1.1 项目背景
1.2 日志获取和检索的发展现状
1.3 本文的主要内容
1.4 本文的组织结构
第二章 技术综述
2.1 Log4j2
2.1.1 Log4j2简介
2.1.2 Log4j2的组件结构
2.1.3 Log4j2的高级配置
2.2 RPC与Thrift框架
2.2.1 远程通信与RPC
2.2.2 Thrift框架
2.3 日志收集服务器Scribe
2.3.1 Scribe简介与架构
2.3.2 Scribe的日志收集原理
2.4 ElasticSearch
2.4.1 Lucene与倒排索引
2.4.2 ElasticSearch架构
2.4.3 ElasticSearch分片与存储结构
2.4.4 ElasticSearch索引与检索
2.5 本章小结
第三章 日志获取模块与日志检索模块的需求与设计
3.1 统一日志系统整体架构
3.2 需求分析
3.2.1 日志获取的需求
3.2.2 日志检索的需求
3.3 日志获取模块设计
3.3.1 日志数据的特点
3.3.2 日志获取模块设计
3.3.3 日志收集数据流
3.4 日志检索模块设计
3.4.1 日志检索模块整体设计
3.4.2 检索条件与返回结果
3.4.3 线上、线下运行环境隔离
3.5 本章小结
第四章 日志获取模块与日志检索模块的实现
4.1 日志获取模块的实现
4.1.1 日志格式转换插件
4.1.2 日志格式化插件
4.1.3 日志输出插件
4.1.4 Thrift客户端
4.1.5 日志获取主流程实现
4.2 日志检索模块的实现
4.2.1 日志检索service层服务
4.2.2 日志检索web层服务
4.2.3 环境隔离工具类
4.3 本章小结
第五章 总结与展望
5.1 总结
5.2 进一步工作展望
参考文献
致谢
【参考文献】
相关期刊论文 前5条
1 王悦;;Hive日志分析的大数据存储优化探讨[J];信息通信;2015年10期
2 周康;李觊;董科军;南凯;;一种基于Thrift的日志收集分析系统[J];科研信息化技术与应用;2015年02期
3 郝璇;;基于Apache Flume的分布式日志收集系统设计与实现[J];软件导刊;2014年07期
4 白俊;郭贺彬;;基于ElasticSearch的大日志实时搜索的软件集成方案研究[J];吉林师范大学学报(自然科学版);2014年01期
5 史志英;徐义晗;;一种基于Log4J的日志输出组件的设计[J];信息技术与信息化;2008年01期
本文编号:2885558
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2885558.html