一种日志数据传输的方法和系统技术方案

技术编号:8347880 阅读:159 留言:0更新日期:2013-02-21 01:16
本发明专利技术公开了一种日志数据传输的方法和系统,其中所述日志数据传输涉及将应用服务器产生的日志数据传送至日志服务器的过程,所述日志服务器中包括日志数据库,或者,所述日志服务器与日志数据库相连,所述方法包括:日志服务器定时从所述应用服务器抓取日志数据,并将所述日志数据写入日志数据库中;从所述应用服务器中删除所述已写入日志数据库的日志数据,本发明专利技术能降低数据丢失的风险及减少存储的冗余。

【技术实现步骤摘要】

本专利技术涉及日志处理的
,具体涉及一种日志数据传输的方法和系统
技术介绍
日志(log)用来储存和记录系统运行情况和用户使用情况的详细信息,这些信息是查看系统运行状态和排查问题的主要依据。例如,某个软件中应用程序出现崩溃情况,那么可以从程序事件日志中找到相应的记录,从而帮助相关技术人员分析并解决问题。以线上系统日志信息为例,日志信息可以用来对线上业务运行过程的记录和运行程序的监控,通过分析记录的日志信息可以为出现和可能出现的错误进行提示、警告,还可以统计业务信息,为业务逻辑改进和应用程序升级提供可靠的依据。参考图I所示的一种现有技术中基于C语言程序生成的日志记录系统的结构示意图,现有的日志记录系统具体可以包括应用服务器11和日志服务器12,其中,所述应用服务器11中包括多个应用程序111,以及LIB库(一种基于Linux平台的静态库或者动态库) 112形式挂接在各个应用程序模块上的日志采集模块,以及,与所述日志采集模块相连的日志客户端113;所述日志服务器12与DB 13相连。在这种现有的日志记录系统中,通常会针对每个应用程序模块111配置一个日志采集模块112,在应用程序模块111中调用日志采集模块112的接口,通过参数传递方式将日志级别、日志记录时间、日志内容、日志流水号、应用程序名等日志信息,传入日志采集模块112,日志采集模块112将采集到的日志信息写入LIB库112中的消息队列。日志客户端 113读取消息队列中的日志信息通过网络通信发给远端的日志服务器12。日志服务器将收到的信息插入到数据库(DB) 13中。在上述日志传输的过程中,应用服务器上各应用程序模块111产生的日志信息通过LIB库发送给日志客户端113,所述日志客户端保存所收到的日志,再根据配置的日志服务器IP地址和相关端口号,将所收到的日志发送给日志服务器。日志服务器接收所述日志,将所接收到的日志统一保存到DB中。这种方案一旦应用服务器11发生宕机,未及时发送出去的日志就会丢失,在日志服务器12处理完日志之前,是无法查看到当前发生的日志;另外,这种方案将在应用服务器上和日志服务器上分别建立一套数据库,存储两套日志,造成了存储的冗余。因此,本领域技术人员需要迫切解决的问题是提供一种日志数据传输的方法及系统,能降低数据丢失的风险及减少存储的冗余。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种日志数据传输的方法和相应的一种日志数据传输的系统。依据本专利技术的一个方面,提供了一种日志数据传输的方法,所述日志数据传输涉及将应用服务器产生的日志数据传送至日志服务器的过程,所述日志服务器中包括日志数据库,或者,所述日志服务器与日志数据库相连,所述方法包括日志服务器定时从所述应用服务器抓取日志数据,并将所述日志数据写入日志数据库中;从所述应用服务器中删除所述已写入日志数据库的日志数据。可选地,所述日志服务器定时从所述应用服务器抓取日志数据,并将所述日志数据写入日志数据库中的步骤包括子步骤SI、日志服务器定时从所述应用服务器抓取日志数据;子步骤S2、根据所述抓取的日志数据生成新日志文件;子步骤S3、判断所述日志服务器中是否存在旧日志文件;若是,则执行子步骤S5, 若否,则执行子步骤S4;子步骤S4、创建一个空文件作为旧日志文件,转子步骤S5 ;子步骤S5、将所述新日志文件与旧日志文件进行比较,生成增量日志文件;子步骤S6、将所述增量日志文件写入日志数据库中。可选地,所述子步骤S5进一步包括 子步骤SI I、将所述新日志文件与旧日志文件进行比较,提取新增内容生成新比较文件;子步骤S12、采用所述新比较文件替换在先的旧比较文件;子步骤S13、去除所述新比较文件中的冗余数据后,生成新的增量日志文件;子步骤S14、采用所述新增量日志文件替换在先的旧增量日志文件。可选地,所述日志服务器定时从所述应用服务器抓取日志数据,并将所述日志数据写入日志数据库中的步骤还包括子步骤S7、采用所述新日志文件替换旧日志文件。可选地,所述子步骤SI为,日志服务器定时从所述应用服务器抓取当天的全量日志数据。可选地,所述日志服务器定时从所述应用服务器抓取日志数据,并将所述日志数据写入日志数据库中的步骤还包括子步骤S8、若在将所述增量日志文件写入日志数据库中发生错误,则将写入的日志数据进行回滚。根据本专利技术的另一方面,提供了一种日志数据传输的系统,包括 应用服务器和日志服务器,所述应用服务器与日志服务器相连,所述日志服务器与日志数据库相连;所述日志服务器还包括日志采集模块,适于定时从所述应用服务器抓取日志数据,并将所述日志数据写入日志数据库中;日志删除模块,适于删除应用服务器中已写入日志数据库的日志数据。可选地,所述日志采集模块包括日志数据抓取子模块,适于定时从所述应用服务器抓取日志数据;日志文件生成子模块,适于根据所述抓取的日志数据生成新日志文件;判断子模块,适于判断所述日志服务器中是否存在旧日志文件;若否,则调用创建子模块,若是,则调用比较子模块;创建子模块,适于创建一个空文件作为旧日志文件;比较子模块,适于将所述新日志文件与旧日志文件进行比较,生成增量日志文件; 记录子模块,适于将所述增量日志文件写入日志数据库中。可选地,所述比较子模块进一步包括提取单元,适于提取所述新日志文件与旧日志文件比较生成的新增内容新比较文件;第一替换单元,适于将所述新比较文件替换在先的旧比较文件;冗余数据删除单元,适于去除所述新比较文件中的冗余数据后,生成新的增量日志文件;第二替换单元,适于将所述新增量日志文件替换在先的旧增量日志文件。可选地,所述日志采集模块还包括第三替换子模块,适于将新日志文件替换旧日志文件。可选地,所述日志采集模块还包括回滚子模块,适于所述增量日志文件写入日志数据库中发生错误时,将写入的日志数据进行回滚。根据本专利技术的日志数据传输方法及系统,可以由日志服务器定时从应用服务器主动抓取当天全量的日志数据,抓取日志数据进行集中后则将应用服务器上已写入日志数据库的日志数据进行删除;由此解决了现有技术在服务器宕机时未及时发送出去的日志数据会丢失的问题,取得了降低数据丢失的风险和存储的冗余的有益效果。由于日志数据库可以位于日志服务器中,也可以单独设置,与日志服务器相连,日志数据库可以按照需求控制内存空间的容量,定期清理不再需要的日志数据,日志服务器抓取日志数据进行集中后则将应用服务器上已写入日志数据库的日志数据删除,降低了存储的冗余。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段, 而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图I示出了根据本专利技术一个实施例的现有技术的日志传输系统的结构示意图2示出了根据本专利技术一个实施例的一种日志数据传输方法实施例的流程图3示出了根据本专利技术一个实施例的一种日志数据传输系统实施例的结构框本文档来自技高网
...

【技术保护点】
一种日志数据传输的方法,其特征在于,所述日志数据传输涉及将应用服务器产生的日志数据传送至日志服务器的过程,所述日志服务器中包括日志数据库,或者,所述日志服务器与日志数据库相连,所述方法包括:日志服务器定时从所述应用服务器抓取日志数据,并将所述日志数据写入日志数据库中;从所述应用服务器中删除所述已写入日志数据库的日志数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:柴昱
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1