一种日志的获取方法及日志服务器的制作方法

文档序号:7697637阅读:180来源:国知局
专利名称:一种日志的获取方法及日志服务器的制作方法
技术领域
本发明实施例涉及通信技术领域,特别是涉及一种日志的获取方法和日 志服务器。
背景技术
日志管理系统是用于接收,存储,管理一个或一组设备日志的系统。 日志管理系统最主要的功能之一就是提供日志的查询。
目前的日志管理系统通常采用分布式结构,这种结构包括日志采集器 和日志查询设备,这种结构下的日志釆集器用于日志的采集和日志的存 储,当需要查询日志时,日志查询设备向日志采集器查询所需要的日志。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺点现 有的分布式结构,多个日志采集器返回的数据没有根据时间顺序进行排 列,会造成用户无法准确得到想要的数据。

发明内容
本发明实施例提供一种日志的获取方法和日志服务器,以保证日志数 据可以根据时间顺序进行排列。
根据本发明的一方面,提供一种日志的获取方法,包括
接收多个日志采集器发送的日志数据,所述日志数据包括日志和曰志 的时间戳;
存储接收到的日志数据至多个緩沖区;
判断存储区的时间戳是否大于所述多个緩沖区的最大时间戳;若判断所述存储区的时间戳大于緩沖区的最大时间戳,获取大于等于 所述多个緩沖区的最大时间戳的日志数据,并进行排序存储至所述存储 区。
根据本发明的另一方面,还提供一种日志服务器,所述日志服务器与日 志采集器组通信连接,所述日志服务器包括
接收模块,用于接收所述日志采集器组发送的日志数据,所述日志数据
包4舌日志和日志的时间戳;
采集緩存模块,用于存储所述日志数据; 主緩存模块,用于存储已排序的日志数据;
判断模块,用于判断所述主缓存模块的时间戳是否大于所述采集緩存 模块的最大时间戳;
临时緩存模块,用于当所述判断模块判断所述主緩存模块的时间戳大 于所述采集缓存模块的最大时间戳时,获取大于等于所述采集緩存模块的 最大时间戳的日志数据,并进行排序;
主緩存模块,用于存储已排序的日志数据。
采用上述提供的日志的获取方法和日志服务器,将日志采集器返回的 日志数据进行缓存,并将存储区的时间戳与缓沖区的时间戳进行比较,当 存储区的时间戳大于緩冲区的时间戳时,获取查询的时间段的日志数据, 并进行排序,以保证日志数据可以根据时间顺序进行排列,从而可以使用 户准确获得想要的日志数据。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对 实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员 来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的日志管理系统的结构图2为本发明实施例的日志服务器的结构图3为本发明实施例的緩存器的结构图示意图4为本发明实施例的日志服务器的日志排序的举例图5为本发明实施例的日志的获取方法的流程图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进 行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没 有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的 范围。
图1为本发明实施例的日志管理系统的结构图。在本实施例中,日志 管理系统包括日志服务器IO和日志采集器组30。日志服务器IO通过网络 20与日志采集器组30通信连接。在本实施例中,日志服务器10用于当用 户需要查询某一时间段的M条日志数据时,发送查询请求至日采集器30 以获取日志数据,该查询请求用于查询某一时间段的M条日志数据,其中 每个日志采集器查询M/N条日志数据。在本实施例中,日志采集器组30
包括第一日志采集器31、第二日志采集器32.....第N日志采集器3N。
为更好的说明,在本实施例中,假设用户需要查询21: 00至18: 00间的 9条日志数据。假设日志采集器组30有三个日志采集器,分別为第一曰志 采集器31、第二日志采集器32、第三日志采集器33。当日志采集器组30 接收到日志服务器10发送的查询请求后,每个日志采集器分别查询3条 日志数据,并将查询后的日志数据返回至日志服务器10,日志数据包括曰 志和该日志的时间戳。图2为本发明实施例的曰志服务器的结构图。
在本实施例中,日志服务器10包括查询模块100、接收模块102、判 断模块104、主緩存模块106、釆集緩存模块108、临时緩存模块IIO。
查询模块100用于当用户需要查询某一时间段的M条日志数据时,发 送查询请求至日志采集器组30,并通知接收模块102等待接收日志采集器 组30发送的日志数据。
接收模块102用于接收日志采集器组30发送的有序的日志数据,并 将日志数据发送于采集缓存模块108。
采集缓存模块108用于存储接收模块102发送的有序的日志数据。在 本实施例中,采集緩存模块108包括第一采集緩存子模块1081、第二采集
缓存子模块1082、第三采集緩存子模块1083.....第N采集緩存子模块
108N。在本实施倒中,由于接收模块102接收的日志数据是由第一日志采
集器31、第二日志采集器32.....第N日志采集器3N分别发送的日志数
据,因此,为更好的区分存储由不同的日采集器发送的日志数据,第一采 集緩存子模块1081存储第一 日志釆集器31发送的日志数据,第二采集緩 存子模块1082存储第二日志采集器32发送的日志数据,依次类推。在本
实施例中,第一日志采集器31、第二日志釆集器32.....第N日志采集
器3N分别发送的日志数据为有序的。
主缓存模块106用于存储已排序的日志数据。
在本实施例中,主緩存模块106和采集缓存模块108的结构如图3所 示,在本实施例中,以日志数据中的日志的时间戳为时间顺序进行排序, 从下到上是时间的先后顺序。图中的每一小格存储日志数据,图中的最下 面的小格为存储排序最后的日志数据。在本实施例中,Timestamp时间戳 是主緩存模块106当前排序最后的日志数据的日志的时间戳。Timestamp弁l 表示第一采集緩存子模块1081的当前排序最后的日志数据的日志的时间 戳,Timestamp#2表示第二采集緩存子模块1082的当前排序最后的日志数据的日志的时间戳,以此类推,此处不在描述。在本实施例中,主緩存模
块106只能有一个时间戳,第一采集緩存子模块1081、第二采集缓存子模
块1082、第三采集緩存子模块1083.....第N采集緩存子模块108N中各
自只能有一个时间戳。在本实施例中,主緩存模块106的时间戳的初始值为查询的时间段的上限值,也可以理解为查询的时间段的最大值,在本实施例中为查询的开始时间,比如用户需要查询21: 00至18: 00时间段的日志数据,则主缓存模块106的时间戳为21: 00。
判断模块104用于判断主緩存模块106的时间戳是否大于采集緩存模块108中的最大时间戳。在本实施倒中,采集緩存模块108中的最大时间戳是第一采集緩存子模块1081、第二采集緩存子模块1082、第三采集緩
存子模块1083.....第N采集緩存子模块108N中的时间戳的值为最大的
时间戳。
判断模块104还用于判断主缓存模块106的时间戳大于采集缓存模块108中的最大时间戳时,通知主緩存模块106更新当前的时间戳为采集緩存模块108中的最大时间戳。主緩存模块106还用于更新当前的时间戳为采集緩存模块108中的最大时间戳。
判断模块104还用于判断采集缓存模块108中是否有日志数据的时间戳大于该最大时间戳,当判断有大于该最大时间戳时,通知临时緩存模块IIO存储时间戳大于等于该最大时间戳的日志数据。临时緩存模块110用于存储采集緩存模块108中时间戳大于等于该最大时间戳的日志数据,并进行排序。在本实施例中,按日志数据的日志的时间戳的先后顺序进行排序。
主缓存模块106用于存储临时緩存模块110已排序的日志数据。判断模块104还用于判断主緩存模块106中的日志数据的条数是否满足查询条数,当然也可以理解为判断主緩存模块106中的日志数据的条数是否匹配查询条数,并当判断不满足时,通知查询^^莫块IOO发送查询请求至该最大时间戳对应的日志采集器以获取剩余条数的日志数据。查询模块100用于发送查询请求至该最大时间戳对应的日志采集器以获取剩余条数的曰志数据。
在本实施例中,依然以用户需要查询21: 00至18: 00间的9条曰志数据为例进行说明。如图4所示。第一采集緩存子模块1081存储第一日志采集器31发送的3条日志数据,以此类推。在本实施例中,三个采集缓存子模块中的当前时间戳分別为18: 10, 18: 20, 18: 30,可知,采集緩存模块108的最大时间戳为18: 30,将主緩存模块106的当前时间戳更新为18: 30;由于时间戳大于18: 30的有19: 10, 19: 20, 19: 5 0, 20:00, 20: 10, 20: 30,因此将18: 30, 19: 10, 19: 20, 19: 50, 20: 00,20: 10, 20: 30的日志数据存储在临时緩存模块110中,并进行排序。并将排序后的日志数据存储在主緩存模块106中。由于主緩存模块106存储的曰志数据的条数为7条,没有符合查询条数,因此,还需要2条日志数据,发送查询请求至18: 30对应的第三曰志釆集器33。在本实施例中,由于18: 10, 18: 20皆小于18: 30,相对于用户需要查询的时间段来说,其参考价值很小,因此,这两个时间戳的日志数据依然存储在采集缓存子模块中,当主缓存模块106获取的日志数据满足查询条数时,这两个时间戳的日志数据会被删除。
本发明实施例提供的日志服务器,先将日志采集器返回的日志数据进行緩存排序,并将所述主緩存模块的时间戳与采集緩存模块的最大时间戳进行比较,当所述主緩存模块的时间戳大于采集緩存模块的最大时间戳时,获取查询的时间段的日志数据,并进行排序,从而可以^吏用户准确获得想要的日志数据,由于使每个日志采集器查询M/N条日志数据,跟现有技术相比,可以缩短查询的时间,从而提高查询的效率。
图5为本发明实施例的日志的获取方法的流程图。
在本实施例中,步骤S500,发送查询请求至日志采集器以查询某一时间段的M条日志数据。在本实施例中,日志采集器包括第一日志采集器、第二日志采集器.....第N日志采集器,即日志采集器中的每个日志采集
器查询M/N条日志数据。
步骤S501,接收多个日志采集器发送的查询后的有序的日志数据。在本实施例中,接收多个日志采集器发送的查询后的日志数据,即接收第一
日志采集器、第二日志采集器.....第N日志采集器分别发送的查询后的
日志数据。日志数据包括日志和日志的时间戳。
步骤S502,存储接收到的日志数据。在本实施例中,分开存储接收到的曰志数据,即将第一日志采集器发送的查询后的日志数据存储在第一緩冲区,将第二日志采集器发送的查询后的日志数据存储在第二緩冲区,以此类推。可以理解为,将同一个日志采集器发送的日志数据存储在一起。在本实施例中,每一个緩冲区都有一个时间戳,并且每一个緩冲区按时间戳的先后顺序进行排序。该时间戳是当前排序最后的日志数据的日志的时间戳。
步骤S504,判断存储区的时间戳是否大于緩冲区的最大时间戳。在本实施例中,所述存储区的时间戳为查询的时间段的上限值,上限值为查询的时间段的最大值,也可以理解为查询的时间段的开始时间,緩沖区的最
大时间戳为第一緩沖区、第二緩冲区.....第N緩冲区中的时间戳的值为
最大的时间戳。
若判断所述存储区的时间戳大于緩沖区的最大时间戳,进入步骤S506,若判断所述存储区的时间戳不大于緩沖区的最大时间戳,进入步骤S500。
步骤S506,更新所述存储区的时间戳为緩沖区的最大时间戳。步骤S508,获取大于等于该緩沖区的最大时间戳的日志数据,并进行排序存储。在本实施例中,按时间戳的先后顺序进行排序。
步骤S510,判断排序后的日志数据的数据条数是否满足查询条数。若判断满足查询条数,则进入步骤S514,若判断不满足查询条数,则进入步骤S512。
步骤S512,发送查询请求至该最大时间戳对应的日志采集器以获取剩余条数的日志数据。
步骤S514,查询结束。
本发明实施例提供的日志的获取方法,将存储区的时间戳与多个緩沖区的最大时间戳进行比较,当存储区的时间戳大于多个緩沖区的最大时间戳时,获取查询的时间段的日志数据,并进行排序,从而可以使用户准确获得想要的日志数据,同时,由于使每个日志采集器查询M/N条日志数据,跟现有技术相比,可以缩短查询的时间,从而提高查询的效率。
本领域普通4支术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁石莱、光盘、只读存储记忆体(Read-Only Memory, ROM)或随才几存4诸i己忆体(Random AccessMemory, RAM)等。
最后应说明的是以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
权利要求
1、一种日志的获取方法,其特征在于,包括接收多个日志采集器发送的日志数据,所述日志数据包括日志和日志的时间戳;存储接收到的日志数据至多个缓冲区;判断存储区的时间戳是否大于所述多个缓冲区的最大时间戳;若判断所述存储区的时间戳大于所述多个缓冲区的最大时间戳,获取大于等于所述多个缓冲区的最大时间戳的日志数据,并进行排序存储至所述存储区。
2、 根据权利要求1所述的方法,其特征在于,所述存储接收到的日志 数据至多个缓沖区的步骤包括将同 一个日志采集器发送的日志数据存储在同 一个緩冲区。
3、 根据权利要求2所述的方法,其特征在于,所述多个緩冲区的最大 时间戳是多个緩冲区中的緩沖区的时间戳的值为最大的时间戳,缓冲区的 时间戳是当前排序最后的日志数据的日志的时间戳。
4、 根据权利要求1所述的方法,其特征在于,还包括若判断所述存储区的时间戳大于緩冲区的最大时间戳,将所述存储区 的时间戳更新为所述多个缓沖区的最大时间戳。
5、 根据权利要求1所述的方法,其特征在于,还包括 判断排序后的日志数据的数据条数是否满足查询条数; 当判断不满足所述查询条数,发送查询请求至所述最大时间戳对应的日志釆集器以获取剩余条数的日志数据。
6、 一种日志服务器,其特征在于,所述日志服务器与日志采集器组通信 连接,所述日志服务器包括接收模块,用于接收所述日志采集器组发送的日志数据,所述日志数据 包括日志和日志的时间戳;采集缓存模块,用于存储所述日志数据; 主緩存模块,用于存储已排序的日志数据;判断模块,用于判断所述主緩存模块的时间戳是否大于所述采集緩存 模块的最大时间戳;临时緩存模块,用于当所述判断模块判断所述主緩存模块的时间戳大 于所述采集緩存模块的最大时间戳时,获取大于等于所述采集緩存模块的 最大时间戳的日志数据,并进行排序,及存储已排序的日志数据至所述主 緩存模块。
7、 根据权利要求6所述的日志服务器,其特征在于,所述采集緩存模块 包括多个采集緩存子模块,所述日志采集器组包括多个日志釆集器,每个采 集緩存子模块用于存储日志采集器发送的查询的日志数据,每个采集缓存 子模块与每个日志采集器一一对应。
8、 根据权利要求6所述的日志服务器,其特征在于,所述主緩存模块还用于当所述判断模块判断所述主緩存模块的时间戳大于所述采集缓存 模块的最大时间戳时,将所述采集緩存模块的最大时间戳更新为所述主缓 存模块的时间戳。
9、 根据权利要求6所述的日志服务器,其特征在于,所述主緩存模块 的时间戳是当前排序最后的日志数据的日志的时间戳,所述主緩存模块的 时间戳的初始值为查询的时间段的上限值。
10、 根据权利要求6所述的日志服务器,其特征在于,所述判断模块还用于判断排序后的日志数据的数据条数是否满足查询条数;所述查询模块还用于当所述判断模块判断排序后的日志数据的数据条 数不满足查询条数时,发送查询请求至所述最大时间戳对应的日志采集器 以获取剩余条数的日志数据。
全文摘要
本发明实施方式公开了一种日志的获取方法,包括接收多个日志采集器发送的日志数据,所述日志数据包括日志和日志的时间戳;存储接收到的日志数据至多个缓冲区;判断存储区的时间戳是否大于所述多个缓冲区的最大时间戳;若判断存储区的时间戳大于缓冲区的最大时间戳,获取大于等于所述多个缓冲区的最大时间戳的日志数据,并进行排序存储。本发明实施方式还提供日志服务器,以保证日志数据可以根据时间顺序进行排列,从而可以使用户准确获得想要的日志数据。
文档编号H04W24/00GK101534213SQ20091005890
公开日2009年9月16日 申请日期2009年4月9日 优先权日2009年4月9日
发明者张锞斌 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1