CN103927338A - 日志信息入库处理方法和装置 - Google Patents
日志信息入库处理方法和装置 Download PDFInfo
- Publication number
- CN103927338A CN103927338A CN201410116995.8A CN201410116995A CN103927338A CN 103927338 A CN103927338 A CN 103927338A CN 201410116995 A CN201410116995 A CN 201410116995A CN 103927338 A CN103927338 A CN 103927338A
- Authority
- CN
- China
- Prior art keywords
- log information
- cache file
- database
- file
- numbering
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种日志信息入库处理方法和装置。其中,日志信息入库处理方法包括:获取网络环境中产生的日志信息;将日志信息存储到缓存文件;以及通过缓存文件将日志信息导入数据库。通过本发明,解决了日志信息入库的效率低的问题,提高了日志信息的入库效率。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种日志信息入库处理方法和装置。
背景技术
随着网络技术的飞速发展,网络环境变的越来越复杂。网络中的各种网络设备、安全设备、主机、应用和业务***在工作中也将会产生越来越多的安全事件和日志。如何能对这些安全事件和日志进行存储,并及时给出相应的分析、报表以及告警信息等,就显的越来越重要。
传统的日志审计***中,需要依次进行入库,统计报表,告警信息等处理,由于入库是***整体性能的短板,日志信息入库的效率低,使得后续的处理操作都需要等待入库处理的完成才能进行操作,导致浪费单机状态下的中央处理器(CPU)和内存资源。日志信息不能得到及时的解析,统计报表、告警信息也会延误,甚至因此导致用户日志信息的丢失。日志信息入库的效率,限制了***的性能提升。
针对现有技术中日志信息入库的效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种日志信息入库处理方法和装置,以解决日志信息入库的效率低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种日志信息入库处理方法。根据本发明的日志信息入库处理方法包括:获取网络环境中产生的日志信息;将日志信息存储到缓存文件;以及通过缓存文件将日志信息导入数据库。
进一步地,通过缓存文件将日志信息导入数据库包括:通过单独的进程读取缓存文件;以及采用数据库的文件入库方式将单独的进程读取的缓存文件导入到数据库。
进一步地,在将日志信息存储到缓存文件之后,日志信息入库处理方法还包括:生成与缓存文件对应的编号;将缓存文件对应的编号写入到缓存文件中,其中,通过缓存文件将日志信息导入数据库包括:当单独的进程启动时,通过单独的进程从缓存文件中读取缓存文件对应的编号;通过缓存文件对应的编号判断编号对应的缓存文件是否已经导入数据库;如果判断出编号对应的缓存文件未导入数据库,则将编号对应的缓存文件导入到数据库。
进一步地,将日志信息存储到缓存文件包括:对日志信息进行解析;将解析后的日志信息转化为数据对象;验证数据对象的属性与日志信息是否相符;如果验证出数据对象的属性与日志信息相符,则将数据对象写入缓存文件。
进一步地,数据对象为数据库可识别的POJO对象,缓存文件为cache文件,其中,将数据对象写入缓存文件包括:将POJO对象存储在日志信息队列池中;从日志信息队列池中读取存储后的POJO对象;以及按照预设时长将读取的POJO对象写入到cache文件。
为了实现上述目的,根据本发明的另一方面,提供了一种日志信息入库处理装置。根据本发明的日志信息入库处理装置包括:获取单元,用于获取网络环境中产生的日志信息;存储单元,用于将日志信息存储到缓存文件;以及导入单元,用于通过缓存文件将日志信息导入数据库。
进一步地,导入单元包括:第一读取模块,用于通过单独的进程读取缓存文件;以及第一导入模块,用于采用数据库的文件入库方式将单独的进程读取的缓存文件导入到数据库。
进一步地,日志信息入库处理装置还包括:生成单元,用于在将日志信息存储到缓存文件之后,生成与缓存文件对应的编号;写入单元,用于将缓存文件对应的编号写入到缓存文件中,其中,导入单元包括:第二读取模块,用于当单独的进程启动时,通过单独的进程从缓存文件中读取缓存文件对应的编号;判断模块,用于通过缓存文件对应的编号判断编号对应的缓存文件是否已经导入数据库;第二导入模块,用于当判断出编号对应的缓存文件未导入数据库,将编号对应的缓存文件导入到数据库。
进一步地,存储单元包括:解析模块,用于对日志信息进行解析;转化模块,用于将解析后的日志信息转化为数据对象;验证模块,用于验证数据对象的属性与日志信息是否相符;写入模块,用于当验证出数据对象的属性与日志信息相符时,将数据对象写入缓存文件。
进一步地,数据对象为数据库可识别的POJO对象,缓存文件为cache文件,其中,写入模块包括:存储子模块,用于将POJO对象存储在日志信息队列池中;读取子模块,用于从日志信息队列池中读取存储后的POJO对象;以及写入子模块,用于按照预设时长将读取的POJO对象写入到cache文件。
通过本发明,采用获取网络环境中产生的日志信息;将日志信息存储到缓存文件;以及通过缓存文件将日志信息导入数据库,解决了日志信息入库的效率低的问题,提高了日志信息的入库效率。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明第一实施例的日志信息入库处理装置的示意图;
图2是根据本发明第二实施例的日志信息入库处理装置的示意图;
图3是根据本发明实施例的一种优选的日志信息入库处理过程的拓扑图;
图4是根据本发明第一实施例的日志信息入库处理方法的流程图;以及
图5是根据本发明第二实施例的日志信息入库处理方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种日志信息入库处理装置,该装置可以通过计算机设备上实现其功能。
图1是根据本发明第一实施例的日志信息入库处理装置的示意图。如图1所示,该日志信息入库处理装置包括获取单元10、存储单元30和导入单元50。
获取单元10用于获取网络环境中产生的日志信息。
网络环境中产生的日志信息可以是网络环境中各种网路设备、安全设备、主机、应用和业务***等产生的日志信息。获取网络环境中产生的日志信息可以是从网络环境中获取日志信息,也可以是由网络环境如网络设备发送日志信息,数据库本地接收该日志信息。获取网络环境中产生的日志信息以便于对日志信息进行入库处理。
存储单元30用于将日志信息存储到缓存文件。
在获取网络环境中产生的日志信息之后,可以将日志信息存储到缓存文件中,形成日志文件。其中,缓存文件可以是存储在缓存中的文件,例如高速缓存文件cache文件。将日志信息存储到缓存文件之后,日志审计***就可以进行统计报表、告警信息处理等操作。具体地,可以是先将日志信息cache到文件***中,因为文件的存储比数据的存储要快,日志信息能快速存储到文件***中,使统计报表,告警信息处理等功能不必等待日志文件的入库,从而解放了中央处理器CPU和内存等资源,提升了***的日志处理能力。具体地,将日志信息存储到缓存文件可以是先对日志信息进行解析,从而转化为数据库***能够识别的数据对象,然后将转化后的数据对象写入到缓存文件中。
导入单元50用于通过缓存文件将日志信息导入数据库。
在将日志信息存储到缓存文件之后,可以通过缓存文件将日志信息导入数据库中,可以从存储有缓存文件的文件夹中,读取缓存文件,将缓存文件导入到数据库中。具体地,可以是采用分层的方式,采用单独的一个进程读取缓存文件,然后采用数据库自带的文件入库方法,将缓存文件导入到数据库,实现对日志信息批量导入数据。
根据本发明实施例,通过先将日志信息存储到缓存文件中,在通过缓存文件将日志信息导入数据库,由于先将日志信息存储到缓存文件之后,日志审计***就可以进行统计报表、告警信息处理等操作,无需等待日志文件的入库,避免造成统计报表、告警信息的延误和日志信息的丢失。同时,由于文件的存储比单纯的数据存储的速度快,通过缓存文件将日志信息批量地导入到数据库,解决了日志信息入库的效率低的问题,提高了日志信息的入库效率。
图2是根据本发明第二实施例的日志信息入库处理装置的示意图。如图2所示,该日志信息入库处理装置包括获取单元10、存储单元30和导入单元50。其中,导入单元50包括第一读取模块501和第一导入模块503。
第一读取模块501用于通过单独的进程读取缓存文件。
以进程的方式对日志信息进行处理,采用单独的进程读取写入日志信息的缓存文件,从而能够给日志信息的入库分配更多的CPU时间片段,提高缓存文件的读取效率,进而提高日志信息的入库效率。
第一导入模块503用于采用数据库的文件入库方式将单独的进程读取的缓存文件导入到数据库。
数据库的文件入库方式可以是数据库自带的文件入库的方式,将缓存文件例如cache文件导入到数据库中,实现日志信息的批量导入。
根据本发明实施例,通过采用单独的进程读取存储有日志信息的缓存文件,将日志信息的入库从日志信息的处理环节中独立出来,分配更多的CPU时间片段,从而保证了日志信息的入库效率,同时不影响日志信息的后续操作。
优选地,日志信息入库处理装置还包括:生成单元,用于在将日志信息存储到缓存文件之后,生成与缓存文件对应的编号;写入单元,用于将缓存文件对应的编号写入到缓存文件中。
生成缓存文件对应的编号可以是获取缓存文件中日志信息生成的日期,基于该日期生成编号,也可以是在将日志信息存储到缓存文件之后,按时间顺序生成缓存文件的编号。在生成缓存文件对应的编号之后,可以将缓存文件对应的标号写入缓存文件中,以便于在读取缓存文件时,可以按照缓存文件的编号顺序读取缓存文件。
导入单元包括:第二读取模块,用于当单独的进程启动时,通过单独的进程从缓存文件中读取缓存文件对应的编号;判断模块,用于通过缓存文件对应的编号判断编号对应的缓存文件是否已经导入数据库;第二导入模块,用于当判断出编号对应的缓存文件未导入数据库,将编号对应的缓存文件导入到数据库。
当单独的进程启动时,自动读取缓存文件对应的编号,可以判断该编号对应的缓存文件是否已经被读取,或者判断编号是否为当天的编号。由于缓存文件对应的编号可以按照根据获取到的时间生成,因此,在可以通过编号可以判断缓存文件是否为当天的文件,如果是当天的文件,直接读取编号对应的缓存文件,反之,则读取下一个缓存文件进行相同的判断处理。例如,去当天所对应的文件内读取上次读取的文件编号位置,和已经写入的文件编号位置,然后使用数据库自带的方式,将未入库的文件导入到数据库中。
本发明实施例中,如果存储有日志信息的缓存文件在导入到数据库的过程中出现突发事件,导致文件导入过程终止,当用于将日志信息导入数据库的单独的进程重新启动时,也可以通过缓存文件对应的编号判断出缓存文件是否已经导入数据库中,从而可以避免日志信息在导入数据库的过程中出错,提高日志信息导入数据库的稳定性。
优选地,存储单元包括解析模块、转化模块、验证模块和写入模块。解析模块用于对日志信息进行解析;转化模块用于将解析后的日志信息转化为数据对象;验证模块用于验证数据对象的属性与日志信息是否相符;写入模块用于当验证出数据对象的属性与日志信息相符时,将数据对象写入缓存文件。
在获取到日志信息之后,对日志信息进行解析,日志信息经过解析后,生成数据对象例如变成数据库***能识别的POJO对象。其中,数据对象包括多个属性,由于对日志信息进行解析之后,可能会造成生成的数据对象的属性与原日志信息不相符,或者出错。因此,生成数据对象之后,可以对该数据对象进行信息验证,验证该数据对象的每一个属性是否与日志信息是否相符(或者出错),如果不相符或者出错,则进行错误标示。将该日志存入日志队列池中。Cache日志信息到文件的线程从该队列中读取日志信息,并写入文件中。入库模块读取写入完成的cache文件,采用数据库自带的方式导入到数据库中。反之,则可以将日志信息对应的数据对象存入日志信息队列池中。通过进程日志信息队列池中读取日志信息,按照一定的格式写入缓存文件中。
根据本发明实施例,通过对日志信息进行解析,生成数据库***能够识别的数据对象,并对生成的数据对象进行验证,提高日志信息的入库效率,同时,保证日志信息在入库过程的一致性,避免由于导入数据库后的日志信息与原日志信息不一致的问题。
优选地,数据对象为数据库可识别的POJO对象,缓存文件为cache文件,其中,写入模块包括存储子模块、读取子模块和写入子模块。存储子模块用于将POJO对象存储在日志信息队列池中;读取子模块用于从日志信息队列池中读取存储后的POJO对象;写入子模块用于按照预设时长将读取的POJO对象写入到cache文件。
预设时长可以用于控制cache文件的大小,预设时长可以是10秒。
图3是根据本发明实施例的一种优选的日志信息入库处理过程的拓扑图。如图3所示,其中,日志信息cache到文件模块,主要负责接收日志信息,该日志信息是由网络设备发送过来,并经过解析和验证后,变成***能识别的POJO对象,存入日志信息cache到文件模块的队列中,并由写入文件的线程读取后按照一定的格式存入Cache文件夹中。Cache文件入库模块读取cache文件夹下已经写入完成的cache文件,使用数据库自带的文件入库方法,将数据导入数据库中。其中,日志信息cache到文件模块可以用于实现本发明实施例中的存储单元的作用,Cache文件入库模块可以用于实现本发明实施例的导入单元的作用。
下面对本发明实施例进行详细说明。
本发明实施例的运行环境如下表所示:
项目 | 指标 |
CPU | >2Ghz |
内存 | >2G |
操作*** | Windows,Linux |
硬盘 | >40G |
数据库 | Mysql |
日志信息cache到文件模块将从日志信息队列池中读取日志后,将日志格式化成数据库能识别的POJO格式的数据对象,然后写入cache文件,cache文件大小控制为10秒一个。每次完成一个cache文件后,可以在例如write.index文件中记录完成cache文件的最新序号,然后将日志序号+1后,建立新的cache文件。对每一个新来的日志,获得该日志的接受时间,如果为新的一天,需要建立新一天的cache文件夹,初始化read.index和write.index文件。需要说明的是,本发明实施例的序号可以是本发明实施例的缓存文件对应的编号。
Cache文件入库模块包括四个线程,主线程负责初始化工作,ed入库线程负责edcache文件入库,msg线程msg cache文件负责,read.index更新线程负责更新当前ed和msg完成的文件序号。
主线程中,负责初始化ed和msg cache文件入库的开始序号,以及cache文件最近的序号。
ed入库线程,根据当前ed序号来读取ed cache文件,并与msg序号进行比较,如果相同,则说明ed入库已经追上msg入库,则ed入库线程等待一段时间,然后继续进行比较,如果超过10次等待,则读取当前时间,查看是否跨天。如果跨天,则要读取新一天的write.index序号,并建立当天的数据库表。如果ed序号小于msg序号,则说明ed没有追上msg入库,则ed表直接进行入库。
Msg入库线程,根据当前msg序号来读取msg cache文件,并与write.index最新完成的cache序号进行比较,如果相同,说明msg入库已经追上write.index文件,说明入库较快,写入线程还没有完成最新的cache文件,此时msg入库线程需要等待。然后继续进行比较,如果超过10次等待,则读取当前时间,查看是否跨天。如果跨天,则要读取新一天的write.index序号,并建立当天的数据库表。如果msg序号小于write.index读取的,则说明msg落后,可以直接读取当前序号对应的msg cache进行入库。
read.index更新线程,每30秒负责将ed和msg处理的最新序号写入read.index文件,记录读取的位置,为下次重启时的恢复提供依据。
本发明实施例还提供了一种日志信息入库处理方法。该方法运行在计算机设备上。需要说明的是,本发明实施例的日志信息入库处理方法可以通过本发明实施例所提供的。。装置来执行,本发明实施例的日志信息入库处理装置也可以用于执行本发明实施例所提供的日志信息入库处理方法。
图4是根据本发明第一实施例的日志信息入库处理方法的流程图。如图4所示,该日志信息入库处理方法包括步骤如下:
步骤S402,获取网络环境中产生的日志信息。
网络环境中产生的日志信息可以是网络环境中各种网路设备、安全设备、主机、应用和业务***等产生的日志信息。获取网络环境中产生的日志信息可以是从网络环境中获取日志信息,也可以是由网络环境如网络设备发送日志信息,数据库本地接收该日志信息。获取网络环境中产生的日志信息以便于对日志信息进行入库处理。
步骤S404,将日志信息存储到缓存文件。
在获取网络环境中产生的日志信息之后,可以将日志信息存储到缓存文件中,形成日志文件。其中,缓存文件可以是存储在缓存中的文件,例如高速缓存文件cache文件。将日志信息存储到缓存文件之后,日志审计***就可以进行统计报表、告警信息处理等操作。具体地,可以是先将日志信息cache到文件***中,因为文件的存储比数据的存储要快,日志信息能快速存储到文件***中,使统计报表,告警信息处理等功能不必等待日志文件的入库,从而解放了中央处理器CPU和内存等资源,提升了***的日志处理能力。具体地,将日志信息存储到缓存文件可以是先对日志信息进行解析,从而转化为数据库***能够识别的数据对象,然后将转化后的数据对象写入到缓存文件中。
步骤S406,通过缓存文件将日志信息导入数据库。
在将日志信息存储到缓存文件之后,可以通过缓存文件将日志信息导入数据库中,可以从存储有缓存文件的文件夹中,读取缓存文件,将缓存文件导入到数据库中。具体地,可以是采用分层的方式,采用单独的一个进程读取缓存文件,然后采用数据库自带的文件入库方法,将缓存文件导入到数据库,实现对日志信息批量导入数据。
根据本发明实施例,通过先将日志信息存储到缓存文件中,在通过缓存文件将日志信息导入数据库,由于先将日志信息存储到缓存文件之后,日志审计***就可以进行统计报表、告警信息处理等操作,无需等待日志文件的入库,避免造成统计报表、告警信息的延误和日志信息的丢失。同时,由于文件的存储比单纯的数据存储的速度快,通过缓存文件将日志信息批量地导入到数据库,解决了日志信息入库的效率低的问题,提高了日志信息的入库效率。
图5是根据本发明第二实施例的日志信息入库处理方法的流程图。该实施例的日志信息入库处理方法可以是上述实施例的日志信息入库处理方法的一种优选实施方式。如图5所示,该日志信息入库处理方法包括步骤如下:
步骤S502、步骤S504分别与图4所示的步骤S402和步骤S404相同,这里不做赘述。
步骤S506,通过单独的进程读取缓存文件。
以进程的方式对日志信息进行处理,采用单独的进程读取写入日志信息的缓存文件,从而能够给日志信息的入库分配更多的CPU时间片段,提高缓存文件的读取效率,进而提高日志信息的入库效率。
步骤S508,采用数据库的文件入库方式将单独的进程读取的缓存文件导入到数据库。
数据库的文件入库方式可以是数据库自带的文件入库的方式,将缓存文件例如cache文件导入到数据库中,实现日志信息的批量导入。
根据本发明实施例,通过采用单独的进程读取存储有日志信息的缓存文件,将日志信息的入库从日志信息的处理环节中独立出来,分配更多的CPU时间片段,从而保证了日志信息的入库效率,同时不影响日志信息的后续操作。
优选地,在将日志信息存储到缓存文件之后,日志信息入库处理方法还包括:生成与缓存文件对应的编号;将缓存文件对应的编号写入到缓存文件中。
生成缓存文件对应的编号可以是获取缓存文件中日志信息生成的日期,基于该日期生成编号,也可以是在将日志信息存储到缓存文件之后,按时间顺序生成缓存文件的编号。在生成缓存文件对应的编号之后,可以将缓存文件对应的标号写入缓存文件中,以便于在读取缓存文件时,可以按照缓存文件的编号顺序读取缓存文件。
通过缓存文件将日志信息导入数据库的步骤包括:当单独的进程启动时,通过单独的进程从缓存文件中读取缓存文件对应的编号;通过缓存文件对应的编号判断编号对应的缓存文件是否已经导入数据库;如果判断出编号对应的缓存文件未导入数据库,则将编号对应的缓存文件导入到数据库。
当单独的进程启动时,自动读取缓存文件对应的编号,可以判断该编号对应的缓存文件是否已经被读取,或者判断编号是否为当天的编号。由于缓存文件对应的编号可以按照根据获取到的时间生成,因此,在可以通过编号可以判断缓存文件是否为当天的文件,如果是当天的文件,直接读取编号对应的缓存文件,反之,则读取下一个缓存文件进行相同的判断处理。例如,去当天所对应的文件内读取上次读取的文件编号位置,和已经写入的文件编号位置,然后使用数据库自带的方式,将未入库的文件导入到数据库中。
本发明实施例中,如果存储有日志信息的缓存文件在导入到数据库的过程中出现突发事件,导致文件导入过程终止,当用于将日志信息导入数据库的单独的进程重新启动时,也可以通过缓存文件对应的编号判断出缓存文件是否已经导入数据库中,从而可以避免日志信息在导入数据库的过程中出错,提高日志信息导入数据库的稳定性。
优选地,将日志信息存储到缓存文件包括:对日志信息进行解析;将解析后的日志信息转化为数据对象;验证数据对象的属性与日志信息是否相符;如果验证出数据对象的属性与日志信息相符,则将数据对象写入缓存文件。
在获取到日志信息之后,对日志信息进行解析,日志信息经过解析后,生成数据对象例如变成数据库***能识别的POJO对象。其中,数据对象包括多个属性,由于对日志信息进行解析之后,可能会造成生成的数据对象的属性与原日志信息不相符,或者出错。因此,生成数据对象之后,可以对该数据对象进行信息验证,验证该数据对象的每一个属性是否与日志信息是否相符(或者出错),如果不相符或者出错,则进行错误标示。将该日志存入日志队列池中。Cache日志信息到文件的线程从该队列中读取日志信息,并写入文件中。入库模块读取写入完成的cache文件,采用数据库自带的方式导入到数据库中。反之,则可以将日志信息对应的数据对象存入日志信息队列池中。通过进程日志信息队列池中读取日志信息,按照一定的格式写入缓存文件中。
根据本发明实施例,通过对日志信息进行解析,生成数据库***能够识别的数据对象,并对生成的数据对象进行验证,提高日志信息的入库效率,同时,保证日志信息在入库过程的一致性,避免由于导入数据库后的日志信息与原日志信息不一致的问题。
优选地,数据对象为数据库可识别的POJO对象,缓存文件为cache文件,其中,将数据对象写入缓存文件包括:将POJO对象存储在日志信息队列池中;从日志信息队列池中读取存储后的POJO对象;以及按照预设时长将读取的POJO对象写入到cache文件。
预设时长可以用于控制cache文件的大小,预设时长可以是10秒。
下面对本发明实施例进行详细说明。
本发明实施例的运行环境如下表所示:
项目 | 指标 |
CPU | >2Ghz |
内存 | >2G |
操作*** | Windows,Linux |
硬盘 | >40G |
数据库 | Mysql |
将从日志信息队列池中读取日志后,将日志格式化成数据库能识别的POJO格式的数据对象,然后写入cache文件,cache文件大小控制为10秒一个。每次完成一个cache文件后,可以在例如write.index文件中记录完成cache文件的最新序号,然后将日志序号+1后,建立新的cache文件。对每一个新来的日志,获得该日志的接受时间,如果为新的一天,需要建立新一天的cache文件夹,初始化read.index和write.index文件。需要说明的是,本发明实施例的序号可以是本发明实施例的缓存文件对应的编号。
将缓存文件导入数据路包括四个线程,主线程负责初始化工作,ed入库线程负责ed cache文件入库,msg线程msg cache文件负责,read.index更新线程负责更新当前ed和msg完成的文件序号。
主线程中,负责初始化ed和msg cache文件入库的开始序号,以及cache文件最近的序号。
ed入库线程,根据当前ed序号来读取ed cache文件,并与msg序号进行比较,如果相同,则说明ed入库已经追上msg入库,则ed入库线程等待一段时间,然后继续进行比较,如果超过10次等待,则读取当前时间,查看是否跨天。如果跨天,则要读取新一天的write.index序号,并建立当天的数据库表。如果ed序号小于msg序号,则说明ed没有追上msg入库,则ed表直接进行入库。
Msg入库线程,根据当前msg序号来读取msg cache文件,并与write.index最新完成的cache序号进行比较,如果相同,说明msg入库已经追上write.index文件,说明入库较快,写入线程还没有完成最新的cache文件,此时msg入库线程需要等待。然后继续进行比较,如果超过10次等待,则读取当前时间,查看是否跨天。如果跨天,则要读取新一天的write.index序号,并建立当天的数据库表。如果msg序号小于write.index读取的,则说明msg落后,可以直接读取当前序号对应的msg cache进行入库。
read.index更新线程,每30秒负责将ed和msg处理的最新序号写入read.index文件,记录读取的位置,为下次重启时的恢复提供依据。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种日志信息入库处理方法,其特征在于,包括:
获取网络环境中产生的日志信息;
将所述日志信息存储到缓存文件;以及
通过所述缓存文件将所述日志信息导入数据库。
2.根据权利要求1所述的日志信息入库处理方法,其特征在于,通过所述缓存文件将所述日志信息导入数据库包括:
通过单独的进程读取所述缓存文件;以及
采用所述数据库的文件入库方式将所述单独的进程读取的缓存文件导入到所述数据库。
3.根据权利要求2所述的日志信息入库处理方法,其特征在于,
在将所述日志信息存储到缓存文件之后,所述日志信息入库处理方法还包括:生成与所述缓存文件对应的编号;将所述缓存文件对应的编号写入到所述缓存文件中,
其中,通过所述缓存文件将所述日志信息导入数据库包括:当所述单独的进程启动时,通过所述单独的进程从所述缓存文件中读取所述缓存文件对应的编号;通过所述缓存文件对应的编号判断所述编号对应的缓存文件是否已经导入所述数据库;如果判断出所述编号对应的缓存文件未导入所述数据库,则将所述编号对应的缓存文件导入到所述数据库。
4.根据权利要求1所述的日志信息入库处理方法,其特征在于,将所述日志信息存储到缓存文件包括:
对所述日志信息进行解析;
将解析后的日志信息转化为数据对象;
验证所述数据对象的属性与所述日志信息是否相符;
如果验证出所述数据对象的属性与所述日志信息相符,则将所述数据对象写入缓存文件。
5.根据权利要求4所述的日志信息入库处理方法,其特征在于,所述数据对象为所述数据库可识别的POJO对象,所述缓存文件为cache文件,其中,将所述数据对象写入缓存文件包括:
将所述POJO对象存储在日志信息队列池中;
从所述日志信息队列池中读取存储后的POJO对象;以及
按照预设时长将读取的POJO对象写入到所述cache文件。
6.一种日志信息入库处理装置,其特征在于,包括:
获取单元,用于获取网络环境中产生的日志信息;
存储单元,用于将所述日志信息存储到缓存文件;以及
导入单元,用于通过所述缓存文件将所述日志信息导入数据库。
7.根据权利要求6所述的日志信息入库处理装置,其特征在于,所述导入单元包括:
第一读取模块,用于通过单独的进程读取所述缓存文件;以及
第一导入模块,用于采用所述数据库的文件入库方式将所述单独的进程读取的缓存文件导入到所述数据库。
8.根据权利要求7所述的日志信息入库处理装置,其特征在于,
所述日志信息入库处理装置还包括:生成单元,用于在将所述日志信息存储到缓存文件之后,生成与所述缓存文件对应的编号;写入单元,用于将所述缓存文件对应的编号写入到所述缓存文件中,
其中,所述导入单元包括:第二读取模块,用于当所述单独的进程启动时,通过所述单独的进程从所述缓存文件中读取所述缓存文件对应的编号;判断模块,用于通过所述缓存文件对应的编号判断所述编号对应的缓存文件是否已经导入所述数据库;第二导入模块,用于当判断出所述编号对应的缓存文件未导入所述数据库,将所述编号对应的缓存文件导入到所述数据库。
9.根据权利要求6所述的日志信息入库处理装置,其特征在于,所述存储单元包括:
解析模块,用于对所述日志信息进行解析;
转化模块,用于将解析后的日志信息转化为数据对象;
验证模块,用于验证所述数据对象的属性与所述日志信息是否相符;
写入模块,用于当验证出所述数据对象的属性与所述日志信息相符时,将所述数据对象写入缓存文件。
10.根据权利要求9所述的日志信息入库处理装置,其特征在于,所述数据对象为所述数据库可识别的POJO对象,所述缓存文件为cache文件,其中,所述写入模块包括:
存储子模块,用于将所述POJO对象存储在日志信息队列池中;
读取子模块,用于从所述日志信息队列池中读取存储后的POJO对象;以及
写入子模块,用于按照预设时长将读取的POJO对象写入到所述cache文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410116995.8A CN103927338A (zh) | 2014-03-26 | 2014-03-26 | 日志信息入库处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410116995.8A CN103927338A (zh) | 2014-03-26 | 2014-03-26 | 日志信息入库处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103927338A true CN103927338A (zh) | 2014-07-16 |
Family
ID=51145559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410116995.8A Pending CN103927338A (zh) | 2014-03-26 | 2014-03-26 | 日志信息入库处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103927338A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281672A (zh) * | 2014-09-28 | 2015-01-14 | 网神信息技术(北京)股份有限公司 | 日志数据的处理方法和装置 |
CN104317820A (zh) * | 2014-09-28 | 2015-01-28 | 网神信息技术(北京)股份有限公司 | 报表的统计方法和装置 |
CN104537110A (zh) * | 2015-01-19 | 2015-04-22 | 上海拍拍贷金融信息服务有限公司 | 一种数据写入方法和装置 |
CN104618192A (zh) * | 2015-02-12 | 2015-05-13 | 网神信息技术(北京)股份有限公司 | 数据库审计设备的测试方法和装置 |
CN104967696A (zh) * | 2015-07-29 | 2015-10-07 | 网神信息技术(北京)股份有限公司 | 日志发送方法和装置 |
CN105022822A (zh) * | 2015-07-17 | 2015-11-04 | 成都视达科信息技术有限公司 | 一种基于php收集及存储日志的方法和*** |
CN105260282A (zh) * | 2015-09-23 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种应用读写特征分析方法及装置 |
CN106484742A (zh) * | 2015-09-01 | 2017-03-08 | 北京国双科技有限公司 | 日志处理方法和装置 |
CN106681998A (zh) * | 2015-11-05 | 2017-05-17 | 北京国双科技有限公司 | 一种日志远程存储的方法及装置 |
CN107766408A (zh) * | 2017-08-31 | 2018-03-06 | 西安交大捷普网络科技有限公司 | 审计日志的存储方法 |
CN109525632A (zh) * | 2018-09-30 | 2019-03-26 | 珠海派诺科技股份有限公司 | 网关数据上传数据库连接数控制方法、装置、设备及介质 |
WO2019104891A1 (zh) * | 2017-11-28 | 2019-06-06 | 平安科技(深圳)有限公司 | 报表导入导出的方法、装置、存储介质及终端 |
CN110716908A (zh) * | 2019-09-29 | 2020-01-21 | 捷开通讯(深圳)有限公司 | 日志信息写入方法、***、存储介质及移动终端 |
CN110825598A (zh) * | 2019-09-23 | 2020-02-21 | 武汉智美互联科技有限公司 | 一种日志实时处理方法及*** |
CN111339041A (zh) * | 2020-03-10 | 2020-06-26 | 中国建设银行股份有限公司 | 文件解析入库、文件生成方法及装置 |
CN112118283A (zh) * | 2020-07-30 | 2020-12-22 | 爱普(福建)科技有限公司 | 一种基于多级缓存的数据处理方法及*** |
CN112181902A (zh) * | 2020-11-30 | 2021-01-05 | 阿里云计算有限公司 | 数据库的存储方法、装置及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154781A1 (en) * | 2004-01-13 | 2005-07-14 | International Business Machines Corporation | System and method for dynamically inserting prefetch tags by the web server |
CN101043375A (zh) * | 2007-03-15 | 2007-09-26 | 华为技术有限公司 | 分布式***日志收集方法及*** |
CN101193022A (zh) * | 2006-11-20 | 2008-06-04 | 中兴通讯股份有限公司 | 宽带接入网设备中用户上网日志的读取方法 |
CN101667122A (zh) * | 2009-09-21 | 2010-03-10 | 东软集团股份有限公司 | 一种扩展pojo实现支持附加信息的方法和装置 |
CN102521274A (zh) * | 2011-11-24 | 2012-06-27 | 上海明想电子科技有限公司 | 一种基于ibatis的SQL脚本动态加载方法 |
CN102831181A (zh) * | 2012-07-31 | 2012-12-19 | 北京光泽时代通信技术有限公司 | 缓存文件的目录刷新方法及采用该方法的代理缓存服务器 |
CN102891873A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 一种存储日志数据的方法及日志数据存储*** |
CN103049251A (zh) * | 2011-10-17 | 2013-04-17 | ***通信集团公司 | 一种数据库持久层装置及数据库操作方法 |
CN103107907A (zh) * | 2013-01-04 | 2013-05-15 | 西安交大捷普网络科技有限公司 | 一种基于事件流追加推动方式的安全响应方法 |
-
2014
- 2014-03-26 CN CN201410116995.8A patent/CN103927338A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154781A1 (en) * | 2004-01-13 | 2005-07-14 | International Business Machines Corporation | System and method for dynamically inserting prefetch tags by the web server |
CN101193022A (zh) * | 2006-11-20 | 2008-06-04 | 中兴通讯股份有限公司 | 宽带接入网设备中用户上网日志的读取方法 |
CN101043375A (zh) * | 2007-03-15 | 2007-09-26 | 华为技术有限公司 | 分布式***日志收集方法及*** |
CN101667122A (zh) * | 2009-09-21 | 2010-03-10 | 东软集团股份有限公司 | 一种扩展pojo实现支持附加信息的方法和装置 |
CN102891873A (zh) * | 2011-07-21 | 2013-01-23 | 腾讯科技(深圳)有限公司 | 一种存储日志数据的方法及日志数据存储*** |
CN103049251A (zh) * | 2011-10-17 | 2013-04-17 | ***通信集团公司 | 一种数据库持久层装置及数据库操作方法 |
CN102521274A (zh) * | 2011-11-24 | 2012-06-27 | 上海明想电子科技有限公司 | 一种基于ibatis的SQL脚本动态加载方法 |
CN102831181A (zh) * | 2012-07-31 | 2012-12-19 | 北京光泽时代通信技术有限公司 | 缓存文件的目录刷新方法及采用该方法的代理缓存服务器 |
CN103107907A (zh) * | 2013-01-04 | 2013-05-15 | 西安交大捷普网络科技有限公司 | 一种基于事件流追加推动方式的安全响应方法 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281672B (zh) * | 2014-09-28 | 2021-02-12 | 网神信息技术(北京)股份有限公司 | 日志数据的处理方法和装置 |
CN104317820A (zh) * | 2014-09-28 | 2015-01-28 | 网神信息技术(北京)股份有限公司 | 报表的统计方法和装置 |
CN104281672A (zh) * | 2014-09-28 | 2015-01-14 | 网神信息技术(北京)股份有限公司 | 日志数据的处理方法和装置 |
CN104537110A (zh) * | 2015-01-19 | 2015-04-22 | 上海拍拍贷金融信息服务有限公司 | 一种数据写入方法和装置 |
CN104537110B (zh) * | 2015-01-19 | 2018-01-12 | 上海拍拍贷金融信息服务有限公司 | 一种数据写入方法和装置 |
CN104618192A (zh) * | 2015-02-12 | 2015-05-13 | 网神信息技术(北京)股份有限公司 | 数据库审计设备的测试方法和装置 |
CN105022822A (zh) * | 2015-07-17 | 2015-11-04 | 成都视达科信息技术有限公司 | 一种基于php收集及存储日志的方法和*** |
CN104967696A (zh) * | 2015-07-29 | 2015-10-07 | 网神信息技术(北京)股份有限公司 | 日志发送方法和装置 |
CN106484742A (zh) * | 2015-09-01 | 2017-03-08 | 北京国双科技有限公司 | 日志处理方法和装置 |
CN105260282A (zh) * | 2015-09-23 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种应用读写特征分析方法及装置 |
CN105260282B (zh) * | 2015-09-23 | 2018-04-24 | 浪潮(北京)电子信息产业有限公司 | 一种应用读写特征分析方法及装置 |
CN106681998A (zh) * | 2015-11-05 | 2017-05-17 | 北京国双科技有限公司 | 一种日志远程存储的方法及装置 |
CN107766408A (zh) * | 2017-08-31 | 2018-03-06 | 西安交大捷普网络科技有限公司 | 审计日志的存储方法 |
WO2019104891A1 (zh) * | 2017-11-28 | 2019-06-06 | 平安科技(深圳)有限公司 | 报表导入导出的方法、装置、存储介质及终端 |
CN109525632A (zh) * | 2018-09-30 | 2019-03-26 | 珠海派诺科技股份有限公司 | 网关数据上传数据库连接数控制方法、装置、设备及介质 |
CN110825598A (zh) * | 2019-09-23 | 2020-02-21 | 武汉智美互联科技有限公司 | 一种日志实时处理方法及*** |
CN110716908A (zh) * | 2019-09-29 | 2020-01-21 | 捷开通讯(深圳)有限公司 | 日志信息写入方法、***、存储介质及移动终端 |
CN111339041A (zh) * | 2020-03-10 | 2020-06-26 | 中国建设银行股份有限公司 | 文件解析入库、文件生成方法及装置 |
CN111339041B (zh) * | 2020-03-10 | 2024-01-12 | 中国建设银行股份有限公司 | 文件解析入库、文件生成方法及装置 |
CN112118283A (zh) * | 2020-07-30 | 2020-12-22 | 爱普(福建)科技有限公司 | 一种基于多级缓存的数据处理方法及*** |
CN112118283B (zh) * | 2020-07-30 | 2023-04-18 | 爱普(福建)科技有限公司 | 一种基于多级缓存的数据处理方法及*** |
CN112181902A (zh) * | 2020-11-30 | 2021-01-05 | 阿里云计算有限公司 | 数据库的存储方法、装置及电子设备 |
CN112181902B (zh) * | 2020-11-30 | 2021-08-31 | 阿里云计算有限公司 | 数据库的存储方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103927338A (zh) | 日志信息入库处理方法和装置 | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US20180365254A1 (en) | Method and apparatus for processing information flow data | |
CN108874558B (zh) | 分布式事务的消息订阅方法、电子装置及可读存储介质 | |
US8380680B2 (en) | Piecemeal list prefetch | |
CN106354817B (zh) | 一种日志的处理方法及装置 | |
CN104077420A (zh) | 一种数据导入HBase数据库的方法和装置 | |
CN110851324B (zh) | 基于日志的巡检处理方法、装置以及电子设备、存储介质 | |
CN107220376B (zh) | 一种数据查询方法和装置 | |
CN110471754A (zh) | 作业调度中的数据展示方法、装置、设备及存储介质 | |
CN104572781A (zh) | 一种交易日志产生方法和装置 | |
CN110162344A (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN113254445A (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN106533914A (zh) | 消息通知方法及装置 | |
CN107357885A (zh) | 数据写入方法及装置、电子设备、计算机存储介质 | |
CN112860662A (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN107357619B (zh) | 一种板卡配置文件的生成方法、装置、设备以及存储介质 | |
US20110264991A1 (en) | Method and System for Management of Electronic Mail Communication | |
CN113886590A (zh) | 数据汇总方法、装置、计算机设备及存储介质 | |
CN116069838A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN111651522B (zh) | 一种数据同步方法及装置 | |
CN115409507A (zh) | 区块处理方法、区块处理装置、计算机设备及存储介质 | |
CN116661936A (zh) | 页面数据的处理方法、装置、计算机设备及存储介质 | |
CN105677391A (zh) | 一种定时插件的实现方法及装置 | |
CN104216986A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140716 |