CN103257987A - 基于规则的分布式日志服务实现方法 - Google Patents
基于规则的分布式日志服务实现方法 Download PDFInfo
- Publication number
- CN103257987A CN103257987A CN2012105895729A CN201210589572A CN103257987A CN 103257987 A CN103257987 A CN 103257987A CN 2012105895729 A CN2012105895729 A CN 2012105895729A CN 201210589572 A CN201210589572 A CN 201210589572A CN 103257987 A CN103257987 A CN 103257987A
- Authority
- CN
- China
- Prior art keywords
- log
- log information
- daily record
- rule
- implementation method
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000006870 function Effects 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 14
- 230000002085 persistent effect Effects 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 7
- 230000008901 benefit Effects 0.000 abstract description 4
- 238000013461 design Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于规则的分布式日志服务实现方法,包括如下步骤:编写日志规则;在程序执行过程中生成日志信息时,通过与日志规则的比对,筛选出各个函数或代码段中符合日志规则的日志信息,并对外输出;如果没有符合日志规则的日志信息,程序继续执行直到结束。本发明通过定制化的日志规则对日志信息进行精确筛选,有效简省了日志文件的数据量。对日志信息采用了异步式存储机制,使业务执行时的日志信息存储在内存级别执行,大大提高了日志规则执行时的速度。
Description
技术领域
本发明涉及一种日志服务方法,尤其涉及一种基于规则的分布式日志服务实现方法,属于计算机管理技术领域。
背景技术
在IT业务系统中,日志是一个非常重要的功能组成部分。它可以记录下IT业务系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志所记录的信息为IT业务系统进行排错,优化IT业务系统的性能,或者根据这些信息调整IT业务系统的行为。在安全领域,日志的重要地位尤甚,可以说是安全审计方面最主要的工具之一。
日志文件是随着IT业务系统运行而快速生成的,其生成速度取决于进程的执行速度。在当今大规模云服务的环境下,其服务器大多采用分布式、多进/线程,这就进一步提高了进程的执行速度,也使日志文件的生成速度更快。另外,在多租户的分布式环境中,随着用户量的激增,并发访问量的增加,日志文件的数据量也随之呈几何级数的膨胀。
在分布式的环境中,IT业务系统的使用和开发交替进行。在开启写日志命令后,所有写日志的地方都会触发相应的操作。如此,在短时间内会产生大量日志信息。这些信息写在同一个日志文件里,对该日志文件的维护产生很大的压力。例如根据测算,在1~2分钟内,该日志文件可能达到几十MB。
现有的日志文件机制大多只考虑了IT业务系统的单机执行过程,即在同一台服务器上,执行所有的业务逻辑,而非分布式执行。这样在逻辑上过于简单,无法实现未来对分布式、多租户系统的要求。
此外,现有的日志文件机制在记录日志信息时,多是要么全部记录,要么全部不记录,没有条件筛选的过程。这样无法在浩如烟海的日志信息中,快速准确地发现有价值的信息内容。
最后,现有的日志文件机制在保存日志信息时,要么不加以记录,只在一次业务逻辑执行过程中,通过浏览器查看,要么多采用同步方式,即生成即保存。当存储日志信息的持久化存储介质为硬盘(如数据库系统的日志文件)时,则大大阻碍了IT业务系统的执行效率。经测算,主存的读取速度,通常为外存读写速度的106~109倍。
以下是硬盘传输速度与内存传输速度的比较:
由此可见,采用同步方式保存日志信息的开销是相当大的,相应的用户体验也是相当差的。
发明内容
本发明所要解决的技术问题在于提供一种基于规则的分布式日志服务实现方法。
为实现上述的发明目的,本发明采用下述的技术方案:
一种基于规则的分布式日志服务实现方法,包括如下步骤:
编写日志规则;
在程序执行过程中生成日志信息时,通过与所述日志规则的比对,筛选出各个函数或代码段中符合所述日志规则的日志信息,并对外输出;
如果没有符合所述日志规则的日志信息,程序继续执行直到结束。
其中较优地,对于符合所述日志规则的日志信息,从内存转移到外部的持久化存储介质中,所述转移操作与程序执行异步进行。
其中较优地,对于符合所述日志规则的日志信息,输出到内存服务器中;通过后台程序监听所述内存服务器中是否有所述日志信息,如果有则将所述日志信息移植到日志信息数据库表中备查。
其中较优地,所述日志规则以日志表达式方式存储和执行。
其中较优地,添加或编辑的所述日志规则存放到持久化存储介质中,并同步到内存服务器中。
其中较优地,所述日志信息的输出方式为写入浏览器、写入日志文件或写入数据库中的任意一种。
其中较优地,所述写入数据库即为将所述日志信息写入内存服务器中。
本发明所提供的分布式日志服务实现方法,通过定制化的日志规则对日志信息进行精确筛选,从而有效简省了日志文件的数据量。对日志信息采用了异步式存储机制,从而使业务执行时的日志信息存储在内存级别执行,不存在机械式的硬盘数据交互,大大提高了日志规则执行时的速度。
附图说明
图1为定制化日志内容的显示界面示例图;
图2为添加或编辑日志规则时的操作流程图;
图3为异步日志信息存储方式的操作流程图。
具体实施方式
本发明为了缓解日志文件(或日志输出)的压力,对日志文件的写策略进行优化,即通过添加一些写日志的筛选条件。以达到简省日志文件数据量的目的。具体说明如下:
在大多数IT业务系统中,通常会有如下情形:在一个完整的业务流程里包含若干程序段,该流程会被多个用户在任意时间内执行。在这个业务流程中,每一个程序段都具有某个子功能,而且大多具有不同的日志类型(例如信息类日志、警告类日志、错误类日志等)。
在上述实施例中,如果该业务流程比较复杂,包含程序段比较多,而且在任意时刻内会有多个用户访问。如果出于业务工程师排错的目的而记录日志的话,那么会有大量的无用信息被记录。对于业务工程师而言,日志的精确定位性差;对于整个IT业务系统而言,负荷过大。
在这种情况下,我们将日志信息按照不同规则,进行定制化配置。即在IT业务系统外围,维护日志的(增、删、改、查)规则;在IT业务系统内部,加入写日志的判断规则。在生成日志时,根据选取的日志规则,判断日志是否需要写操作。例如只记录用户A,在9点10分到9点11分之间,执行这个业务流程的1、3、5号程序段产生的错误日志。当上述访问情况发生时,IT业务系统只记录符合规则的日志信息,这对于业务工程师而言,缩小了日志的信息范围,对整个IT业务系统而言,大大减轻了负荷。
例如查询在2012-03-21到2012-03-25日间,登陆用户为admin时,其执行“添加信息”流程过程(这个过程可能由若干个函数/代码段组成的)中,1、2、4号函数/代码段所产生的日志信息,则管理员可以在系统后台,按照图1所示的定制化日志内容设置查询条件。在点击“提交”按钮后,将这条查询条件加以保存,生成一条日志规则。在此后的程序执行过程中,获取内存服务器中的日志规则信息,通过比对这条日志规则,筛选出各个函数或代码段中符合该日志规则的日志信息并输出。符合该日志规则的日志信息,通过后台的设置,可以人为选择多种输出方式。例如直接输出到浏览器、输出为日志文件、输出到数据库表等。不符合条件时,程序继续执行直到结束。这样,经过筛选的日志信息可以更有针对性地帮助开发人员发现IT业务执行流程中的问题。
在本发明中,业务工程师可以根据实际情况,灵活选择规则项,并为其配置参数。生成的日志规则是以日志表达式方式存储和执行的,大大降低了执行时的代码逻辑开销,提高了进程执行速度,简省了日志文件的数据量,精确定位到了业务工程师所需要的日志信息。
日志表达式生成后,加入持久化存储介质中。进一步地,可以利用主存在读写速度上的优势,将日志表达式存放到运行NoSQL(非关系型数据库)的内存服务器中。在执行时,经过程序的内部优化,可以使执行效率基本达到内存级别。如图2所示,添加或编辑的日志规则,会保存到数据库表(持久化存储介质),并同时同步到内存服务器中,这样,在获取这些规则时,速度会更快。
上述的日志规则可以采用外挂式设计,即不影响原IT业务系统核心业务流程的执行代码,而在其外围以外挂程序的方式,与原IT业务系统的核心业务合理、无缝的结合。这种外挂式设计既达到日志规则的设计目的,又与原IT业务系统基本解除耦合。尤其对复杂的IT业务系统而言,更具有实际意义。
在传统的同步式信息存储系统中,信息的存储是根据代码的执行过程,同步存储到数据库、文件等外部的持久化存储介质(简称外存)中的。这样不可避免地发生了与硬盘数据的交互,而这种交互是机械式的,交互效率相对较低。当并发量激增后,严重影响业务流程的执行效率。为了解决这一问题,本发明中对日志信息采用了异步式存储机制,即结合分布式的服务器集群在主存上的存储速度的优势和其分布式存储结构的稳定性,来组合形成日志的存储结构和查询模式,从而使业务执行时的日志信息存储在内存级别执行,不存在机械式的硬盘数据交互,大大提高了日志规则执行时的速度。
下面结合图3展开具体的说明。在程序开始执行后,首先获取内存服务器中的日志规则信息,并结合日志信息的内容进行比对,判断是否符合日志规则所设定的条件。如果符合,则进一步选择日志信息存储方式,例如写入浏览器、写入日志文件或写入数据库等;如果不符合则返回,继续执行该程序。在上述过程中,写入数据库即为写入内存服务器中,以便利用主存在存储速度上的优势,提高系统执行效率。此后,基于操作系统的后台进程机制,利用后台服务程序,将存储于内存的日志信息,转移到数据库或文件等外部的持久化存储介质中。这个操作是与业务的执行是异步进行的,用户感觉不到后台服务程序的执行过程。这样既保证了执行的效率,又保证了数据的持久性。
为了提高输出到数据库表的程序执行速度,本发明将日志信息首先输出到内存服务器中,然后继续执行主程序直到结束。系统会启动一个后台程序,它监听内存服务器中是否有日志信息,如果有,则将日志信息移植到日志信息数据库表中备查。在此情况下,可以通过后台的界面查看这些保存在数据库表中的日志信息。
在本发明中,存储在数据库或文件等外部的持久化存储介质中的信息,可以由web程序加以展现。在相关展现界面中,可以进行信息筛选,进一步提高日志信息的精确性和实用性。在这种过程中,日志信息的展示方式与日志信息的过滤方式相互独立,使得日志信息的展示方式不依赖于日志的过滤规则,符合规则的日志信息即展现。查看方式的选择也与日志信息的判断规则完全分离,即写什么日志与怎样存储日志信息两个功能相互独立。这样解放了日志信息的展示方式,可以进行浏览器展示、日志文件展示、数据库持久化信息的web展示等,并可以为后续更多的展示方式,提供了支持。
上面对本发明所提供的基于规则的分布式日志服务实现方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (7)
1.一种基于规则的分布式日志服务实现方法,其特征在于:
编写日志规则;
在程序执行过程中生成日志信息时,通过与所述日志规则的比对,筛选出各个函数或代码段中符合所述日志规则的日志信息,并对外输出;
如果没有符合所述日志规则的日志信息,程序继续执行直到结束。
2.如权利要求1所述的分布式日志服务实现方法,其特征在于:
对于符合所述日志规则的日志信息,从内存转移到外部的持久化存储介质中,所述转移操作与程序执行异步进行。
3.如权利要求1所述的分布式日志服务实现方法,其特征在于:
对于符合所述日志规则的日志信息,输出到内存服务器中;通过后台程序监听所述内存服务器中是否有所述日志信息,如果有则将所述日志信息移植到日志信息数据库表中备查。
4.如权利要求1所述的分布式日志服务实现方法,其特征在于:
所述日志规则以日志表达式方式存储和执行。
5.如权利要求1所述的分布式日志服务实现方法,其特征在于:
添加或编辑的所述日志规则存放到持久化存储介质中,并同步到内存服务器中。
6.如权利要求1所述的分布式日志服务实现方法,其特征在于:
所述日志信息的输出方式为写入浏览器、写入日志文件或写入数据库中的任意一种。
7.如权利要求6所述的分布式日志服务实现方法,其特征在于:
所述写入数据库即为将所述日志信息写入内存服务器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105895729A CN103257987A (zh) | 2012-12-30 | 2012-12-30 | 基于规则的分布式日志服务实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105895729A CN103257987A (zh) | 2012-12-30 | 2012-12-30 | 基于规则的分布式日志服务实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103257987A true CN103257987A (zh) | 2013-08-21 |
Family
ID=48961914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105895729A Pending CN103257987A (zh) | 2012-12-30 | 2012-12-30 | 基于规则的分布式日志服务实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103257987A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103489465A (zh) * | 2013-09-12 | 2014-01-01 | 广东明创软件科技有限公司 | 自动记录定位蓝光播放器随机事件的方法 |
CN105049287A (zh) * | 2015-07-28 | 2015-11-11 | 小米科技有限责任公司 | 日志处理方法及装置 |
CN105099740A (zh) * | 2014-05-15 | 2015-11-25 | 中国移动通信集团浙江有限公司 | 一种日志管理系统及日志采集方法 |
CN106095658A (zh) * | 2016-06-12 | 2016-11-09 | 北京奇虎科技有限公司 | 对系统日志实现规整的方法及装置 |
CN109729147A (zh) * | 2018-11-28 | 2019-05-07 | 国云科技股份有限公司 | 一种云环境下支持多租户的审计系统及实现方法 |
CN109992618A (zh) * | 2019-03-26 | 2019-07-09 | 南京联创北斗技术应用研究院有限公司 | 一种基于web访问日志提取转化为业务数据的方法 |
CN110162534A (zh) * | 2019-05-30 | 2019-08-23 | 北京百度网讯科技有限公司 | 数据管理方法及数据存储系统 |
CN113407421A (zh) * | 2021-08-19 | 2021-09-17 | 北京江融信科技有限公司 | 微服务网关的动态日志记录管理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101163265A (zh) * | 2007-11-20 | 2008-04-16 | 中兴通讯股份有限公司 | 基于分布式数据库的彩信日志查询方法与系统 |
CN101341466A (zh) * | 2005-12-19 | 2009-01-07 | 国际商业机器公司 | 分布式系统中事务的提交 |
US20100017441A1 (en) * | 2006-07-01 | 2010-01-21 | Todd Stephen J | Methods, apparatus and computer programs for managing persistence |
CN102682052A (zh) * | 2010-12-28 | 2012-09-19 | 微软公司 | 过滤数据存储上的查询数据 |
CN102737131A (zh) * | 2012-06-21 | 2012-10-17 | 广州从兴电子开发有限公司 | 一种针对数据库重做日志的处理方法及系统 |
-
2012
- 2012-12-30 CN CN2012105895729A patent/CN103257987A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101341466A (zh) * | 2005-12-19 | 2009-01-07 | 国际商业机器公司 | 分布式系统中事务的提交 |
US20100017441A1 (en) * | 2006-07-01 | 2010-01-21 | Todd Stephen J | Methods, apparatus and computer programs for managing persistence |
CN101163265A (zh) * | 2007-11-20 | 2008-04-16 | 中兴通讯股份有限公司 | 基于分布式数据库的彩信日志查询方法与系统 |
CN102682052A (zh) * | 2010-12-28 | 2012-09-19 | 微软公司 | 过滤数据存储上的查询数据 |
CN102737131A (zh) * | 2012-06-21 | 2012-10-17 | 广州从兴电子开发有限公司 | 一种针对数据库重做日志的处理方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103489465A (zh) * | 2013-09-12 | 2014-01-01 | 广东明创软件科技有限公司 | 自动记录定位蓝光播放器随机事件的方法 |
CN105099740A (zh) * | 2014-05-15 | 2015-11-25 | 中国移动通信集团浙江有限公司 | 一种日志管理系统及日志采集方法 |
CN105049287A (zh) * | 2015-07-28 | 2015-11-11 | 小米科技有限责任公司 | 日志处理方法及装置 |
CN106095658A (zh) * | 2016-06-12 | 2016-11-09 | 北京奇虎科技有限公司 | 对系统日志实现规整的方法及装置 |
CN109729147A (zh) * | 2018-11-28 | 2019-05-07 | 国云科技股份有限公司 | 一种云环境下支持多租户的审计系统及实现方法 |
CN109992618A (zh) * | 2019-03-26 | 2019-07-09 | 南京联创北斗技术应用研究院有限公司 | 一种基于web访问日志提取转化为业务数据的方法 |
CN110162534A (zh) * | 2019-05-30 | 2019-08-23 | 北京百度网讯科技有限公司 | 数据管理方法及数据存储系统 |
CN113407421A (zh) * | 2021-08-19 | 2021-09-17 | 北京江融信科技有限公司 | 微服务网关的动态日志记录管理方法及系统 |
CN113407421B (zh) * | 2021-08-19 | 2021-11-30 | 北京江融信科技有限公司 | 微服务网关的动态日志记录管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103257987A (zh) | 基于规则的分布式日志服务实现方法 | |
CN104731896B (zh) | 一种数据处理方法及系统 | |
US6263347B1 (en) | System for linking data between computer and portable remote terminal and data linking method therefor | |
CN108304463A (zh) | 一种用于数据库的数据管理方法及其数据库应用组件 | |
US7904491B2 (en) | Data mapping and import system | |
CN100456264C (zh) | 一种磁盘空间管理方法及系统 | |
CN102810057A (zh) | 一种记录日志的方法 | |
CN107391744A (zh) | 数据存储、读取方法、装置及其设备 | |
US20110225288A1 (en) | Method and system for efficient storage and retrieval of analytics data | |
CN104063495A (zh) | 表单扩展方法与表单扩展装置 | |
CN102567451A (zh) | 产生数据模型 | |
CN102722769A (zh) | 一种实验数据处理的系统和方法 | |
CN114461200A (zh) | 一种基于云SaaS平台的低代码开发应用及方法 | |
US10262055B2 (en) | Selection of data storage settings for an application | |
CN115544183B (zh) | 数据可视化方法、装置、计算机设备和存储介质 | |
CN105653255A (zh) | 一种在office框架中设置报告模板以自动生成报告文件的方法 | |
CN102611576A (zh) | 一种生成网管配置模型文件的方法及装置 | |
CN105302488B (zh) | 一种存储系统的数据写入方法及系统 | |
CN110019111A (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN110378778A (zh) | 多数据源对账方法、系统、电子设备及存储介质 | |
CN104866508B (zh) | 在云环境下管理文件的方法与装置 | |
CN104123104B (zh) | 日志控制系统及方法 | |
CN103226592A (zh) | 一种基于数据库的文件系统及文件存储方法 | |
CN109189724A (zh) | 提高视频监控系统音视频数据存储效率的方法及装置 | |
CN102426680A (zh) | 使用求散列的逻辑帐户表 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130821 |
|
RJ01 | Rejection of invention patent application after publication |