CN112506743A - 一种日志监控方法、装置和服务器 - Google Patents

一种日志监控方法、装置和服务器 Download PDF

Info

Publication number
CN112506743A
CN112506743A CN202011446695.8A CN202011446695A CN112506743A CN 112506743 A CN112506743 A CN 112506743A CN 202011446695 A CN202011446695 A CN 202011446695A CN 112506743 A CN112506743 A CN 112506743A
Authority
CN
China
Prior art keywords
data
log
monitoring
log data
distributed
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.)
Granted
Application number
CN202011446695.8A
Other languages
English (en)
Other versions
CN112506743B (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.)
Tianjin Shituo Information Technology Co ltd
Original Assignee
Tianjin Shituo Information Technology 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 Tianjin Shituo Information Technology Co ltd filed Critical Tianjin Shituo Information Technology Co ltd
Priority to CN202011446695.8A priority Critical patent/CN112506743B/zh
Publication of CN112506743A publication Critical patent/CN112506743A/zh
Application granted granted Critical
Publication of CN112506743B publication Critical patent/CN112506743B/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/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3068Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种日志监控方法、装置和服务器,该方法包括:通过埋点按照日志数据的预置格式获取日志数据,将日志数据通过数据处理管道推送给分布式发布订阅系统;对分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据;设置用于监控数据与前端通讯的数据调用接口,并通过前端实现对日志的监控。上述技术方案以分布式发布订阅系统为缓存,适合产生大量数据的互联网服务的数据收集业务,使得对日志数据的运算分析更为充分,优化了日志监控流程;且监控项目更广更全面,提高了日志监控的智能化水平。

Description

一种日志监控方法、装置和服务器
技术领域
本发明涉及大数据处理领域,具体涉及一种日志监控方法、装置和服务器。
背景技术
因业务发展过程中软件产品不断开发迭代,新功能不断增加,各种服务不断部署。为了能够更早发现各个服务模块中出现的软硬件问题以及用户使用情况,需要一套完整的服务日志监控告警系统。
目前的主流日志监控系统以及一些开源方案只是针对于服务器所产生的日志进行简单监控,只能针对于服务日志ERROR进行简单告警。对于用户的行为以及每次调用所产生的链路等复杂监控需求并不能很好的解决,并且目前的日志监控系统也无法分析统计每天的各个功能模块使用情况、使用频率、活跃人数和用户操作。
另外,对于公司内部自有的一些服务,例如Oracle等数据库每天读写流量、XXL-JOB分布式任务调度平台定时调度运行情况、TDH大数据处理平台的告警监控没有做统一处理。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种日志监控方法、装置和服务器。
依据本发明的一个方面,提供了一种日志监控方法,所述方法包括:
通过埋点按照日志数据的预置格式获取所述日志数据,将所述日志数据通过数据处理管道推送给分布式发布订阅系统;
对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据;
设置用于所述监控数据与前端通讯的数据调用接口,并通过所述前端实现对日志的监控。
可选地,所述日志数据的预置格式包括如下的至少一项:日志时间戳、日志来源、客户端地址、日志等级、日志所属服务、链路标识、链路中各模块的标识、异常信息、调用信息、用户账号。
可选地,所述通过埋点按照日志数据的预置格式获取所述日志数据,将所述日志数据通过数据处理管道推送给分布式发布订阅系统具体为:
通过日志框架Slf4j进行埋点,获取日志数据后通过Logstash数据处理管道推送给Apache Kafka分布式发布订阅系统。
可选地,所述对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据包括如下的至少一项:
将所述日志数据按照服务、模块或来源接口进行分类,通过Apache Flink流式框架计算统计各类别的日志数量和/或调用成败的次数,并按照所述数量和/或所述次数进行排序;
获取日志数据中的错误信息,通过Apache Flink流式计算框架统计预设时段内所述错误信息出现的次数;
按照链路标识对所述日志数据进行聚合运算,统计链路包括的模块和/或来源接口在预设时间内调用的次数;
提取并过滤日志数据中的用户操作数据,以供前端对用户行为进行展示;
对所述日志数据按照链路标识进行聚合运算,确定服务、模块或来源接口的使用次数,并将运算结果输入分布式发布订阅系统以供实时展示;将模块或来源接口调用次数按照预设时间单位进行聚合,将各预设时间单位内的结果输入列式存储数据库以供实时展示;
将所述日志数据按照模块标识进行聚合运算,确定出完整日志链路,对各完整日志链路的数量进行统计;
将日志数据清洗过滤,转换成格式化数据,保存至分布式全文搜索引擎,以供搜索查询;
通过排序学习对所述日志数据进行训练,得到训练的特征模型,将所述特征模型保存至分布式全文搜索引擎,以供进行个性化搜索。
可选地,所述对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据之后还包括:
将所述监控数据保存或推送至如下中的任一项或几项:分布式发布订阅系统、本地Map数据结构、Redis数据库、列式存储数据库或即时通讯应用。
可选地,所述对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据之后进一步包括:
通过分布式任务调用平台在所述分布式发布订阅系统、本地Map数据结构、Redis数据库、列式存储数据库之间进行调度,将分布式发布订阅系统中的数据或者经运算处理后的数据通过所述分布式任务调用平台输入所述Redis数据库或所述列式存储数据库中,然后通过所述数据调用接口实现与前端的通讯。
可选地,所述数据调用接口包括如下的至少一项:Websocket接口、HTTP接口、SOUP接口、RMI接口、RPC接口。
可选地,所述设置用于所述监控数据与前端通讯的数据调用接口,并通过所述前端实现对日志的监控包括如下的至少一项:
将本地Map数据结构中的SessionId作为键,将连接实例作为值,同时,将相应的服务、模块或来源接口作为键,将SessionId作为值,以集合的形式保存至Redis数据库中,以供前端调用或向前端推送;
以日志数据中的时间戳作为筛选条件过滤经过预设时段的数据,并将相应服务、模块或者来源接口作为键,将日志数据作为值,保存至本地Map数据结构中,之后通过分布式任务调度平台定时刷新存入Redis数据库中,并与相应的SessionId拼接,以供前端调用或向前端推送;
通过分布式任务调度平台调用经运算处理后的数据,将服务、模块或来源接口作为键,将该数据作为值,存于本地Map数据结构中,然后再存入Redis数据库中,并与Redis数据库中预存的相应的SessionId一起拼接,以供前端调用或向前端推送;
在Redis数据库接收到日志数据后,根据本地Map数据结构中预存的SessionId判断是否需要推送该日志数据,并通过Websocket向前端实时推送;
监控大型数据库读写流量、分布式任务调用平台定时调度运行情况、大数据处理平台运行状况,保存到数据表中,以供前端调用或向前端推送。
依据本发明另一方面,提供一种日志监控装置,所述装置包括:
数据收集模块,用于通过埋点按照日志数据的预置格式获取所述日志数据,将所述日志数据通过数据处理管道推送给分布式发布订阅系统;
数据处理模块,用于对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据;
日志监控模块,用于设置用于所述监控数据与前端通讯的数据调用接口,并通过所述前端实现对日志的监控。
依据本发明的又一方面,提供了一种服务器,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。
依据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。
由上述可知,本发明的技术方案,通过埋点按照日志数据的预置格式获取所述日志数据,将所述日志数据通过数据处理管道推送给分布式发布订阅系统;对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据;设置用于所述监控数据与前端通讯的数据调用接口,并通过所述前端实现对日志的监控。实现了以分布式发布订阅系统为缓存,适合产生大量数据的互联网服务的数据收集业务,使得对日志数据的运算分析更为充分,优化了日志监控流程;且监控项目更广更全面,提高了日志监控的智能化水平。
进一步地,本发明综合了Apache Flink流式计算、Logstash数据处理管道、ApacheKafka分布式发布订阅系统、ClickHouse列式存储数据库、Elasticsearch分布式全文搜索引擎、Redis数据库以及Redis的Pub/Sub通道、钉钉告警插件系统等工具,通过数据埋点、数据运算处理分析、智能搜索以及信息推送等步骤,并加入了各主要数据库读写流量、调度平台以及大数据平台等的运行状态统计,实现了日志等的大数据分析、自动智能感知以及告警等监控。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的日志监控方法的流程示意图;
图2(a)、(b)示出了根据本发明一个实施例的日志数据运算和检索的流程示意图;
图3示出了根据本发明一个实施例的数据处理的流程示意图;
图4示出了根据本发明一个实施例的数据转发处理的流程示意图;
图5示出了根据本发明一个实施例的日志监控装置的结构示意图;
图6示出了根据本发明一个实施例的服务器的结构示意图;
图7示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的日志监控方法,该方法包括:
S110,通过在各分布的日志数据产生位置通过日志框架埋点,并且按照日志数据的预置格式获取统一格式后的日志数据,然后将该日志数据通过日志用的数据处理管道如Logstash推送给分布式发布订阅系统如Apache Kafka,Kafka是Linkedin开源的MQ(Message Queue,消息队列)系统,主要特点是基于拉/取(Pub/Sub)的模式来处理消息消费,追求高吞吐量,其主要目的是用于日志收集和传输,适合产生大量数据的互联网服务的数据收集业务,提供Pub/Sub方式的海量消息处理,以高容错的方式存储海量数据流,并保证数据流的顺序。当然,本发明实施例中也可以采用其他的分布式发布订阅系统来实现数据的缓冲和处理。
S120,对所述分布式发布订阅系统中的日志数据进行运算处理,包括但不限于聚合运算,统计分析,排序等智能化处理,从而生成供开发、管理以及产品等数据关注者查看或检索用的若干项监控数据,这些监控数据包括网站登录人次、访问量、错误数据、实时数据、历史数据、统计数据、聚合数据等,并且在运算过程中,根据需要,还可能涉及到不同数据源之间的数据调用。
S130,设置用于所述监控数据与前端通讯的数据调用接口,其中通讯方式不仅包括前端对后端数据的查询调用,也包括后端向前端推送,还包括订阅和发布等,从而最终实现数据关注者通过前端对日志进行监控。
本发明的上述实施例,上述技术方案以分布式发布订阅系统为缓存,适合产生大量数据的互联网服务的数据收集业务,使得对日志数据的运算分析更为充分,优化了日志监控流程;且监控项目更广更全面,提高了日志监控的整体效益。
在一个或一些实施例中,所述日志数据的预置格式包括如下的至少一项:日志时间戳、日志来源、客户端地址、日志等级、日志所属服务、日志所属模块、链路标识、链路中各模块的标识、异常信息、调用信息、用户账号,还可以根据需要包括线程、分类名称、URL等信息。
在一个优选实施例中,S110具体通过如下的方式实现:通过日志框架Slf4j进行埋点,获取日志数据后通过Logstash数据处理管道推送给Apache Kafka分布式发布订阅系统。
其中,日志框架Slf4j的全称是Simple Logging Facade for Java,即简单日志门面,日志框架Slf4j实现了日志框架一些通用的API,日志的格式、记录级别、输出方式等都是通过绑定具体的日志框架实现的。
在一个具体的实施例中,参见图2(a)和图2(b)所示,S120包括如下的至少一项操作:
操作1,将所述日志数据按照服务、模块或来源接口进行分类,通过Apache Flink流式计算等相似的计算框架统计各类别的日志数,还可以统计调用服务或模块成败的次数,并按照统计获得的数量或次数对各类别进行排序,以在后续写入Kafka中供数据调用接口调用。
操作2,从分布式发布订阅系统获取日志数据中的错误信息,通过Apache Flink流式计算等计算框架统计预设时段如一天内该错误信息类型出现的次数,根据图2所示,然后将该错误信息的情况及时推送到钉钉等即时通讯应用的群里。
操作3,按照链路标识对所述日志数据进行聚合运算,统计链路包括的服务、模块或来源接口等在预设时间内调用的次数,将其结果写入Kafka进行实时展示,或者将调用次数按照分钟聚合,然后将每分钟的结果写入ClickHouse,以供通过XXL-JOB等分布式任务调用平台定时调用后供其他运算使用。
操作4,参见图2(a)和图2(b),为了分析用户的操作行为,可提取并过滤日志数据中的用户操作数据,以供前端对用户行为进行展示;
操作5,对所述日志数据按照链路标识进行聚合运算,确定服务、模块或来源接口的使用次数,并将运算结果输入分布式发布订阅系统以供实时展示;将模块或来源接口调用次数按照预设时间单位如分钟进行聚合,将各预设时间单位如每分钟内的结果输入ClickHouse列式存储数据库以供实时展示。
操作6,将所述日志数据按照模块标识进行聚合运算,确定出完整日志链路,然后对各完整日志链路的数量进行统计后供前端展示。
操作7,将日志数据清洗过滤,转换成格式化数据,保存至ElasticSearch等分布式全文搜索引擎中,以供搜索查询,如供页面查询详细的日志情况;
操作8,结合图3所示的流程示意图,通过排序学习(Learning to rank)对所述分布式发布订阅系统中的日志数据进行训练,得到训练的特征模型,将所述特征模型保存至ElasticSearch等分布式全文搜索引擎,以供用户进行个性化搜索。
通过上述操作,可以实现对日志数据进行聚合、统计等运算处理,从而为后续的日志监控提供支持。当然,该实施例中的上述操作仅是举例,其他相似的操作均在本发明的保护范围之内。
在一个实施例中,继续参见图2(b),S120之后还包括将所述监控数据保存或者推送至如下中的任一项或几项的步骤,如推送到Kafka分布式发布订阅系统的消息队列中,或者推送至本地Map数据结构中,或者Redis数据库,或者根据需要保存至ClickHouse列式存储数据库或者即时通讯应用如钉钉、微信中的特定群里。
在一个实施例中,S120之后进一步包括:通过XXL-JOB等分布式任务调用平台在所述分布式发布订阅系统、本地Map数据结构、Redis数据库、列式存储数据库之间进行调度。
具体地,根据图4所示,可以将分布式发布订阅系统Kafka中的实时数据或者经运算处理后的统计数据通过所述分布式任务调用平台XXL-JOB输入Redis数据库中,然后将其中的数据通过数据调用接口如Websocket以及Redis数据库的发布和订阅组件等实现与前端的通讯。
在一个实施例中,所述数据调用接口包括如下的至少一项:Websocket接口、HTTP接口、SOUP接口、RMI接口、RPC接口。
在一个实施例中,S130为数据转发的操作,主要用于通过Websocket以及各种API供前端调用,具体包括如下的至少一项操作:
操作1,将本地Map数据结构中的SessionId作为键,将连接实例作为值,同时,将相应的服务、模块或来源接口作为键,将SessionId作为值,以集合set形式保存至Redis数据库中,将Redis数据库中存储的相应日志数据返回给前端。
操作2,以日志数据中的时间戳作为筛选条件过滤经过预设时段的旧数据,并将相应服务、模块或者来源接口作为键,将日志数据作为值,保存至本地Map数据结构的list中,之后通过XXL-JOB等分布式任务调度平台定时刷新存入Redis数据库中,并与之前从Redis数据库订阅的相应SessionId拼接,一起作为查询结果以供前端调用或向前端推送。
操作3,通过XXL-JOB等分布式任务调度平台调用经Flink流式计算中运算处理接口处理后的数据,将数据中的服务、模块或来源接口作为键,将该数据作为值,存于本地Map数据结构中,然后再存入Redis数据库中,并与Redis数据库中预存的相应的SessionId一起拼接后同时发布数据,以供前端调用或向前端推送。
操作4,在Redis数据库接收到日志数据后,根据本地Map数据结构中预存的SessionId判断是否需要推送该日志数据,通过Websocket向前端实时推送,以此保证前端数据的实时性。
操作5,为了保证监控的全面性,还包括监控大型数据库如Oracle的读写流量、分布式任务调用平台XXL-JOB的定时调度运行情况以及大数据处理平台如TDH的运行状况,保存到Mysql的数据表中,以供前端调用或向前端推送。
图5示出了根据本发明一个实施例的日志监控装置500,该装置包括:
数据收集模块510,用于通过在各分布的日志数据产生位置通过日志框架埋点,并且按照日志数据的预置格式获取统一格式后的日志数据,然后将该日志数据通过日志用的数据处理管道如Logstash推送给分布式发布订阅系统如Apache Kafka,Kafka是Linkedin开源的MQ系统,主要特点是基于拉取的模式来处理消息消费,追求高吞吐量,其主要目的是用于日志收集和传输,适合产生大量数据的互联网服务的数据收集业务,提供Pub/Sub方式的海量消息处理,以高容错的方式存储海量数据流,并保证数据流的顺序。当然,本发明实施例中也可以采用其他的分布式发布订阅系统来实现数据的缓冲和处理。
数据处理模块520,用于对所述分布式发布订阅系统中的日志数据进行运算处理,包括但不限于聚合运算,统计分析,排序等智能化处理,从而生成供开发、管理以及产品等数据关注者查看或检索用的若干项监控数据,这些监控数据包括网站登录人次、访问量、错误数据、实时数据、历史数据、统计数据、聚合数据等,并且在运算过程中,根据需要,还可能涉及到不同数据源之间的数据调用。
日志监控模块530,用于设置用于所述监控数据与前端通讯的数据调用接口,其中通讯方式不仅包括前端对后端数据的查询调用,也包括后端向前端推送,还包括订阅和发布等,从而最终实现数据关注者通过前端对日志进行监控。
本发明的上述实施例,上述技术方案以分布式发布订阅系统为缓存,适合产生大量数据的互联网服务的数据收集业务,使得对日志数据的运算分析更为充分,优化了日志监控流程;且监控项目更广更全面,提高了日志监控的整体效益。
在一个或一些实施例中,所述日志数据的预置格式包括如下的至少一项:日志时间戳、日志来源、客户端地址、日志等级、日志所属服务、日志所属模块、链路标识、链路中各模块的标识、异常信息、调用信息、用户账号,还可以根据需要包括线程、分类名称、URL等信息。
在一个优选实施例中,所述数据收集模块510还用于:通过日志框架Slf4j进行埋点,获取日志数据后通过Logstash数据处理管道推送给Apache Kafka分布式发布订阅系统。
其中,日志框架Slf4j的全称是Simple Logging Facade for Java,即简单日志门面,日志框架Slf4j实现了日志框架一些通用的API,日志的格式、记录级别、输出方式等都是通过绑定具体的日志框架实现的。
在一个具体的实施例中,参见图2(a)和图2(b)所示,所述数据处理模块520还用于实现:
操作1,将所述日志数据按照服务、模块或来源接口进行分类,通过Apache Flink流式计算等相似的计算框架统计各类别的日志数,还可以统计调用服务或模块成败的次数,并按照统计获得的数量或次数对各类别进行排序,以在后续写入Kafka中供数据调用接口调用。
操作2,从分布式发布订阅系统获取日志数据中的错误信息,通过Apache Flink流式计算等计算框架统计预设时段如一天内该错误信息类型出现的次数,根据图2所示,然后将该错误信息的情况及时推送到钉钉等即时通讯应用的群里。
操作3,按照链路标识对所述日志数据进行聚合运算,统计链路包括的服务、模块或来源接口等在预设时间内调用的次数,将其结果写入Kafka进行实时展示,或者将调用次数按照分钟聚合,然后将每分钟的结果写入ClickHouse,以供通过XXL-JOB等分布式任务调用平台定时调用后供其他运算使用。
操作4,参见图2,为了分析用户的操作行为,可提取并过滤日志数据中的用户操作数据,以供前端对用户行为进行展示;
操作5,对所述日志数据按照链路标识进行聚合运算,确定服务、模块或来源接口的使用次数,并将运算结果输入分布式发布订阅系统以供实时展示;将模块或来源接口调用次数按照预设时间单位如分钟进行聚合,将各预设时间单位如每分钟内的结果输入ClickHouse列式存储数据库以供实时展示。
操作6,将所述日志数据按照模块标识进行聚合运算,确定出完整日志链路,然后对各完整日志链路的数量进行统计后供前端展示。
操作7,将日志数据清洗过滤,转换成格式化数据,保存至ElasticSearch等分布式全文搜索引擎中,以供搜索查询,如供页面查询详细的日志情况;
操作8,结合图3所示的流程示意图,通过排序学习(Learning to rank)对所述分布式发布订阅系统中的日志数据进行训练,得到训练的特征模型,将所述特征模型保存至ElasticSearch等分布式全文搜索引擎,以供用户进行个性化搜索。
通过上述操作,可以实现对日志数据进行聚合、统计等运算处理,从而为后续的日志监控提供支持。当然,该实施例中的上述操作仅是举例,其他相似的操作和功能实现均在本发明的保护范围之内。
在一个实施例中,继续参见图2,所述装置还包括数据保存模块,用于将所述监控数据保存或者推送至如下中的任一项或几项:如推送到Kafka分布式发布订阅系统的消息队列中,或者推送至本地Map数据结构中,或者Redis数据库,或者根据需要保存至ClickHouse列式存储数据库或者即时通讯应用如钉钉、微信中的特定群里。
在一个实施例中,所述数据保存模块还用于:通过XXL-JOB等分布式任务调用平台在所述分布式发布订阅系统、本地Map数据结构、Redis数据库、列式存储数据库之间进行调度。
具体地,根据图4所示,可以将分布式发布订阅系统Kafka中的实时数据或者经运算处理后的统计数据通过所述分布式任务调用平台XXL-JOB输入Redis数据库中,然后将其中的数据通过数据调用接口如Websocket以及Redis数据库的发布和订阅组件等实现与前端的通讯。
在一个实施例中,所述数据调用接口包括如下的至少一项:Websocket接口、HTTP接口、SOUP接口、RMI接口、RPC接口。
在一个实施例中,所述日志监控模块530,还用于通过Websocket以及各种API供前端调用,具体包括如下的至少一项操作:
操作1,将本地Map数据结构中的SessionId作为键,将连接实例作为值,同时,将相应的服务、模块或来源接口作为键,将SessionId作为值,以集合set形式保存至Redis数据库中,将Redis数据库中存储的相应日志数据返回给前端。
操作2,以日志数据中的时间戳作为筛选条件过滤经过预设时段的旧数据,并将相应服务、模块或者来源接口作为键,将日志数据作为值,保存至本地Map数据结构的list中,之后通过XXL-JOB等分布式任务调度平台定时刷新存入Redis数据库中,并与之前从Redis数据库订阅的相应SessionId拼接,一起作为查询结果以供前端调用或向前端推送。
操作3,通过XXL-JOB等分布式任务调度平台调用经Flink流式计算中运算处理接口处理后的数据,将数据中的服务、模块或来源接口作为键,将该数据作为值,存于本地Map数据结构中,然后再存入Redis数据库中,并与Redis数据库中预存的相应的SessionId一起拼接后同时发布数据,以供前端调用或向前端推送。
操作4,在Redis数据库接收到日志数据后,根据本地Map数据结构中预存的SessionId判断是否需要推送该日志数据,通过Websocket向前端实时推送,以此保证前端数据的实时性。
操作5,为了保证监控的全面性,还包括监控大型数据库如Oracle的读写流量、分布式任务调用平台XXL-JOB的定时调度运行情况以及大数据处理平台如TDH的运行状况,保存到Mysql的数据表中,以供前端调用或向前端推送。
综上所述,本发明的技术方案,实现了以分布式发布订阅系统为缓存,适合产生大量数据的互联网服务的数据收集业务,使得对日志数据的运算分析更为充分,优化了日志监控流程;且监控项目更广更全面,提高了日志监控的智能化水平和整体效益。
进一步地,本发明综合了Apache Flink流式计算、Logstash数据处理管道、ApacheKafka分布式发布订阅系统、ClickHouse列式存储数据库、Elasticsearch分布式全文搜索引擎、Redis数据库以及Redis的Pub/Sub通道、钉钉告警插件系统等工具,通过数据埋点、数据运算处理分析、智能搜索以及信息推送等步骤,并加入了各主要数据库读写流量、调度平台以及大数据平台等的运行状态统计,实现了日志等的大数据分析、自动智能感知以及告警等监控。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的日志监控装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图6示出了根据本发明一个实施例的服务器的结构示意图。该服务器600包括处理器610和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器620。存储器620可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器620具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码631的存储空间630。例如,用于存储计算机可读程序代码的存储空间630可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码631。计算机可读程序代码631可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图7所述的计算机可读存储介质。图7示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质700存储有用于执行根据本发明的方法步骤的计算机可读程序代码631,可以被服务器600的处理器610读取,当计算机可读程序代码631由服务器600运行时,导致该服务器600执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码631可以执行上述任一实施例中示出的方法。计算机可读程序代码631可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种日志监控方法,其特征在于,所述方法包括:
通过埋点按照日志数据的预置格式获取所述日志数据,将所述日志数据通过数据处理管道推送给分布式发布订阅系统;
对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据;
设置用于所述监控数据与前端通讯的数据调用接口,并通过所述前端实现对日志的监控。
2.根据权利要求1所述的方法,其特征在于,所述日志数据的预置格式包括如下的至少一项:日志时间戳、日志来源、客户端地址、日志等级、日志所属服务、链路标识、链路中各模块的标识、异常信息、调用信息、用户账号。
3.根据权利要求1所述的方法,其特征在于,所述通过埋点按照日志数据的预置格式获取所述日志数据,将所述日志数据通过数据处理管道推送给分布式发布订阅系统具体为:
通过日志框架Slf4j进行埋点,获取日志数据后通过Logstash数据处理管道推送给Apache Kafka分布式发布订阅系统。
4.根据权利要求1所述的方法,其特征在于,所述对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据包括如下的至少一项:
将所述日志数据按照服务、模块或来源接口进行分类,通过Apache Flink流式框架计算统计各类别的日志数量和/或调用成败的次数,并按照所述数量和/或所述次数进行排序;
获取日志数据中的错误信息,通过Apache Flink流式计算框架统计预设时段内所述错误信息出现的次数;
按照链路标识对所述日志数据进行聚合运算,统计链路包括的模块和/或来源接口在预设时间内调用的次数;
提取并过滤日志数据中的用户操作数据,以供前端对用户行为进行展示;
对所述日志数据按照链路标识进行聚合运算,确定服务、模块或来源接口的使用次数,并将运算结果输入分布式发布订阅系统以供实时展示;将模块或来源接口调用次数按照预设时间单位进行聚合,将各预设时间单位内的结果输入列式存储数据库以供实时展示;
将所述日志数据按照模块标识进行聚合运算,确定出完整日志链路,对各完整日志链路的数量进行统计;
将日志数据清洗过滤,转换成格式化数据,保存至分布式全文搜索引擎,以供搜索查询;
通过排序学习对所述日志数据进行训练,得到训练的特征模型,将所述特征模型保存至分布式全文搜索引擎,以供进行个性化搜索。
5.根据权利要求1所述的方法,其特征在于,所述对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据之后还包括:
将所述监控数据保存或推送至如下中的任一项或几项:分布式发布订阅系统、本地Map数据结构、Redis数据库、列式存储数据库或即时通讯应用。
6.根据权利要求5所述的方法,其特征在于,所述对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据之后进一步包括:
通过分布式任务调用平台在所述分布式发布订阅系统、本地Map数据结构、Redis数据库、列式存储数据库之间进行调度,将分布式发布订阅系统中的数据或者经运算处理后的数据通过所述分布式任务调用平台输入所述Redis数据库或所述列式存储数据库中,然后通过所述数据调用接口实现与前端的通讯。
7.根据权利要求1所述的方法,其特征在于,所述数据调用接口包括如下的至少一项:Websocket接口、HTTP接口、SOUP接口、RMI接口、RPC接口。
8.根据权利要求5所述的方法,其特征在于,所述设置用于所述监控数据与前端通讯的数据调用接口,并通过所述前端实现对日志的监控包括如下的至少一项:
将本地Map数据结构中的SessionId作为键,将连接实例作为值,同时,将相应的模块或来源接口作为键,将SessionId作为值,以集合的形式保存至Redis数据库中,以供前端调用或向前端推送;
以日志数据中的时间戳作为筛选条件过滤经过预设时段的数据,并将相应模块或者来源接口作为键,将日志数据作为值,保存至本地Map数据结构中,之后通过分布式任务调度平台定时刷新存入Redis数据库中,并与相应的SessionId拼接,以供前端调用或向前端推送;
通过分布式任务调度平台调用经运算处理后的数据,将来源接口作为键,将该数据作为值,存于本地Map数据结构中,然后再存入Redis数据库中,并与Redis数据库中预存的相应的SessionId一起拼接,以供前端调用或向前端推送;
在Redis数据库接收到日志数据后,根据本地Map数据结构中预存的SessionId判断是否需要推送该日志数据,并通过Websocket向前端实时推送;
监控大型数据库读写流量、分布式任务调用平台定时调度运行情况、大数据处理平台运行状况,保存到数据表中,以供前端调用或向前端推送。
9.一种日志监控装置,其特征在于,所述装置包括:
数据收集模块,用于通过埋点按照日志数据的预置格式获取所述日志数据,将所述日志数据通过数据处理管道推送给分布式发布订阅系统;
数据处理模块,用于对所述分布式发布订阅系统中的日志数据进行运算处理,生成若干项监控数据;
日志监控模块,用于设置用于所述监控数据与前端通讯的数据调用接口,并通过所述前端实现对日志的监控。
10.一种服务器,其中,该服务器包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-8中任一项所述的方法。
CN202011446695.8A 2020-12-09 2020-12-09 一种日志监控方法、装置和服务器 Active CN112506743B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011446695.8A CN112506743B (zh) 2020-12-09 2020-12-09 一种日志监控方法、装置和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011446695.8A CN112506743B (zh) 2020-12-09 2020-12-09 一种日志监控方法、装置和服务器

Publications (2)

Publication Number Publication Date
CN112506743A true CN112506743A (zh) 2021-03-16
CN112506743B CN112506743B (zh) 2024-08-09

Family

ID=74971347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011446695.8A Active CN112506743B (zh) 2020-12-09 2020-12-09 一种日志监控方法、装置和服务器

Country Status (1)

Country Link
CN (1) CN112506743B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799920A (zh) * 2021-04-13 2021-05-14 南京万得资讯科技有限公司 一种基于程序日志的程序运行状态监控的方法
CN112988798A (zh) * 2021-03-29 2021-06-18 成都卫士通信息产业股份有限公司 一种日志处理方法、装置、设备及介质
CN113138896A (zh) * 2021-04-25 2021-07-20 中国工商银行股份有限公司 一种应用运行情况的监控方法、装置和设备
CN113221033A (zh) * 2021-04-24 2021-08-06 上海钢银科技发展有限公司 埋点采集、统计分析方法、系统、设备及存储介质
CN113568967A (zh) * 2021-07-29 2021-10-29 掌阅科技股份有限公司 时序指标数据动态提取方法、电子设备及存储介质
CN113849440A (zh) * 2021-09-30 2021-12-28 北京金山云网络技术有限公司 日志的访问方法、装置及服务器
CN114547104A (zh) * 2022-02-14 2022-05-27 中国平安人寿保险股份有限公司 日志数据查询方法、装置、计算机设备及存储介质
CN114546274A (zh) * 2022-02-22 2022-05-27 云智慧(北京)科技有限公司 一种基于缓存的大数据处理维表存算系统及其方法
CN115051933A (zh) * 2022-05-30 2022-09-13 中国银行股份有限公司 一种数据库接口调用次数的统计方法、装置、系统和介质
CN116662218A (zh) * 2023-08-01 2023-08-29 北京德塔精要信息技术有限公司 日志实时收集处理方法及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156119A1 (en) * 2013-12-03 2015-06-04 International Business Machines Corporation Autonomic Traffic Load Balancing in Link Aggregation Groups
CN106571960A (zh) * 2016-11-03 2017-04-19 北京农信互联科技有限公司 日志收集管理系统及方法
CN106790718A (zh) * 2017-03-16 2017-05-31 北京搜狐新媒体信息技术有限公司 服务调用链路分析方法及系统
CN110245158A (zh) * 2019-06-10 2019-09-17 上海理想信息产业(集团)有限公司 一种基于Flink流计算技术的多源异构数据实时处理系统及方法
CN110855477A (zh) * 2019-10-29 2020-02-28 浙江大搜车软件技术有限公司 链路日志监控方法、装置、计算机设备和存储介质
CN111241078A (zh) * 2020-01-07 2020-06-05 网易(杭州)网络有限公司 数据分析系统、数据分析的方法及装置
CN111400127A (zh) * 2020-02-28 2020-07-10 平安医疗健康管理股份有限公司 业务日志的监控方法及装置、存储介质、计算机设备
CN111526060A (zh) * 2020-06-16 2020-08-11 网易(杭州)网络有限公司 业务日志的处理方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156119A1 (en) * 2013-12-03 2015-06-04 International Business Machines Corporation Autonomic Traffic Load Balancing in Link Aggregation Groups
CN106571960A (zh) * 2016-11-03 2017-04-19 北京农信互联科技有限公司 日志收集管理系统及方法
CN106790718A (zh) * 2017-03-16 2017-05-31 北京搜狐新媒体信息技术有限公司 服务调用链路分析方法及系统
CN110245158A (zh) * 2019-06-10 2019-09-17 上海理想信息产业(集团)有限公司 一种基于Flink流计算技术的多源异构数据实时处理系统及方法
CN110855477A (zh) * 2019-10-29 2020-02-28 浙江大搜车软件技术有限公司 链路日志监控方法、装置、计算机设备和存储介质
CN111241078A (zh) * 2020-01-07 2020-06-05 网易(杭州)网络有限公司 数据分析系统、数据分析的方法及装置
CN111400127A (zh) * 2020-02-28 2020-07-10 平安医疗健康管理股份有限公司 业务日志的监控方法及装置、存储介质、计算机设备
CN111526060A (zh) * 2020-06-16 2020-08-11 网易(杭州)网络有限公司 业务日志的处理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱剑;李辉;: "利用链路相关性进行网络流量异常检测", 计算机应用与软件, no. 06, 15 June 2011 (2011-06-15), pages 135 - 137 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988798B (zh) * 2021-03-29 2023-05-23 成都卫士通信息产业股份有限公司 一种日志处理方法、装置、设备及介质
CN112988798A (zh) * 2021-03-29 2021-06-18 成都卫士通信息产业股份有限公司 一种日志处理方法、装置、设备及介质
CN112799920B (zh) * 2021-04-13 2021-08-17 上海万得宏汇信息技术有限公司 一种基于程序日志的程序运行状态监控的方法
CN112799920A (zh) * 2021-04-13 2021-05-14 南京万得资讯科技有限公司 一种基于程序日志的程序运行状态监控的方法
CN113221033A (zh) * 2021-04-24 2021-08-06 上海钢银科技发展有限公司 埋点采集、统计分析方法、系统、设备及存储介质
CN113138896A (zh) * 2021-04-25 2021-07-20 中国工商银行股份有限公司 一种应用运行情况的监控方法、装置和设备
CN113568967A (zh) * 2021-07-29 2021-10-29 掌阅科技股份有限公司 时序指标数据动态提取方法、电子设备及存储介质
CN113849440A (zh) * 2021-09-30 2021-12-28 北京金山云网络技术有限公司 日志的访问方法、装置及服务器
CN113849440B (zh) * 2021-09-30 2024-04-26 北京金山云网络技术有限公司 日志的访问方法、装置及服务器
CN114547104A (zh) * 2022-02-14 2022-05-27 中国平安人寿保险股份有限公司 日志数据查询方法、装置、计算机设备及存储介质
CN114546274A (zh) * 2022-02-22 2022-05-27 云智慧(北京)科技有限公司 一种基于缓存的大数据处理维表存算系统及其方法
CN114546274B (zh) * 2022-02-22 2023-10-27 云智慧(北京)科技有限公司 一种基于缓存的大数据处理维表存算系统及其方法
CN115051933A (zh) * 2022-05-30 2022-09-13 中国银行股份有限公司 一种数据库接口调用次数的统计方法、装置、系统和介质
CN116662218A (zh) * 2023-08-01 2023-08-29 北京德塔精要信息技术有限公司 日志实时收集处理方法及设备

Also Published As

Publication number Publication date
CN112506743B (zh) 2024-08-09

Similar Documents

Publication Publication Date Title
CN112506743B (zh) 一种日志监控方法、装置和服务器
CN108416620B (zh) 一种基于大数据的画像数据的智能社交广告投放平台
CN110909063B (zh) 一种用户行为的分析方法、装置、应用服务器及存储介质
Bordin et al. Dspbench: A suite of benchmark applications for distributed data stream processing systems
CN111209258A (zh) 税务端系统日志实时分析方法、设备、介质及系统
US12052321B2 (en) Determining session intent
CN109634818A (zh) 日志分析方法、系统、终端及计算机可读存储介质
US7908160B2 (en) System and method for producing audit trails
CN107123047B (zh) 基于债券交易的数据采集系统及其数据采集方法
CN103838867A (zh) 日志处理方法和装置
CN111581054A (zh) 一种基于elk的日志埋点的业务分析告警系统及方法
JP7254975B2 (ja) 実行可能論理を用いて構造化データアイテムを処理するためのキーベースのロギング
CN111651510A (zh) 数据处理方法、装置、电子设备和计算机可读存储介质
CN108073625A (zh) 用于元数据信息管理的系统及方法
CN113360554A (zh) 一种数据抽取、转换和加载etl的方法和设备
US20190228342A1 (en) Systems and methods for automated incident response
CN108269107B (zh) 用户信息处理方法及装置
CN117971606B (zh) 基于ElasticSearch的日志管理系统及方法
CN111078432A (zh) 一种服务之间调度的追踪方法及装置
CN109409948B (zh) 交易异常检测方法、装置、设备及计算机可读存储介质
CN113032252A (zh) 埋点数据的收集方法、装置、客户端设备和存储介质
CN114090529A (zh) 一种日志管理方法、装置、系统和存储介质
CN111339052A (zh) 一种非结构化日志数据处理方法及装置
CN110019045B (zh) 日志落地方法及装置
CN109656981B (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