CN107861859B - 一种基于微服务架构的日志管理方法及*** - Google Patents

一种基于微服务架构的日志管理方法及*** Download PDF

Info

Publication number
CN107861859B
CN107861859B CN201711172018.XA CN201711172018A CN107861859B CN 107861859 B CN107861859 B CN 107861859B CN 201711172018 A CN201711172018 A CN 201711172018A CN 107861859 B CN107861859 B CN 107861859B
Authority
CN
China
Prior art keywords
log
application
information
request
log information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711172018.XA
Other languages
English (en)
Other versions
CN107861859A (zh
Inventor
刘俊艳
张振
阎志军
李杏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huitong Jincai Information Technology Co ltd
State Grid Digital Technology Holdings Co ltd
State Grid Corp of China SGCC
Original Assignee
Beijing Huitong Jincai Information Technology Co ltd
State Grid Corp of China SGCC
State Grid E Commerce Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Huitong Jincai Information Technology Co ltd, State Grid Corp of China SGCC, State Grid E Commerce Co Ltd filed Critical Beijing Huitong Jincai Information Technology Co ltd
Priority to CN201711172018.XA priority Critical patent/CN107861859B/zh
Publication of CN107861859A publication Critical patent/CN107861859A/zh
Application granted granted Critical
Publication of CN107861859B publication Critical patent/CN107861859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于微服务架构的日志管理方法包括:将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中,采集各个应用服务器上各个应用的日志信息,将各个应用的日志信息统一缓存在Key为logstash的名字中,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。本发明能够使日志处理的全流程均可根据实际使用情况,进行动态弹缩,有效地利用了物理资源,并能够应对大规模的日志情况,提高了查询和统计效率。本发明还公开了一种基于微服务架构的日志管理***。

Description

一种基于微服务架构的日志管理方法及***
技术领域
本发明属于软件工程技术领域,尤其涉及一种基于微服务架构的日志管理方法及***。
背景技术
由于软件***的规模日趋扩大和由此带来的复杂性,会产生大量的日志信息,这些日志需要存储以备查询和分析,而传统的关系数据库对日志存储、查询、分析的能力有限。例如,日志信息通常按照时间顺序进行存储,一个请求在响应处理过程中会形成多条日志信息,不同请求的日志信息在数据库中混杂存储,在日志信息量非常庞大的情况下,对日志文件进行分析时,很难分离出某个特定请求产生的日志信息。
因此,如何有效的对日志进行管理是一项亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种基于微服务架构的日志管理方法及***,能够使日志处理的全流程均可根据实际使用情况,进行动态弹缩,有效地利用了物理资源,并能够应对大规模的日志,提高了查询和统计效率。
为了实现上述目的,本发明提供如下技术方案:
一种基于微服务架构的日志管理方法,包括:
将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中;
在分布式场景下,采集各个应用服务器上各个应用的日志信息;
将所述各个应用的日志信息统一缓存在Key为logstash的名字中;
拉取所述日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;
从所述日志信息中抓取关键字,基于所述关键字将对应的所述日志信息存入所述ElasticSearch搜索服务器。
优选地,所述方法还包括:
展示所述ElasticSearch搜索服务器中的信息。
优选地,所述在分布式场景下,采集各个应用服务器上各个应用的日志信息包括:
通过logstash shipper将各应用的日志信息采集到redis集群中;
所述logstash shipper为各个应用定义用以生成索引的唯一type。
优选地,所述将所述各个应用的日志信息统一缓存在Key为logstash的名字中包括:
通过日志转储组件redis,将数据统一缓存在key为logstash的名字中;
采用list数据类型作为日志采集的一个缓存区队列。
优选地,所述展示所述ElasticSearch搜索服务器中的信息包括:
在所述ElasticSearch搜索服务器的索引中查找、交换数据,生成相应的图表;
展示所述图表。
一种基于微服务架构的日志管理***,包括:
信息传递模块,用于将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中;
日志采集模块,用于在分布式场景下,采集各个应用服务器上各个应用的日志信息;
日志缓存模块,用于将所述各个应用的日志信息统一缓存在Key为 logstash的名字中;
日志处理模块,用于拉取所述日志信息,进行从原始数据到ElasticSearch 搜索服务器所要求的数据格式的转换;
日志存储模块,用于从所述日志信息中抓取关键字,基于所述关键字将对应的所述日志信息存入所述ElasticSearch搜索服务器。
优选地,所述***还包括:
日志展示模块,用于展示所述ElasticSearch搜索服务器中的信息。
优选地,所述日志采集模块具体用于:
通过logstash shipper将各应用的日志信息采集到redis集群中;
所述logstash shipper为各个应用定义用以生成索引的唯一type。
优选地,所述日志缓存模块,具体用于:
通过日志转储组件redis,将数据统一缓存在key为logstash的名字中;
采用list数据类型作为日志采集的一个缓存区队列。
优选地,所述日志展示模块,具体用于:
在所述ElasticSearch搜索服务器的索引中查找、交换数据,生成相应的图表;
展示所述图表。
从上述技术方案可以看出,本发明提供了一种基于微服务架构的日志管理方法,将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中,在分布式场景下,采集各个应用服务器上各个应用的日志信息,将各个应用的日志信息统一缓存在Key为logstash 的名字中,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。本发明通过RequestID能查询出整个请求的调用链日志详情,对于排查异常、快速定位非常方便快捷。同时,在日志收集、缓存、处理、存储等各个阶段均采用分布式、微服务化的部署方式,使日志处理的全流程均可根据实际使用情况,进行动态弹缩,有效地利用了物理资源,并能够应对大规模的日志,提高了查询和统计效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种基于微服务架构的日志管理方法实施例1的方法流程图;
图2为本发明公开的一种基于微服务架构的日志管理方法实施例2的方法流程图;
图3为本发明公开的一种基于微服务架构的日志管理方法实施例3的方法流程图;
图4为本发明公开的一种基于微服务架构的日志管理***实施例1的结构示意图;
图5为本发明公开的一种基于微服务架构的日志管理***实施例2的结构示意图;
图6为本发明公开的一种基于微服务架构的日志管理***实施例3的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种基于微服务架构的日志管理方法实施例1的流程图,所述方法包括:
S101、将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中;
当需要对日志进行管理时,首先为各个应用统一配置请求***,当拦截到http请求时,***首先生成request ID,同时收集应用的调用信息以及一些用户信息,将所述request ID以及收集的应用的调用信息和用户信息加密输出到日志中。其中,Request ID的生成是为各个应用日志间形成调用链,每次请求都会生成唯一的Request ID,在日志量非常庞大的情况下,带有Request ID的日志在排查故障,查询用户每次请求所产生的日志非常方便、快捷。
S102、在分布式场景下,采集各个应用服务器上各个应用的日志信息;
然后,在分布式场景下,各个应用服务器上都增加了一个日志采集模块,通过日志采集模块收集服务器上的各个应用的日志信息。
S103、将各个应用的日志信息统一缓存在Key为logstash的名字中;
在采集到各个应用的日志信息后,将采集到的各个应用的日志信息统一缓存在Key为logstash的名字中。
S104、拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;
然后,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换,例如,日期格式转换为预定义的格式,某些字段的去除、字段的合并转换、message信息json解析等,还有通过GeoIP获取ip所在地,根据***定制过滤条件,正则解析等。
S105、从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。
从日志信息中抓取关键字,判断出应该写入到ElasticSearch的哪个index 中,并将信息存入对应的index,完成将日志信息存入ElasticSearch搜索服务器。日志存储在ElasticSearch中,同样ElasticSearch也是使用集群方式来进行部署,通过cluster.name来定义集群名称。ElasticSearch集群节点分为两种类型:master node、data node。Masternode:集群的管理节点,主要功能是维护元数据,管理集群各个节点的状态。Data node:负责数据的存储、查询和导入。
综上所述,在上述实施例中,在日志管理时,首先将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中,然后在分布式场景下,采集各个应用服务器上各个应用的日志信息,将各个应用的日志信息统一缓存在Key为logstash的名字中,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。本发明通过RequestID能查询出整个请求的调用链日志详情,对于排查异常、快速定位非常方便快捷。同时,在日志收集、缓存、处理、存储等各个阶段均采用分布式、微服务化的部署方式,使日志处理的全流程均可根据实际使用情况,进行动态弹缩,有效地利用了物理资源,并能够应对大规模的日志,提高了查询和统计效率。
如图2所示,为本发明公开的一种基于微服务架构的日志管理方法实施例2的流程图,所述方法包括:
S201、将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中;
当需要对日志进行管理时,首先为各个应用统一配置请求***,当拦截到http请求时,***首先生成request ID,同时收集应用的调用信息以及一些用户信息,将所述request ID以及收集的应用的调用信息和用户信息加密输出到日志中。其中,Request ID的生成是为各个应用日志间形成调用链,每次请求都会生成唯一的Request ID,在日志量非常庞大的情况下,带有Request ID的日志在排查故障,查询用户每次请求所产生的日志非常方便、快捷。
S202、在分布式场景下,采集各个应用服务器上各个应用的日志信息;
然后,在分布式场景下,各个应用服务器上都增加了一个日志采集模块,通过日志采集模块收集服务器上的各个应用的日志信息。
S203、将各个应用的日志信息统一缓存在Key为logstash的名字中;
在采集到各个应用的日志信息后,将采集到的各个应用的日志信息统一缓存在Key为logstash的名字中。
S204、拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;
然后,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换,例如,日期格式转换为预定义的格式,某些字段的去除、字段的合并转换、message信息json解析等,还有通过GeoIP获取ip所在地,根据***定制过滤条件,正则解析等。
S205、从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器;
从日志信息中抓取关键字,判断出应该写入到ElasticSearch的哪个index 中,并将信息存入对应的index,完成将日志信息存入ElasticSearch搜索服务器。日志存储在ElasticSearch中,同样ElasticSearch也是使用集群方式来进行部署,通过cluster.name来定义集群名称。ElasticSearch集群节点分为两种类型:master node、data node。Masternode:集群的管理节点,主要功能是维护元数据,管理集群各个节点的状态。Data node:负责数据的存储、查询和导入。
S206、展示ElasticSearch搜索服务器中的信息。
将日志信息存储至ElasticSearch搜索服务器后,还可以根据使用需求,在ElasticSearch搜索服务器的索引中查找、交换数据,生成需要的表图并进行显示。
综上所述,在上述实施例中,在日志管理时,首先将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中,然后在分布式场景下,采集各个应用服务器上各个应用的日志信息,将各个应用的日志信息统一缓存在Key为logstash的名字中,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。本发明通过RequestID能查询出整个请求的调用链日志详情,对于排查异常、快速定位非常方便快捷。同时,在日志收集、缓存、处理、存储等各个阶段均采用分布式、微服务化的部署方式,使日志处理的全流程均可根据实际使用情况,进行动态弹缩,有效地利用了物理资源,并能够应对大规模的日志,提高了查询和统计效率,并且能够进一步对ElasticSearch搜索服务器中的信息进行展示。
如图3所示,为本发明公开的一种基于微服务架构的日志管理方法实施例3的流程图,所述方法包括:
S301、将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中;
当需要对日志进行管理时,首先为各个应用统一配置请求***,当拦截到http请求时,***首先生成request ID,同时收集应用的调用信息以及一些用户信息,将所述request ID以及收集的应用的调用信息和用户信息加密输出到日志中。其中,Request ID的生成是为各个应用日志间形成调用链,每次请求都会生成唯一的Request ID,在日志量非常庞大的情况下,带有Request ID的日志在排查故障,查询用户每次请求所产生的日志非常方便、快捷。
S302、通过logstash shipper将各应用的日志信息采集到redis集群中,logstash shipper为各个应用定义用以生成索引的唯一type;
然后,在分布式场景下,各个应用服务器上都增加了一个日志采集模块,通过日志采集模块收集服务器上的各个应用的日志信息。logstash shipper根据配置将各应用日志采集到redis集群中,logstash shipper会为各个应用定义唯一type用来以后生成索引用。
S303、通过日志转储组件redis,将数据统一缓存在key为logstash的名字中,采用list数据类型作为日志采集的一个缓存区队列;
在采集到各个应用的日志信息后,将采集到的各个应用的日志信息统一缓存在Key为logstash的名字中。redis作为日志转储组件可以有效提高***可用性,使用集群或者主备结构代替单实例,可以有效提高组件的可用性。在redis中,数据统一缓存在key为logstash的名字中,采用list数据类型作为日志采集的一个缓存区队列,list类型是按照***顺序排序的字符串链表,和数据结构中的普通链表一样,可以在其头部(left)和尾部(right)添加新的元素。
S304、拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;
然后,logstash indexer负责从redis拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换,例如,日期格式转换为预定义的格式,某些字段的去除、字段的合并转换、message信息json解析等,还有通过GeoIP获取ip所在地,根据***定制过滤条件,正则解析等。
S305、从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器;
从日志信息中抓取关键字,判断出应该写入到ElasticSearch的哪个index 中,并将信息存入对应的index,完成将日志信息存入ElasticSearch搜索服务器。日志存储在ElasticSearch中,同样ElasticSearch也是使用集群方式来进行部署,通过cluster.name来定义集群名称。ElasticSearch集群节点分为两种类型:master node、data node。Masternode:集群的管理节点,主要功能是维护元数据,管理集群各个节点的状态。Data node:负责数据的存储、查询和导入。
S306、在ElasticSearch搜索服务器的索引中查找、交换数据,生成相应的图表,展示图表。
本日志***的界面使用了kibana开源框架,为Elasticsearch提供分析和可视化的Web平台。它可以在Elasticsearch的索引中查找,交互数据,并生成各种维度的表图。主要展示信息包括:日志数量变化趋势图、日志TOPN 的实例图、失败时间日志分析图、日志查询结果。
综上所述,在上述实施例中,在日志管理时,首先将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中,然后在分布式场景下,采集各个应用服务器上各个应用的日志信息,将各个应用的日志信息统一缓存在Key为logstash的名字中,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。本发明通过RequestID能查询出整个请求的调用链日志详情,对于排查异常、快速定位非常方便快捷。同时,在日志收集、缓存、处理、存储等各个阶段均采用分布式、微服务化的部署方式,使日志处理的全流程均可根据实际使用情况,进行动态弹缩,有效地利用了物理资源,并能够应对大规模的日志,提高了查询和统计效率,并且能够进一步对ElasticSearch搜索服务器中的信息进行展示。
如图4所示,为本发明公开的一种基于微服务架构的日志管理***实施例1的结构示意图,所述***包括:
信息传递模块401,用于将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中;
当需要对日志进行管理时,首先为各个应用统一配置请求***,当拦截到http请求时,***首先生成request ID,同时收集应用的调用信息以及一些用户信息,将所述request ID以及收集的应用的调用信息和用户信息加密输出到日志中。其中,Request ID的生成是为各个应用日志间形成调用链,每次请求都会生成唯一的Request ID,在日志量非常庞大的情况下,带有Request ID的日志在排查故障,查询用户每次请求所产生的日志非常方便、快捷。
日志采集模块402,用于在分布式场景下,采集各个应用服务器上各个应用的日志信息;
然后,在分布式场景下,各个应用服务器上都增加了一个日志采集模块,通过日志采集模块收集服务器上的各个应用的日志信息。
日志缓存模块403,用于将各个应用的日志信息统一缓存在Key为 logstash的名字中;
在采集到各个应用的日志信息后,将采集到的各个应用的日志信息统一缓存在Key为logstash的名字中。
日志处理模块404,用于拉取日志信息,进行从原始数据到ElasticSearch 搜索服务器所要求的数据格式的转换;
然后,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换,例如,日期格式转换为预定义的格式,某些字段的去除、字段的合并转换、message信息json解析等,还有通过GeoIP获取ip所在地,根据***定制过滤条件,正则解析等。
日志存储模块405,用于从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。
从日志信息中抓取关键字,判断出应该写入到ElasticSearch的哪个index 中,并将信息存入对应的index,完成将日志信息存入ElasticSearch搜索服务器。日志存储在ElasticSearch中,同样ElasticSearch也是使用集群方式来进行部署,通过cluster.name来定义集群名称。ElasticSearch集群节点分为两种类型:master node、data node。Masternode:集群的管理节点,主要功能是维护元数据,管理集群各个节点的状态。Data node:负责数据的存储、查询和导入。
综上所述,在上述实施例中,在日志管理时,首先将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中,然后在分布式场景下,采集各个应用服务器上各个应用的日志信息,将各个应用的日志信息统一缓存在Key为logstash的名字中,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。本发明通过RequestID能查询出整个请求的调用链日志详情,对于排查异常、快速定位非常方便快捷。同时,在日志收集、缓存、处理、存储等各个阶段均采用分布式、微服务化的部署方式,使日志处理的全流程均可根据实际使用情况,进行动态弹缩,有效地利用了物理资源,并能够应对大规模的日志,提高了查询和统计效率。
如图5所示,为本发明公开的一种基于微服务架构的日志管理***实施例2的结构示意图,所述***包括:
信息传递模块501,用于将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中;
当需要对日志进行管理时,首先为各个应用统一配置请求***,当拦截到http请求时,***首先生成request ID,同时收集应用的调用信息以及一些用户信息,将所述request ID以及收集的应用的调用信息和用户信息加密输出到日志中。其中,Request ID的生成是为各个应用日志间形成调用链,每次请求都会生成唯一的Request ID,在日志量非常庞大的情况下,带有Request ID的日志在排查故障,查询用户每次请求所产生的日志非常方便、快捷。
日志采集模块502,用于在分布式场景下,采集各个应用服务器上各个应用的日志信息;
然后,在分布式场景下,各个应用服务器上都增加了一个日志采集模块,通过日志采集模块收集服务器上的各个应用的日志信息。
日志缓存模块503,用于将各个应用的日志信息统一缓存在Key为 logstash的名字中;
在采集到各个应用的日志信息后,将采集到的各个应用的日志信息统一缓存在Key为logstash的名字中。
日志处理模块504,用于拉取日志信息,进行从原始数据到ElasticSearch 搜索服务器所要求的数据格式的转换;
然后,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换,例如,日期格式转换为预定义的格式,某些字段的去除、字段的合并转换、message信息json解析等,还有通过GeoIP获取ip所在地,根据***定制过滤条件,正则解析等。
日志存储模块505,用于从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器;
从日志信息中抓取关键字,判断出应该写入到ElasticSearch的哪个index 中,并将信息存入对应的index,完成将日志信息存入ElasticSearch搜索服务器。日志存储在ElasticSearch中,同样ElasticSearch也是使用集群方式来进行部署,通过cluster.name来定义集群名称。ElasticSearch集群节点分为两种类型:master node、data node。Masternode:集群的管理节点,主要功能是维护元数据,管理集群各个节点的状态。Data node:负责数据的存储、查询和导入。
日志展示模块506,用于展示ElasticSearch搜索服务器中的信息。
将日志信息存储至ElasticSearch搜索服务器后,还可以根据使用需求,在ElasticSearch搜索服务器的索引中查找、交换数据,生成需要的表图并进行显示。
综上所述,在上述实施例中,在日志管理时,首先将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中,然后在分布式场景下,采集各个应用服务器上各个应用的日志信息,将各个应用的日志信息统一缓存在Key为logstash的名字中,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。本发明通过RequestID能查询出整个请求的调用链日志详情,对于排查异常、快速定位非常方便快捷。同时,在日志收集、缓存、处理、存储等各个阶段均采用分布式、微服务化的部署方式,使日志处理的全流程均可根据实际使用情况,进行动态弹缩,有效地利用了物理资源,并能够应对大规模的日志,提高了查询和统计效率,并且能够进一步对ElasticSearch搜索服务器中的信息进行展示。
如图6所示,为本发明公开的一种基于微服务架构的日志管理***实施例3的结构示意图,所述***包括:
信息传递模块601,用于将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中;
当需要对日志进行管理时,首先为各个应用统一配置请求***,当拦截到http请求时,***首先生成request ID,同时收集应用的调用信息以及一些用户信息,将所述request ID以及收集的应用的调用信息和用户信息加密输出到日志中。其中,Request ID的生成是为各个应用日志间形成调用链,每次请求都会生成唯一的Request ID,在日志量非常庞大的情况下,带有Request ID的日志在排查故障,查询用户每次请求所产生的日志非常方便、快捷。
日志采集模块602,用于通过logstash shipper将各应用的日志信息采集到redis集群中,logstash shipper为各个应用定义用以生成索引的唯一type;
然后,在分布式场景下,各个应用服务器上都增加了一个日志采集模块,通过日志采集模块收集服务器上的各个应用的日志信息。logstash shipper根据配置将各应用日志采集到redis集群中,logstash shipper会为各个应用定义唯一type用来以后生成索引用。
日志缓存模块603,用于通过日志转储组件redis,将数据统一缓存在key 为logstash的名字中,采用list数据类型作为日志采集的一个缓存区队列;
在采集到各个应用的日志信息后,将采集到的各个应用的日志信息统一缓存在Key为logstash的名字中。redis作为日志转储组件可以有效提高***可用性,使用集群或者主备结构代替单实例,可以有效提高组件的可用性。在redis中,数据统一缓存在key为logstash的名字中,采用list数据类型作为日志采集的一个缓存区队列,list类型是按照***顺序排序的字符串链表,和数据结构中的普通链表一样,可以在其头部(left)和尾部(right)添加新的元素。
日志处理模块604,用于拉取日志信息,进行从原始数据到ElasticSearch 搜索服务器所要求的数据格式的转换;
然后,logstash indexer负责从redis拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换,例如,日期格式转换为预定义的格式,某些字段的去除、字段的合并转换、message信息json解析等,还有通过GeoIP获取ip所在地,根据***定制过滤条件,正则解析等。
日志存储模块605,用于从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器;
从日志信息中抓取关键字,判断出应该写入到ElasticSearch的哪个index 中,并将信息存入对应的index,完成将日志信息存入ElasticSearch搜索服务器。日志存储在ElasticSearch中,同样ElasticSearch也是使用集群方式来进行部署,通过cluster.name来定义集群名称。ElasticSearch集群节点分为两种类型:master node、data node。Masternode:集群的管理节点,主要功能是维护元数据,管理集群各个节点的状态。Data node:负责数据的存储、查询和导入。
日志展示模块606,用于在ElasticSearch搜索服务器的索引中查找、交换数据,生成相应的图表,展示图表。
本日志***的界面使用了kibana开源框架,为Elasticsearch提供分析和可视化的Web平台。它可以在Elasticsearch的索引中查找,交互数据,并生成各种维度的表图。主要展示信息包括:日志数量变化趋势图、日志TOPN 的实例图、失败时间日志分析图、日志查询结果。
综上所述,在上述实施例中,在日志管理时,首先将配置在各个应用中的***生成的request ID,以及收集的应用的调用信息和用户信息输出至日志中,然后在分布式场景下,采集各个应用服务器上各个应用的日志信息,将各个应用的日志信息统一缓存在Key为logstash的名字中,拉取日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;从日志信息中抓取关键字,基于关键字将对应的日志信息存入ElasticSearch搜索服务器。本发明通过RequestID能查询出整个请求的调用链日志详情,对于排查异常、快速定位非常方便快捷。同时,在日志收集、缓存、处理、存储等各个阶段均采用分布式、微服务化的部署方式,使日志处理的全流程均可根据实际使用情况,进行动态弹缩,有效地利用了物理资源,并能够应对大规模的日志,提高了查询和统计效率,并且能够进一步对ElasticSearch搜索服务器中的信息进行展示。
为了更加特定地强调实施的独立性,本说明书涉及许多模块或单元。举例而言,模块或单元可由硬件电路实现,该硬件电路包括特制VLSI电路或门阵列,比如逻辑芯片、晶体管,或其它组件。模块或单元也可在可编程的硬设备中实现,比如场效可编程门阵列、可编程阵列逻辑、可编程逻辑设备等等。
模块或单元也可在藉由各种形式的处理器所执行的软件中实现。比如说,一可执行码模块可包括一个或多个实体的或逻辑的计算机指令区块,该区块可能形成为,比如说,对象、程序或函数。然而,鉴别模块或单元的可执行部分不需要物理上放置在一起,但可由存于不同位置的不同指令所组成,当逻辑上组合在一起时,形成模块或单元且达到该模块或单元所要求的目的。
实际上,可执行码模块或单元可以是一单一指令或多个指令,甚至可以分布在位于不同的程序的数个不同的码区段,并且横跨数个存储设备。同样地,操作数据可被辨识及显示于此模块或单元中,并且可以以任何合适的形式实施且在任何合适的数据结构形式内组织。操作数据可以集合成单一数据集,或可分布在具有不同的存储设备的不同的位置,且至少部分地只以电子信号方式存在于一***或网络。
本说明书所提及的“实施例”或类似用语表示与实施例有关的特性、结构或特征,包括在本发明的至少一实施例中。因此,本说明书所出现的用语“在一实施例中”、“在实施例中”以及类似用语可能但不必然都指向相同实施例。
再者,本发明所述特性、结构或特征可以以任何方式结合在一个或多个实施例中。以下说明将提供许多特定的细节,比如编程序、软件模块、用户选择、网络交易、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等例子,以提供对本发明实施例的了解。然而相关领域的普通技术人员将看出本发明,即使没有利用其中一个或多个特定细节,或利用其它方法、组件、材料等亦可实施。另一方面,为避免混淆本发明,公知的结构、材料或操作并没有详细描述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于微服务架构的日志管理方法,其特征在于,包括:
配置在各个应用中的***在拦截到应用请求时,为所述应用请求生成的requestID,并收集的所述应用的调用信息和用户信息,将request ID、所述调用信息和所述用户信息输出至日志中;
在分布式场景下,采集各个应用服务器上各个应用的日志信息;
将所述各个应用的日志信息统一缓存在Key为logstash的名字中;
拉取所述日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;
从所述日志信息中抓取关键字,基于所述关键字将对应的所述日志信息存入所述ElasticSearch搜索服务器。
2.根据权利要求1所述的方法,其特征在于,还包括:
展示所述ElasticSearch搜索服务器中的信息。
3.根据权利要求1或2所述的方法,其特征在于,所述在分布式场景下,采集各个应用服务器上各个应用的日志信息包括:
通过logstash shipper将各应用的日志信息采集到redis集群中;
所述logstash shipper为各个应用定义用以生成索引的唯一type。
4.根据权利要求3所述的方法,其特征在于,所述将所述各个应用的日志信息统一缓存在Key为logstash的名字中包括:
通过日志转储组件redis,将数据统一缓存在key为logstash的名字中;
采用list数据类型作为日志采集的一个缓存区队列。
5.根据权利要求2所述的方法,其特征在于,所述展示所述ElasticSearch搜索服务器中的信息包括:
在所述ElasticSearch搜索服务器的索引中查找、交换数据,生成相应的图表;
展示所述图表。
6.一种基于微服务架构的日志管理***,其特征在于,包括:
信息传递模块,用于将request ID,以及调用信息和用户信息输出至日志中;所述request ID为配置在各个应用中的***在拦截到所述应用的应用请求时生成的requestID,所述调用信息和用户信息为所述***在生成所述request ID时收集的所述应用的调用信息和用户信息;
日志采集模块,用于在分布式场景下,采集各个应用服务器上各个应用的日志信息;
日志缓存模块,用于将所述各个应用的日志信息统一缓存在Key为logstash的名字中;
日志处理模块,用于拉取所述日志信息,进行从原始数据到ElasticSearch搜索服务器所要求的数据格式的转换;
日志存储模块,用于从所述日志信息中抓取关键字,基于所述关键字将对应的所述日志信息存入所述ElasticSearch搜索服务器。
7.根据权利要求6所述的***,其特征在于,还包括:
日志展示模块,用于展示所述ElasticSearch搜索服务器中的信息。
8.根据权利要求6或7所述的***,其特征在于,所述日志采集模块具体用于:
通过logstash shipper将各应用的日志信息采集到redis集群中;
所述logstash shipper为各个应用定义用以生成索引的唯一type。
9.根据权利要求8所述的***,其特征在于,所述日志缓存模块,具体用于:
通过日志转储组件redis,将数据统一缓存在key为logstash的名字中;
采用list数据类型作为日志采集的一个缓存区队列。
10.根据权利要求7所述的***,其特征在于,所述日志展示模块,具体用于:
在所述ElasticSearch搜索服务器的索引中查找、交换数据,生成相应的图表;
展示所述图表。
CN201711172018.XA 2017-11-22 2017-11-22 一种基于微服务架构的日志管理方法及*** Active CN107861859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711172018.XA CN107861859B (zh) 2017-11-22 2017-11-22 一种基于微服务架构的日志管理方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711172018.XA CN107861859B (zh) 2017-11-22 2017-11-22 一种基于微服务架构的日志管理方法及***

Publications (2)

Publication Number Publication Date
CN107861859A CN107861859A (zh) 2018-03-30
CN107861859B true CN107861859B (zh) 2021-04-02

Family

ID=61703195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711172018.XA Active CN107861859B (zh) 2017-11-22 2017-11-22 一种基于微服务架构的日志管理方法及***

Country Status (1)

Country Link
CN (1) CN107861859B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804497A (zh) * 2018-04-02 2018-11-13 北京国电通网络技术有限公司 一种基于日志的大数据分析方法
CN108376181A (zh) * 2018-04-24 2018-08-07 丹阳飓风物流股份有限公司 基于elk的日志服务平台
CN108600012A (zh) * 2018-04-26 2018-09-28 深圳光华普惠科技有限公司 微服务架构监控***
CN108984583A (zh) * 2018-05-17 2018-12-11 北京国电通网络技术有限公司 一种基于日志文件的搜索方法
CN109033280A (zh) * 2018-07-11 2018-12-18 平安科技(深圳)有限公司 日志搜索方法、***、计算机设备和存储介质
CN109359142B (zh) * 2018-09-29 2020-11-27 北京明朝万达科技股份有限公司 一种数据处理方法、数据处理装置、计算机设备及可读存储介质
CN109284294A (zh) * 2018-10-12 2019-01-29 珠海格力智能装备有限公司 采集数据的方法及装置、存储介质、处理器
CN109446769A (zh) * 2018-10-18 2019-03-08 北京计算机技术及应用研究所 统计身份认证及日志处理微服务***及其实现方法
CN109492037B (zh) * 2018-11-02 2020-06-12 北京明朝万达科技股份有限公司 基于Redis和Logstash的数据采集方法及设备
CN111198859B (zh) * 2018-11-16 2023-11-03 北京微播视界科技有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN110008095A (zh) * 2018-11-28 2019-07-12 阿里巴巴集团控股有限公司 一种日志信息展示方法及***
CN109672741B (zh) * 2018-12-25 2020-01-14 南方电网数字电网研究院有限公司 微服务监控方法、装置、计算机设备和存储介质
CN109840251B (zh) * 2018-12-29 2023-11-03 北京奥鹏远程教育中心有限公司 一种大数据聚合查询方法
CN109857768B (zh) * 2018-12-29 2023-09-08 电大在线远程教育技术有限公司 一种大数据聚合查询方法
CN109871380B (zh) * 2019-01-14 2022-11-11 深圳市东信时代信息技术有限公司 一种基于Redis的人群包应用方法及***
CN109902105B (zh) * 2019-02-28 2021-08-17 携程旅游网络技术(上海)有限公司 用于微服务架构的数据查询***、方法、设备及存储介质
CN110175154A (zh) * 2019-05-17 2019-08-27 深圳前海微众银行股份有限公司 一种日志记录的处理方法、服务器及存储介质
CN110427299B (zh) * 2019-07-19 2022-02-11 腾讯科技(深圳)有限公司 微服务***应用的日志处理方法、相关设备及***
CN110633186A (zh) * 2019-08-16 2019-12-31 南方电网科学研究院有限责任公司 用于电力计量微服务架构的日志监控***及实现方法
CN110825741B (zh) * 2019-10-30 2022-09-20 北京蜜莱坞网络科技有限公司 一种追踪日志快速查询方法及装置
CN111143286B (zh) * 2019-12-13 2024-01-09 无锡华云数据技术服务有限公司 一种云平台日志管理方法及***
CN111241049B (zh) * 2020-01-06 2023-05-02 深圳市同洲电子股份有限公司 一种基于微服务架构分布式操作日志实现***
CN111274215A (zh) * 2020-01-08 2020-06-12 成都康赛信息技术有限公司 一种基于分布式的日志统一管理方法
CN111309793A (zh) * 2020-01-15 2020-06-19 北大方正集团有限公司 数据处理方法、装置及设备
CN111522922B (zh) * 2020-03-26 2023-08-22 浙江口碑网络技术有限公司 日志信息查询方法、装置、存储介质及计算机设备
CN112069021B (zh) * 2020-08-21 2024-02-20 北京五八信息技术有限公司 流量数据的存储方法、装置、电子设备和存储介质
US11513875B2 (en) 2020-08-28 2022-11-29 Ncr Corporation Multiplatform microservice connection techniques
CN114625595B (zh) * 2020-12-14 2024-07-09 网联清算有限公司 一种业务***动态配置信息的复核方法、装置和***
CN112948328A (zh) * 2021-01-28 2021-06-11 长沙市到家悠享网络科技有限公司 一种日志数据的检索方法及装置、设备、介质
CN113778810A (zh) * 2021-09-27 2021-12-10 杭州安恒信息技术股份有限公司 一种日志收集方法、装置及***
CN114301893B (zh) * 2021-12-30 2023-11-07 胜斗士(上海)科技技术发展有限公司 日志管理方法、***和可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032249B1 (en) * 2005-08-26 2015-05-12 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
US9600404B1 (en) * 2005-08-26 2017-03-21 Open Invention Network Llc Method and system for providing storage checkpointing to a group of independent computer applications

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105071966B (zh) * 2015-08-10 2018-07-17 浪潮(北京)电子信息产业有限公司 一种日志信息管理方法及日志抽取服务器
CN105224445B (zh) * 2015-10-28 2017-02-15 北京汇商融通信息技术有限公司 分布式跟踪***
CN105933163B (zh) * 2016-06-24 2019-08-27 微梦创科网络科技(中国)有限公司 一种实时分布式调试跟踪方法及***
CN106130782A (zh) * 2016-07-19 2016-11-16 努比亚技术有限公司 一种获取服务器日志的方法和***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032249B1 (en) * 2005-08-26 2015-05-12 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
US9600404B1 (en) * 2005-08-26 2017-03-21 Open Invention Network Llc Method and system for providing storage checkpointing to a group of independent computer applications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
服务链路追踪(Spring Cloud Sleuth);duanxz;《https://www.cnblogs.com/duanxz/p/7552857.html》;20170919;第1-7页 *

Also Published As

Publication number Publication date
CN107861859A (zh) 2018-03-30

Similar Documents

Publication Publication Date Title
CN107861859B (zh) 一种基于微服务架构的日志管理方法及***
Tas et al. An approach to standalone provenance systems for big social provenance data
US9582541B2 (en) Systems, methods, and computer program products to ingest, process, and output large data
CN111209352B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN111241078A (zh) 数据分析***、数据分析的方法及装置
CN113360554B (zh) 一种数据抽取、转换和加载etl的方法和设备
CN106156047B (zh) 一种快照信息处理方法及装置
CN107103064B (zh) 数据统计方法及装置
US10657099B1 (en) Systems and methods for transformation and analysis of logfile data
CN107818024A (zh) 一种基于spring***的request ID传递方法及***
CN104778188A (zh) 一种分布式设备日志采集方法
CN111258978A (zh) 一种数据存储的方法
Rodrigues et al. Big data processing tools: An experimental performance evaluation
CN104993957A (zh) 一种为使用Log4j的分布式应用提供云端日志服务的方法
CN112800058A (zh) 一种HBase二级索引的实现方法
CN117149873A (zh) 一种基于流批一体化的数据湖服务平台构建方法
CN116010494A (zh) 一种支持异构数据源的数据交换***
US11354313B2 (en) Transforming a user-defined table function to a derived table in a database management system
CN106776644A (zh) 一种报表***配置方法和装置
Yang et al. Visualization and adaptive subsetting of earth science data in HDFS: A novel data analysis strategy with Hadoop and Spark
CN106802922B (zh) 一种基于对象的溯源存储***及方法
CN112286918B (zh) 数据快速接入转换的方法、装置、电子设备及存储介质
Dhaouadi et al. Big Data Tools: Interoperability Study and Performance Testing
Dai et al. The Hadoop stack: new paradigm for big data storage and processing
CN111143329A (zh) 一种数据处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100038 room 311, 3rd floor, building 21, No.68 courtyard, Beiqing Road, Haidian District, Beijing

Patentee after: BEIJING HUITONG JINCAI INFORMATION TECHNOLOGY Co.,Ltd.

Patentee after: State Grid Digital Technology Holdings Co.,Ltd.

Patentee after: State Grid Corporation of China

Address before: 100038 room 311, 3rd floor, building 21, No.68 courtyard, Beiqing Road, Haidian District, Beijing

Patentee before: BEIJING HUITONG JINCAI INFORMATION TECHNOLOGY Co.,Ltd.

Patentee before: STATE GRID ELECTRONIC COMMERCE Co.,Ltd.

Patentee before: State Grid Corporation of China