一种分布式系统及其日志查询方法

文档序号:6492062
一种分布式系统及其日志查询方法
【专利摘要】本发明提供了一种分布式系统及其日志查询方法,该方法包括:控制单元将预设的关键字和时间信息作为参数值输入到预设的日志查询脚本模板,生成日志查询脚本并发送到机器集群;机器集群中机器的日志查询单元依据所述日志查询脚本在存储单元中查询日志,将找到的日志返回给控制单元。根据本发明提供的技术方案,能够实现机器中日志的实时查询。
【专利说明】一种分布式系统及其日志查询方法
【【技术领域】】
[0001]本发明涉及互联网应用领域的搜索技术,尤其涉及一种分布式系统及其日志查询方法。
【【背景技术】】
[0002]目前,在大型的分布式集群中,常常部署有上百台机器,每台机器上部署的程序的日志文件的大小高达几百G甚至更多,在进行系统调试和程序问题分析时,运维人员需要输入关键字,查看机器上程序的日志文件。现有技术中,机器上程序的日志文件的查询方法为:将机器集群中每台机器上的日志文件都拷贝到搭建的存储系统上,存储系统中再建立查询索引供运维人员进行查询。
[0003]目前日志文件的查询方式存在以下问题:
[0004]1、需要搭建一个存储系统,并对海量的日志文件建立索引,因此查询成本较高。
[0005]2、将机器集 群中每台机器上的日志文件都拷贝到搭建的存储系统上将占用大量的传输时间,浪费了大量的时间资源和存储资源。
[0006]3、在存储系统中查询日志时,需要运行索引算法来查询日志,索引算法查询的日志文件多,而且运算时间较长,往往需要几个小时的时间才能得到查询结果,因此查询效率较低。

【发明内容】

[0007]本发明提供了一种分布式系统及其日志查询方法,能够实现机器中日志的实时查询。
[0008]本发明的具体技术方案如下:
[0009]根据本发明一优选实施例,一种分布式系统,包括:控制单元和机器集群;所述机器集群包括一个以上机器,所述机器包括日志查询单元和存储单元;其中,
[0010]控制单元,用于将预设的关键字和时间信息作为参数值输入到预设的日志查询脚本模板,生成日志查询脚本并发送到机器集群;
[0011]日志查询单元,用于依据所述日志查询脚本在存储单元中查询日志,将找到的日志返回给控制单元。
[0012]上述系统中,该系统还包括:
[0013]交互单元,用于接收用户输入的关键字以及日志的时间信息,并将所述关键字和所述时间信息携带在查询请求中发送给控制单元。
[0014]上述系统中,所述日志查询脚本模板包括以下内容:机器集群中机器执行的操作、保存查询结果的文件的文件名前缀、机器中保存日志文件的目录和所述时间信息。
[0015]上述系统中,日志查询单元在查询日志时具体包括:
[0016]对所述日志查询脚本进行解析,依据解析得到的参数在机器的存储单元中找到保存日志文件的目录;[0017]依据日志文件的名称后缀,对所述保存日志文件的目录下的日志文件进行分类;
[0018]依据时间信息在每个类型的日志文件中提取对应时间信息的日志文件;
[0019]依据需要执行的日志查询操作,在提取的日志文件中依据关键字查询对应的日
O
[0020]上述系统中,日志查询单元在将找到的日志返回给控制单元时具体包括:
[0021]依据预设的保存查询结果的文件的文件名前缀创建保存查询结果的文件,将查询到的日志作为查询结果保存到所述保存查询结果的文件中,将所述保存查询结果的文件上报给控制单元。
[0022]上述系统中,
[0023]所述控制单元,还用于接收机器的日志查询单元上报的日志;当预设的等待超时时间到时后,将查询结果通过交互单元显示给用户;所述查询结果包括:机器的标识、日志时间、日志分类和日志的具体内容。
[0024]—种分布式系统的日志查询方法,包括:
[0025]控制单元将预设的关键字和时间信息作为参数值输入到预设的日志查询脚本模板,生成日志查询脚本并发送到机器集群;
[0026]机器集群中机器的日志查询单元依据所述日志查询脚本在存储单元中查询日志,将找到的日志返回给控制单元。
[0027]上述方法中,该方法还包括:
[0028]交互单元接收用户输入的关键字以及日志的时间信息,并将所述关键字和所述时间信息携带在查询请求中发送给控制单元。
[0029]上述方法中,所述日志查询脚本模板包括以下内容:机器集群中机器执行的操作、保存查询结果的文件的文件名前缀、机器中保存日志文件的目录和所述时间信息。
[0030]上述方法中,日志查询单元查询日志的方法为:
[0031]对所述日志查询脚本进行解析,依据解析得到的参数在机器的存储单元中找到保存日志文件的目录;
[0032]依据日志文件的名称后缀,对所述保存日志文件的目录下的日志文件进行分类;
[0033]依据时间信息在每个类型的日志文件中提取对应时间信息的日志文件;
[0034]依据需要执行的日志查询操作,在提取的日志文件中依据关键字查询对应的日
O
[0035]上述方法中,日志查询单元将找到的日志返回给控制单元的方法为:
[0036]日志查询单元依据预设的保存查询结果的文件的文件名前缀创建保存查询结果的文件,将查询到的日志作为查询结果保存到所述保存查询结果的文件中,将所述保存查询结果的文件上报给控制单元。
[0037]上述方法中,该方法还包括:
[0038]控制单元接收机器的日志查询单元上报的日志;
[0039]预设的等待超时时间到时后,控制单元将查询结果通过交互单元显示给用户;所述查询结果包括:机器的标识、日志时间、日志分类和日志的具体内容。
[0040]由以上技术方案可以看出,本发明提供的技术方案具有以下有益效果:
[0041]控制单元对分布式的机器集群采用多进程的并发控制和管理,对每个机器都启动一个单独的进程完成交互控制,能够实现实时的日志查询,使得机器集群的日志实时查询的完成时间与机器集群的规模无关,无论机器集群的规模大小,查询时间都是取决于查询时间最久的机器,从而具有良好的扩展性。
【【专利附图】

【附图说明】】
[0042]图1是本发明实现分布式系统的优选实施例的结构示意图;
[0043]图2是本发明实现分布式系统的日志查询方法的优选实施例的流程示意图。
【【具体实施方式】】
[0044]本发明的基本思想是:控制单元将预设的关键字和时间信息作为参数值输入到预设的日志查询脚本模板,生成日志查询脚本并发送到机器集群;机器集群中机器的日志查询单元依据所述日志查询脚本在存储单元中查询日志,将找到的日志返回给控制单元。
[0045]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0046]本发明提供一种分布式系统,图1是本发明实现分布式系统的优选实施例的结构示意图,如图1所示,该分布式系统包括:交互单元10、控制单元11和机器集群;机器集群包括一个以上机器,机器进一步包括日志查询单元12和存储单元13。
[0047]基于上述系统,本发明提供一种分布式系统的日志查询方法,图2是本发明实现分布式系统的日志查询方法的优选实施例的流程示意图,如图2所示,该优选实施例包括以下步骤:
[0048]步骤201,交互单元接收用户输入的关键字和时间信息,并转发给控制单元。
[0049]具体的,交互单元向用户提供输`入框和时间选项,用以接收用户依据查询需求输入的关键字以及需要查询的日志的时间信息,该时间信息可以包括日期和具体时段。
[0050]交互单元将关键字和时间信息携带在查询请求中发送给控制单元;实际应用中,所述交互单元可以为web页面,通过该web页面用户可以输入关键字并选择时间,还可以查看关键字对应的查询结果;所述web页面可以利用超文本预处理语言(ΡΗΡ,ΡΗΡ:HypertextPreprocessor)实现。
[0051]这里,在交互单元中选择需要查询的日志的日期和时间段,能够缩小查询范围,减少查询时间,提高网页响应速度。
[0052]步骤202,控制单元将关键字和时间信息作为参数值输入到预设的日志查询脚本模板,生成日志查询脚本并发送到机器集群。
[0053]具体的,控制单元能够采用多进程并发的控制和管理机制,对机器集群中的一个以上机器进行日志查询控制和管理;当从交互单元收到查询请求后,从查询请求中获取关键字和时间信息。
[0054]控制单元中预设一个以上脚本模板,如,日志查询脚本模板、流量统计脚本模板和磁盘清理脚本模板等;本优选实施例中是以日志查询为例,日志查询脚本模板可以为mcontrol (list, cmd, outfile, errfile, directory, time);其中 list 参数的参数值为机器集群中机器的标识,如机器名、域名或IP地址,控制单元可以从用户预设的hlist文件中读取机器集群中每个机器的标识;cmd参数的参数值为机器集群中机器具体执行的操作,本优选实施例中,cmd参数的参数值表示查询日志操作,cmd参数作为具体的日志查询命令,directory参数和time参数可以在日志查询单元进行日志查询时作为该日志查询命令的输入;0Utfile参数的参数值为保存查询结果的文件的文件名前缀,errfile参数的参数值为保存错误结果的文件的文件名的前缀,directory参数的参数值为机器中保存日志文件的目录,time参数的参数值为用户输入的时间信息。
[0055]用户输入的关键字为字段,控制单元对该字段进行预处理;例如,判断关键字是非法输入还是合法输入;如果关键字为URL,则判断该URL是非法网址还是合法网址,或当URL的长度较长时,对URL进行缩减处理,删除其中的“http等字段。
[0056]控制单元将预处理后的关键字、收到的时间信息和机器的标识作为参数值输入到日志查询脚本模板,生成日志查询脚本,日志查询脚本模板中的其他参数值都是固定的,可以进行统一设置,只有该三个参数值是可变的;控制单元将生成的日志查询脚本发送给机器集群中与日志查询脚本中机器的标识对应的机器,实现将日志查询脚本自动分发部署到分布式集群中的各个机器上,如此,就可以与机器集群中的机器之间建立多个进程和链接,以控制机器启动日志查询任务,实现机器集群中机器上日志的并发查询操作;所述机器集群中包括一个以上机器。
[0057]步骤203,机器的日志查询单元依据日志查询脚本在存储单元中查询日志,将找到的日志返回给控制单元。
[0058]具体的,机器集群中部署有依据控制单元下发的脚本执行操作的实体,本优选实施例是以日志查询为例,该实体为日志查询单元;机器集群中的机器上还部署有存储单元。
[0059]日志查询单元收到控制单元发送的日志查询脚本后,对该日志查询脚本进行解析,将解析得到的参数作为自身的输入参数,首先依据cmd参数确定需要执行的操作是日志查询操作,然后依据directory参数的参数值在机器的存储单元中找到保存日志文件的目录,这里,存储单元中存储有海量的日志文件,这里仅依据配置的保存日志文件的目录,可以快速找到需要查询的日志;日志查询单元依据日志文件的名称后缀,对找到的保存日志文件的目录中的日志文件进行分类,例如分成构建类型、集成类型等;日志查询单元依据解析得到的time参数,在每个类型的日志文件中提取对应time参数中日期和时间段的日志文件,在提取的日志文件中依据解析得到的关键字查询对应的日志;日志查询单元依据outfile参数的参数值创建保存查询结果的文件,然后将查询到的日志作为查询结果保存到该文件中,将保存查询结果的文件上报给控制单元;其中,日志查询单元还会依据errfile参数的参数值创建保存错误结果的文件,正常情况下,该文件是空的,只有异常情况下日志查询单元才会记录日志查询的出错信息,如读日志文件失败等,日志查询单元可以通过保存错误结果的文件将异常情况上报给控制单元。
[0060]本优选实施例中,在日志查询单元查询日志的过程中,控制单元通过监控与每个机器建立的进程的执行状态,来获得并显示每个机器上日志查询单元的查询进度,例如查询是否完成、查询是否出现异常等。
[0061 ] 步骤204,控制单元将找到的日志通过交互单元显示给用户。
[0062]具体的,控制单元接收各个机器的日志查询单元上报的保存查询结果的文件,将查询结果汇总后通过交互单元显示给用户;所述汇总后的查询结果包含机器的标识、日志时间、日志分类及日志的具体内容。[0063]其中,控制单元还可以同时将收到的查询结果保存到本地,每个机器的查询结果可以单独存储在一个文件中。
[0064]这里,可以预先在控制单元中依据查询需求配置等待超时时间,即使存在机器的日志查询单元在等待超时时间内没有上报保存查询结果的文件,控制单元也在等待超时时间到时后向用户显示其他机器的日志查询单元上报的查询结果。
[0065]为实现上述方法,如图1所示,分布式系统中:
[0066]交互单元10,用于接收用户输入的关键字以及日志的时间信息,并将所述关键字和所述时间信息携带在查询请求中发送给控制单元11。
[0067]控制单元11,用于将预设的关键字和时间信息作为参数值输入到预设的日志查询脚本模板,生成日志查询脚本并发送到机器集群。
[0068]日志查询单元12,用于依据所述日志查询脚本在存储单元13中查询日志,将找到的日志返回给控制单元11。
[0069]其中,所述日志查询脚本模板包括以下内容:机器集群中机器执行的操作、保存查询结果的文件的文件名前缀、机器中保存日志文件的目录和所述时间信息。
[0070]其中,日志查询单元12在查询日志时具体包括:
[0071]对所述日志查询脚本进行解析,依据解析得到的参数在机器的存储单元中找到保存日志文件的目录;
[0072]依据日志文件的名称后缀,对所述保存日志文件的目录下的日志文件进行分类;
[0073]依据时间信息在每个类型的日志文件中提取对应时间信息的日志文件;
[0074]依据需要执行的日志查询操作,在提取的日志文件中依据关键字查询对应的日
O
[0075]其中,日志查询单元12在将找到的日志返回给控制单元时具体包括:
[0076]依据预设的保存查询结果的文件的文件名前缀创建保存查询结果的文件,将查询到的日志作为查询结果保存到所述保存查询结果的文件中,将所述保存查询结果的文件上报给控制单元。
[0077]所述控制单元11,还用于接收机器的日志查询单元12上报的日志;当预设的等待超时时间到时后,将查询结果通过交互单元10显示给用户;所述查询结果包括:机器的标识、日志时间、日志分类和日志的具体内容。
[0078]本发明的上述技术方案具有以下有益技术效果:
[0079]1、控制单元对分布式的机器集群采用多进程的并发控制和管理,对每个机器都启动一个单独的进程完成交互控制,能够实现实时的日志查询,使得机器集群的日志实时查询的完成时间与机器集群的规模无关,无论机器集群的规模大小,查询时间都是取决于查询时间最久的机器,从而具有良好的扩展性。例如,对于具有30个机器的机器集群,应用本发明的技术方案实现URL的查询后,单条URL的查询时间是4s左右,以前将日志文件保存到存储系统并建立索引的过程就需要至少一个小时,因此,无法满足实时查询的需求。
[0080]2、分布式系统可以应用于任何分布式集群,如其他文件的查询、流量统计和磁盘清理等,针对不同的分布式系统,只需要对操作执行实体(如日志查询单元)进行升级即可。
[0081]3、不需要创建专门的存储系统并建立索弓丨,因此可以节省带宽资源和存储空间,减少查询成本,提高查询效率。[0082]4、控制单元可以对日志查询单元进行灵活配置,以满足不同的查询需求。
[0083]5、分布式系统的结构简单清晰,由控制单元进行统一控制,具有较高的可行性。
[0084]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种分布式系统,其特征在于,该系统包括:控制单元和机器集群;所述机器集群包括一个以上机器,所述机器包括日志查询单元和存储单元;其中, 控制单元,用于将预设的关键字和时间信息作为参数值输入到预设的日志查询脚本模板,生成日志查询脚本并发送到机器集群; 日志查询单元,用于依据所述日志查询脚本在存储单元中查询日志,将找到的日志返回给控制单元。
2.根据权利要求1所述的系统,其特征在于,该系统还包括: 交互单元,用于接收用户输入的关键字以及日志的时间信息,并将所述关键字和所述时间信息携带在查询请求中发送给控制单元。
3.根据权利要求1所述的系统,其特征在于,所述日志查询脚本模板包括以下内容:机器集群中机器执行的操作、保存查询结果的文件的文件名前缀、机器中保存日志文件的目录和所述时间信息。
4.根据权利要求1所述的系统,其特征在于,日志查询单元在查询日志时具体包括: 对所述日志查询脚本进行解析,依据解析得到的参数在机器的存储单元中找到保存日志文件的目录; 依据日志文件的名称后缀,对所述保存日志文件的目录下的日志文件进行分类; 依据时间信息在每个类型的日志文件中提取对应时间信息的日志文件; 依据需要执行的日志查询·操作,在提取的日志文件中依据关键字查询对应的日志。
5.根据权利要求1所述的系统,其特征在于,日志查询单元在将找到的日志返回给控制单元时具体包括: 依据预设的保存查询结果的文件的文件名前缀创建保存查询结果的文件,将查询到的日志作为查询结果保存到所述保存查询结果的文件中,将所述保存查询结果的文件上报给控制单元。
6.根据权利要求1所述的系统,其特征在于, 所述控制单元,还用于接收机器的日志查询单元上报的日志;当预设的等待超时时间到时后,将查询结果通过交互单元显示给用户;所述查询结果包括:机器的标识、日志时间、日志分类和日志的具体内容。
7.—种分布式系统的日志查询方法,其特征在于,该方法包括: 控制单元将预设的关键字和时间信息作为参数值输入到预设的日志查询脚本模板,生成日志查询脚本并发送到机器集群; 机器集群中机器的日志查询单元依据所述日志查询脚本在存储单元中查询日志,将找到的日志返回给控制单元。
8.根据权利要求7所述的方法,其特征在于,该方法还包括: 交互单元接收用户输入的关键字以及日志的时间信息,并将所述关键字和所述时间信息携带在查询请求中发送给控制单元。
9.根据权利要求7所述的方法,其特征在于,所述日志查询脚本模板包括以下内容:机器集群中机器执行的操作、保存查询结果的文件的文件名前缀、机器中保存日志文件的目录和所述时间信息。
10.根据权利要求7所述的方法,其特征在于,日志查询单元查询日志的方法为:对所述日志查询脚本进行解析,依据解析得到的参数在机器的存储单元中找到保存日志文件的目录; 依据日志文件的名称后缀,对所述保存日志文件的目录下的日志文件进行分类; 依据时间信息在每个类型的日志文件中提取对应时间信息的日志文件; 依据需要执行的日志查询操作,在提取的日志文件中依据关键字查询对应的日志。
11.根据权利要求7所述的方法,其特征在于,日志查询单元将找到的日志返回给控制单元的方法为: 日志查询单元依据预设的保存查询结果的文件的文件名前缀创建保存查询结果的文件,将查询到的日志作为查询结果保存到所述保存查询结果的文件中,将所述保存查询结果的文件上报给控制单元。
12.根据权利要求7所述的方法,其特征在于,该方法还包括: 控制单元接收机器的日志查询单元上报的日志; 预设的等待超时时间到时后,控制单元将查询结果通过交互单元显示给用户;所述查询结果包括:机器的标识、日志时间、 日志分类和日志的具体内容。
【文档编号】G06F17/30GK103853743SQ201210501969
【公开日】2014年6月11日 申请日期:2012年11月29日 优先权日:2012年11月29日
【发明者】王昭 申请人:百度在线网络技术(北京)有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1