一种日志实时展现和查询的方法与系统与流程

文档序号:12364246阅读:396来源:国知局
一种日志实时展现和查询的方法与系统与流程

本发明涉及一种日志实时展现和查询的方法与系统,尤其涉及一种大数据处理领域的日志实时展现和查询的方法与系统。



背景技术:

在大数据时代背景下,如何对实时日志数据进行快速分类和高效精准的查找渐渐成为影响实施日志管理生产力的重要因素。若能在管理海量实时日志数据的同时,按照客户的需求对数据进行细化分类进而精准推送,不仅可以减少用户等待时间,提高生产效率,同时还可以有效保证用户数据的安全性。

实时日志ELK包括日志采集和日志实时展示与查询。传统的ELK采用Logstash完成日志采集并写入Elasticsearch中,然后再从Elasticsearch中获取数据并通过Kibana展现,而Kibana偏重于日志分析和统计,在日志实时展现与过滤查询等功能上一直是短板,不能很好满足实时日志所需的时效性的需求。



技术实现要素:

针对目前ELK系统中存在的缺陷,本发明提出了一种新的低延时、可过滤与查找的实时日志展现与查询系统。该系统基于Logstash+ Kafka+ Tornado的构架模式,通过传统的Logstash采集到日志信息,并将该信息通过插件的方式写入Kafka,利用Tornado服务器采用多线程模式读取日志信息,根据用户设定的过滤规则对原数据进行过滤归并,然后采用高效的WebSocket将归整的数据精准推送到显示前端Livetail,该系统通过一个或者多个客户端采用backbone.js、CCS和HTML等方式将日志信息显示给用户。由于该方式中日志信息不在经过Elasticsearch而是直接进入Kafka,有效降低了信息时延;同时利用Tornado的异步非阻塞性,在保证高并发的同时可以获得良好性能;通过服务器端对信息进行过滤,从源头上保证了日志信息的安全性;前台服务器通过保存一段时间的日志数据,展现实时日志消息的同时还能提供根据日志过滤功能,用户可选择展现不同主机、应用名、日志类型的日志,除此,提供以正则表达式搜索日志、同时查看多种日志来源等功能,给用户提供了很大的查询灵活度,提供了丰富的操作选择,极大的提高了用户体验。

本发明解决其技术问题所采用的技术方案是:

日志信息采集步骤,通过LOG采集服务器Logstash对特定的日志信息进行收集。

优选的,所述的日志采集步骤是指通过日志采集服务器Logstash对ssh_log、apache_access_log、nginx_access_log、mysql_log和other_log等log信息进行实时收集。

日志信息存储步骤,通过消息存储服务器Kafka将采集到的日志信息归整形成记录数据供读取之用。

优选的,所述的日志信息存储步骤是指所述日志采集服务器Logstash将采集到的日志信息通过插件的方式写进消息存储管理服务器Kafka。

日志信息读取步骤,通过消息管理服务器Tornado从消息存储服务器Kafka中读出特定实时日志信息。

优选的,所述的日志信息读取步骤指的是消息管理服务器Tornado采用多线程并发读取的方式从存储管理服务器Kafka读取所需日志信息。

日志信息过滤步骤,消息管理服务器Tornado在读取到日志信息后,对信息按照特定要求进行过滤处理得到目标信息。

优选的,所述的日志信息过滤步骤是指消息管理服务器Tornado根据用户配置,采用日志所属用户或者消息长度限制等过滤条件实现对原信息过滤,从而提供用户需求的日志信息,实现准确的信息推送,同时保证了日志信息的安全性。

前端显示步骤,消息管理服务器Tornado通过高效的WebSocket将过滤后得到的信息发送给前端服务器Livetail,有前端服务器进行显示。

优选的,所述的前端显示步骤是指前端服务器Livetail通过一台或者多台客户端将从消息管理服务器Tornado接收到的日志信息展示给用户。

优选的,所述的客户端除具备显示功能外,还提供多窗口管理、过滤与查找、性能管理、可视化操作界面显示、记录显示停止与恢复、性能管理和Backbone.js等服务与功能,采用Backbone.js、CCS和HTML等方式展现日志信息。

本发明还公开了一种日志实时展现和查询的系统,该系统包括以下子系统:

日志采集系统,用于采集日志信息;

日志信息存储系统,用于处理采集到的日志信息,形成记录并进行存储管理;

日志管理系统,用于按照设定规则对输出日志信息进行过滤操作,并提供日志信息高效实时推送;

前端系统,用于对读取到的日志信息进行显示,并提供过滤查找功能及其可视化操作界面。

优选的,所述的日志管理服系统Tornado采用socket通道模式进行多线程日志信息读取,并同时对一个或者多个前端服务器提供日志数据输送服务。

优选的,所述的前端系统是指包含一个或者多个客户端的前端显示客户端群,每个客户端为用户提供多窗口显示、日志信息过滤与查找、可视化操作界面显示、性能管理、日志显示停止与恢复和backbone.js等功能与服务。

采用上述技术方案,本发明具有以下优点:

本发明所述的日志实时展现与查询的方法与系统,基于Logstash+ Kafka+ Tornado的构架模式,通过传统的Logstash采集到日志信息,并将该信息通过插件的方式写入Kafka,利用Tornado服务器采用多线程模式读取日志信息,根据用户设定的过滤规则对原数据进行过滤归并,然后采用高效的WebSocket将归整的数据精准推送到显示前端Livetail,该系统通过一个或者多个客户端采用backbone.js、CCS和HTML等方式将日志信息显示给用户。由于该方式中日志信息不在经过Elasticsearch而是直接进入Kafka,有效降低了信息时延;同时利用Tornado的异步非阻塞性,在保证高并发的同时可以获得良好性能;通过服务器端对信息进行过滤,从源头上保证了日志信息的安全性;前台服务器通过保存一段时间的日志数据,展现实时日志消息的同时还能提供根据日志过滤功能,用户可选择展现不同主机、应用名、日志类型的日志,除此,提供以正则表达式搜索日志、同时查看多种日志来源等功能,给用户提供了很大的查询灵活度,提供了丰富的操作选择,极大的提高了用户体验。

附图说明

图1为本发明较佳实施方式的一种日志实时展现和查询方法与系统的流程图。

图2为本发明较佳实施方式的一种日志实时展现和查询方法与系统的子系统图

图3为本发明较佳实施方式的一种日志实时展现和查询方法与系统的方法与系统的流程图。

图4位为本发明较佳实施方式的一种日志实时展现和查询方法与系统的方法与系统的前端客户端功能模块图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一个实施例,而不是全部实施例。基于本发明中的实施例,本领域的一般技术人员在没有做出创造性劳动的前提下所获得的其他实施例,都属于本发明保护的范围。

本发明公开了一种日志实时展现和查询的方法,参见图1所示,该方法包含以下步骤:

步骤S1:通过LOG采集服务器Logstash对特定的日志信息进行收集;

步骤S2:Tornado服务器通过多线程并发读取模式从消息系统Kafka读取日志消息记录,并提供过滤服务;

步骤S3:Tornado服务器采用高性能的Websocket长链接快速将日志消息发送到前台终端Livetail;

日志信息过滤步骤,消息管理服务器Tornado在读取到日志信息后,对信息按照特定要求进行过滤处理得到目标信息;

步骤S4:前台终端Livetail通过特定方式实时显示日志消息,并提供过滤和搜索功能。

本发明实施例中,通过Logstash服务器对日志信息进行采集,然后通过插件的方式将所述日志信息写入消息存储服务器Kafka,采用多线程并发访问的方式,利用消息管理服务器Tornado通过socket访问方式读取Kafka中的日志消息。服务器Tornado根据用户设置的过滤规则,对消息进行过滤限制并采用高效的WebSocket模式将日志消息推送个前端服务器Livetail进行显示。前端服务器Livetail对接收到的日志信息提供过滤、查找、性能管理、多窗口管理、日志显示停止与恢复和Backbone.js的功能性服务,并采用Backbone.js、CSS、HTML对日志信息进行实时展示。

可见,在本实施例中,Logstash采集到的日志信息不再按照传统思路写入Elasticsearch,而是通过插件的方式写入Kafka,这样大大降低了数据的传输时延,同时采用并发非阻塞式的多线程访问方式,利用Tornado从Kafka服务器中读取日志信息,并按照用户设置的规则对数据进行过滤匹配,不仅从源头上保证了日志数据的安全性,也大大提高了日志信息的针对性,提高了数据传输的顺畅性和实时性;前台服务器通过保存一段时间的日志数据,展现实时日志消息的同时还能提供根据日志过滤功能,用户可选择展现不同主机、应用名、日志类型的日志,除此,提供以正则表达式搜索日志、同时查看多种日志来源等功能,给用户提供了很大的查询灵活度,提供了丰富的操作选择,极大的提高了用户体验。

本发明实施例公开了一种日志实时展现和查询具体的系统,参见图3、4,相对上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的,本实施例中日志实时展现与查询的系统包含以下模块和技术方式。

M1:日志信息采集模块。

具体的,通过日志采集服务器Logstash采集包括ssh_log、apache_access_log、nginx_access_log、mysql_log和other_log等log信息。

M2:日志消息存储管理模块。

具体的,该模块为日志消息存储服务器Kafka,通过插件写入的方式将所述日志采集服务器M1采集到的日志信息写入存储设备并形成记录信息。

E1:并发读取通道。

具体的,该读取通道采取的技术方案是socket模式,为日志消息管理服务器Tornado并发读取提供服务通道支持。

M3:信息管理服务器Tornado。

具体的,该服务器采用多线程并发非阻塞是访问的模式,通过所述E1通道快速读取所述日志存储服务器M2中的日志信息,并根据用户设置,提供包括日志信息所属主机信息、消息长度限制等过滤条件对日志信息进行过滤匹配,形成用户日志信息。

E2:快速传送通道。

具体的,该通道为高性能的WebSocket模式,为所述信息管理服务器M3将过滤后的日志信息快速向外输送提供高效通道支持。

M4:前端显示系统Livetail。

具体的,该系统通过一个或者多个客户端对从所述日志消息管理服务器M3传送的日志信息进行显示,参见图4,所述客户端包括,多窗口管理模块、过滤模块、日志显示停止与恢复模块、可视化模块、性能优化模块和Backbone.js模块。

进一步的,过滤模块包括正则表达式过滤模块,和原数据过滤模块。

再进一步的,所述正则表达式过滤模块给用户提供正则表达式过滤与查询功能,所述原数据过滤模块包括主机名过滤、应用名称过滤和日志类型过滤。

进一步的,可视化模块实现了命令模拟器的可视化界面操作,给用户使用提供便利。

进一步的,Backbone.js包括集合、视图和模型。通过该模块实现对日志信息的实时显示与更新。

根据本发明的另一方面,参见图2,所述日志实时展现与查询的系统包括以下子系统:

日志采集系统M1,用于采集日志信息;

日志信息存储系统M2,用于处理采集到的日志信息,形成记录并进行存储管理;

日志管理系统M3,用于按照设定规则对输出日志信息进行过滤操作,并提供日志信息高效实时推送;

前端系统M4,用于对读取到的日志信息进行显示,并提供过滤查找功能及其可视化操作界面。

本实施例中,日志采集系统通过插件的方式将采集到的日志数据信息写入信息存储系统M2形成消息记录,日志管理子系统M3采用并发访问的方式从信息存储系统M2中读取日志信息并按照用户设置规则对原数据进行过滤,将过滤的数据通过高效的WebSocket推送给前端系统M4进行显示,前端系统M4根据用户需求提供过滤、查找、日志查看终端与恢复等服务,通过Backbone.js、CCS和HTML的方式进行日志实时显示。

综上所述,通过传统的Logstash采集到日志信息,并将该信息通过插件的方式写入Kafka,利用Tornado服务器采用多线程模式读取日志信息,根据用户设定的过滤规则对原数据进行过滤归并,然后采用高效的WebSocket将归整的数据精准推送到显示前端Livetail,该系统通过一个或者多个客户端采用backbone.js、CCS和HTML等方式将日志信息显示给用户。由于该方式中日志信息不在经过Elasticsearch而是直接进入Kafka,有效降低了信息时延;同时利用Tornado的异步非阻塞性,在保证高并发的同时可以获得良好性能;通过服务器端对信息进行过滤,从源头上保证了日志信息的安全性;前台服务器通过保存一段时间的日志数据,展现实时日志消息的同时还能提供根据日志过滤功能,用户可选择展现不同主机、应用名、日志类型的日志,除此,提供以正则表达式搜索日志、同时查看多种日志来源等功能,给用户提供了很大的查询灵活度,提供了丰富的操作选择,极大的提高了用户体验。

以上所述仅为举例性,而非为限制性。本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1