日志数据处理方法和装置与流程

文档序号:11829895阅读:257来源:国知局
日志数据处理方法和装置与流程

本发明涉及信息处理技术,尤其涉及一种日志数据处理方法和装置。



背景技术:

在信息技术领域,利用日志来监视信息设备运行状况,是目前比较普遍的手段。

现有的日志数据处理流程一般是,收集信息设备运行时产生的日志,转换成预定的格式存储在数据库中。每隔一段时间,由装载有处理算法的报告引擎读取数据库中预定的格式的日志,得到日志数据处理结果。这种日志数据处理包括日志数据诊断、日志数据预测等。由于日志数据处理需要每隔一段时间进行,保证不了日志数据处理的实时性。



技术实现要素:

有鉴于此,本发明的一个实施例解决的问题之一是提高日志数据处理的实时性。

根据本发明的一个实施例,提供了一种日志数据处理方法,包括:实时收集来自多个源的日志数据;按照实时收集的日志数据所属的源,将收集的日志数据分至与源对应的内存队列中;通过实时将与源对应的内存队列中的日志数据切成日志数据切片,对切成的日志数据切片采用批处理,对批处理的结果进行汇总来获得日志数据处理结果。

可选地,该日志数据处理方法包括:通知所述日志数据处理结果。

可选地,通知所述日志数据处理结果的步骤包括:将所述日志数据处理结果存储在云存储器上供用户访问。

可选地,通知所述日志数据处理结果的步骤包括:将所述日志数据处理结果发送到iOS操作系统的用户的通知中心,由该通知中心通知到iOS操作系统的用户。

可选地,该日志数据处理方法还包括:判断与源对应的内存队列中的日志数据是需要实时处理还是不需要实时处理的。所述通过实时将与源对应的内存队列中的日志数据切成日志数据切片,对切成的日志数据切片采用批处理,对批处理的结果进行汇总来获得日志数据处理结果的步骤是响应于判断出与源对应的内存队列中的日志数据是需要实时处理的日志数据才执行的。

可选地,该日志数据处理方法还包括:响应于判断出与源对应的内存队列中的日志数据是不需要实时处理的日志数据,在贮存器中贮存与源对应的内存队列中的日志数据,以便以后对贮存的与源对应的内存队列中的日志数据进行集中式日志数据处理。

可选地,该日志数据处理方法还包括:在贮存器中贮存与源对应的内存队列中的日志数据,以便以后对贮存的与源对应的内存队列中的日志数据进行集中式日志数据处理。

可选地,对切成的日志数据切片采用批处理、以及对批处理的结果进行汇总采用机器学习方法。

可选地,机器学习方法包括:将切成的日志数据切片作为待处理的日志数据,分别发送到机器学习网络的底层节点,其中机器学习网络的底层节点接收待处理的日志数据,机器学习网络的顶层节点输出日志数据处理结果。

可选地,所述日志数据处理方法是日志数据诊断方法或日志数据预测方法。

根据本发明的一个实施例,提供了一种日志数据处理装置,包括:收集单元,被配置为实时收集来自多个源的日志数据;队列形成单元,被配置为按照实时收集的日志数据所属的源,将收集的日志数据分至与源对应的内存队列中;日志数据处理结果获得单元,被配置为通过实时将与源对应的内存队列中的日志数据切成日志数据切片,对切成的日志数据切片采用批处理,对批处理的结果进行汇总来获得日志数据处理结果。

可选地,该日志数据处理装置包括:通知单元,被配置为通知所述日志数据处理结果。

可选地,通知单元被配置为:将所述日志数据处理结果存储在云存储器上供用户访问。

可选地,通知单元被配置为:将所述日志数据处理结果发送到iOS操作系统的用户的通知中心,由该通知中心通知到iOS操作系统的用户。

可选地,该日志数据处理装置还包括:判断单元,被配置为判断与源对应的内存队列中的日志数据是需要实时处理还是不需要实时处理的;且所述日志数据处理结果获得单元被配置为响应于判断出与源对应的内存队列中的日志数据是需要实时处理的日志数据,通过实时将与源对应的内存队列中的日志数据切成日志数据切片,对切成的日志数据切片采用批处理,对批处理的结果进行汇总来获得日志数据处理结果。

可选地,该日志数据处理装置还包括:第一批量处理单元,被配置为响应于判断出与源对应的内存队列中的日志数据是不需要实时处理的日志数据,在贮存器中贮存与源对应的内存队列中的日志数据,以便以后对贮存的与源对应的内存队列中的日志数据进行集中式日志数据处理。

可选地,该日志数据处理装置还包括:第二批量处理单元,被配置为在贮存器中贮存与源对应的内存队列中的日志数据,以便以后对贮存的与源对应的内存队列中的日志数据进行集中式日志数据处理。

可选地,对切成的日志数据切片采用批处理、以及对批处理的结果进行汇总采用机器学习方法。

可选地,机器学习方法包括:将切成的日志数据切片作为待处理的日志数据,分别发送到机器学习网络的底层节点,其中机器学习网络的底层节点接收待处理的日志数据,机器学习网络的顶层节点输出日志数据处理结果。

可选地,所述日志数据处理方法是日志数据诊断装置或日志数据预测装置。

由于本发明实施例不是将实时收集的日志数据放到数据库中以后处理,而且直接在内存中为每个日志数据源维护一个内存队列,实时地从内存队列中取日志数据,切片,对每个日志数据切片采用批处理,并对批处理结果汇总,这样,就实现了一边实时收集日志数据,另一边就实时得到了日志数据处理结果,提高了日志数据处理的实时性,同时也避免了在数据量非常大的情况下采用数据库存储、事后处理的方式占用大量存储、计算空间的硬件瓶颈问题。

附图说明

本发明的其它特点、特征、优点和益处通过以下结合附图的详细描述将变得更加显而易见。

图1表示根据本发明一个实施例的云计算环境。

图2是根据本发明的一个实施例的日志数据处理方法的流程图。

图3是根据本发明的另一个实施例的日志数据处理方法的流程图。

图4是根据本发明的另一个实施例的日志数据处理方法的流程图。

图5是根据本发明的另一个实施例的日志数据处理方法的流程图。

图6是根据本发明的另一个实施例的日志数据处理方法的具体实施的一个例子的示意图。

图7是根据本发明的另一个实施例的日志数据处理方法的具体实施的另一个例子的示意图。

图8是根据本发明的一个实施例的日志数据处理装置的框图。

图9是根据本发明的另一个实施例的日志数据处理装置的框图。

图10是根据本发明的另一个实施例的日志数据处理装置的框图。

图11是根据本发明的另一个实施例的日志数据处理装置的框图。

图12是根据本发明的一个实施例的日志数据处理设备的结构图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。

首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。

现在参考图1,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云节点 10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图1显示的各类计算设备54A-N仅仅是示意性的,云节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

图2是根据本发明的一个实施例的日志数据处理方法1的流程图。

日志是信息设备或工业设备在运行时自动记录的表示运行状态的信息或运行时产生的数据,它包括出错消息、运行数据、使用数据等。信息设备是信息网络中用于交换、处理信息的设备,如通信网络中的计算机节点。工业设备是工业中使用的设备,如机床、马达等。出错消息是信息设备或工业设备出错时自动进行的错误类型、错误原因、错误时间等。例如用户用计算机上网时突然无法访问网页,其错误类型是无法访问网页,错误原因是目前Wifi信号较弱、错误时间是无法访问网页的开始时间。运行数据是信息设备或工业设备运行时自动记录的与运行有关的数据,例如数控机床在运行时要测量机床上的待加工零件的一些参数从而决定机床运行时的一些运行参数,此时测量的待加工零件的参数和根据待加工零件的参数决定的运行参数,都是运行时产生的运行数据。使用数据是指示信息设备或工业设备使用状况的数据,例如监视到的使用人、使用时间、地点等。日志是以条为单位产生的,例如机床出错,就新产生一条包括错误类型、错误原因等的日志。

日志数据是对产生的日志的总称,它不是以条为单位的。

日志数据处理包括日志数据诊断或日志数据预测等。日志数据诊断是指根据日志数据分析产生日志的信息设备或工业设备是否发生了故障。日志数据预测是指根据以前和当前的日志数据预测产生日志的信息设备或工业设备以后会产生的日志,从而预测产生日志的信息设备或工业设备以后的运行状况,以便为其合理安排资源等。

在步骤410中,实时收集来自多个源的日志数据。

源是指日志数据的来源。它可以是一个信息设备或一个工业设备,也可以是多个信息设备或工业设备的集合,例如将机床和为机床供电的马达合起来作为一个源。将一个信息设备或一个工业设备作为一个源,收集产生的开 销就会比较大。因此,可以将多个信息设备或工业设备的集合作为一个源,在这个源中的多个信息设备或工业设备产生的日志发送到一个统一的收集入口,就可以从该收集入口实时收集来自多个源的日志数据。在这种情况下,在日志数据中有产生其的信息设备或工业设备的标识。

例如,图6示出了四个源801-804,例如每个源分别是一个机床及为其供电的马达。

在一个实施例中,可以使用例如apache公司的flume和sqoop两个开发源代码应用来实时收集来自多个源的日志数据。

在步骤420中,按照实时收集的日志数据所属的源,将收集的日志数据分至与源对应的内存队列中。

例如,在图6中,由于有四个源801-804,为四个源801-804分别维护与其对应的内存队列811-814。当实时收集到来自源801的一条日志后,将该条日志分至与源801对应的内存队列811中。当实时收集到来自源802的一条日志后,将该条日志分至与源802对应的内存队列812中。以此类推。

按照实时收集的日志数据所属的源将收集的日志数据分至与源对应的内存队列中例如可以通过一种叫作kafka的中间件产品实现。

该内部队列实际上是为每个源分别维护的缓存。它例如遵循先进先出法。在从内部队列中取日志进行后续处理时,先从最先进入内部队列的日志开始取,从内部队列中取走的日志在内存中就不存在了。因此,本发明实施例不用存储器或数据库存储日志而只使用内存的方式,大大降低了日志数据的存储和处理开销。

在步骤430中,通过实时将与源对应的内存队列中的日志数据切成日志数据切片,对切成的日志数据切片采用批处理,对批处理的结果进行汇总来获得日志数据处理结果。

日志数据切片是若干条日志组成的集合。

可以按照进入内存队列的先后顺序对内存队列中的日志数据切片。例如,在与源1对应的内存队列中目前有10条日志,按进入内存队列的先后顺序分别为日志1、日志2……日志10。对日志数据切片的处理是进行图1中云计算环境50中的云节点10进行的。假设云计算环境50中目前可以用于对日志数据切片进行底层处理的云节点10有5个,即第一至第五云节点。可以将日志1、2作为一个日志数据切片发送给第一云节点,将日志3、4作 为一个日志数据切片发送给第二云节点,将日志5、6作为一个日志数据切片发送给第三云节点,将日志7、8作为一个日志数据切片发送给第四云节点,将日志9、10作为一个日志数据切片发送给第五云节点。

可以按照日志的类型对内存队列中的日志数据切片。例如,在与源1对应的内存队列中目前有10条日志,有2条出错消息日志、5条运行数据日志、3条使用数据日志。假设云计算环境50中目前可以用于对日志数据切片进行底层处理的云节点10有4个,即第一至第四云节点。可以将2条出错消息日志作为一个日志数据切片发送给第一云节点,将5条运行数据日志分成两个日志数据切片分别发送给第二、第三云节点,将3条使用数据日志发送给第四云节点。

批处理即成批的处理,它是将不同的日志数据切片发送给不同的处理节点,各不同的处理节点就可以并行处理这些不同的日志数据切片,在处理完后将各不同的处理节点的处理结果汇总。由于它不用等到前一个日志数据切片处理完才开始处理下一个日志数据切片,它提高了日志数据处理的效率。前述将内存队列中的10条日志分别分成5或4个日志数据切片发送给5或4个用于底层处理的云节点并行处理,实际上就是一种批处理。

汇总是指用于底层处理的云节点处理日志数据切片后,将处理结果上报到用于上一层处理的云节点,用于上一层处理的云节点处理后再将其处理结果上报到用于更上一层处理的云节点,直到上报到用于最顶层处理的云节点,由用于最顶层处理的云节点给出处理结果。

图6和9分别输出了步骤430具体执行的两个例子。

在图6中,源801是机床1及为其供电的马达1,源802是机床2及为其供电的马达2,源803是机床3及为其供电的马达3,源804是机床4及为其供电的马达4。内存队列811-814是分别与源801-804对应的内存队列。云节点821-835各自相当于图1云计算环境50中的云节点10。按照日志的类型对内存队列中的日志数据切片。例如,在内存队列811中,将机床1及为其供电的马达1产生的出错消息日志分到一个日志数据切片中发送到云节点821,将机床1及为其供电的马达1产生的运行数据日志分到一个日志数据切片中发送到云节点822,将机床1及为其供电的马达1产生的使用数据日志分到一个日志数据切片中发送到云节点823。云节点821-823按照预置的算法分别对出错消息、运行数据、使用数据进行初步分析,将各自的初步 分析结果都发送给云节点826-827。云节点826按照阈值的算法负责对机床1有关的出错消息、运行数据、使用数据进行综合分析。云节点827按照阈值的算法负责对马达1有关的出错消息、运行数据、使用数据进行综合分析。云节点826-827分别将对机床1和马达1的出错消息、运行数据、使用数据的综合分析结果发送到云节点831。云节点831按照阈值的算法对云节点826-827的对机床1和马达1的出错消息、运行数据、使用数据的综合分析结果进行综合分析,得到对机床1和马达1的整体是否出现故障的诊断结果。对于内存队列812-814,可以采取类似的处理。

在图7中,对切成的日志数据切片采用批处理、以及对批处理的结果进行汇总采用机器学习方法。机器学习方法目前已有成熟技术。

将切成的日志数据切片作为待处理的日志数据,分别发送到机器学习网络的底层节点836-840,其中机器学习网络的底层节点836-840接收待处理的日志数据,机器学习网络的顶层节点847输出日志数据处理结果。云节点836-847构成一个机器学习网络。云节点836-847各自相当于图1云计算环境50中的云节点10。在图7中,云节点836-840构成机器学习网络的第一层L1,它们从各自的输入数据中提取出各自一方面的特征(该特征可能是抽象的,不具有现实意义)作为输出结果,向机器学习网络的第二层L2的所有云节点841-844都发送。云节点841-844的每一个接收到来自第一层的所有云节点836-840的输出结果后,对来自第一层的所有云节点836-840的输出结果再综合提取某一方面的特征(该特征可能是抽象的,不具有现实意义)作为输出结果,向机器学习网络的第三层L3的所有云节点845-846都发送。以此类推,直到机器学习网络的第四层L4的云节点847输出其综合提取的特征,作为最终的日志数据处理结果。该机器学习网络是事先用大量日志数据切片的样本训练成的,使得在输入任何日志数据切片后,能够自适应地产生对于其的日志数据处理结果,如日志数据诊断结果或日志数据预测结果。在图7中,源801是机床1及为其供电的马达1,源802是机床2及为其供电的马达2,源803是机床3及为其供电的马达3,源804是机床4及为其供电的马达4。内存队列811-814是分别与源801-804对应的内存队列。目前内存队列811中例如有10条日志,即日志1-10。按照进入内存队列的先后顺序对内存队列中的日志数据切片。例如,将日志1、2作为一个日志数据切片发送给云节点836,将日志3、4作为一个日志数据切片发送给 云节点837,将日志5、6作为一个日志数据切片发送给云节点838,将日志7、8作为一个日志数据切片发送给云节点839,将日志9、10作为一个日志数据切片发送给云节点840。在每个日志数据切片中,可能有出错消息日志,也可能有运行数据日志,也可能有使用数据日志。云节点836-847构成的机器学习网络对这些日志数据切片进行处理,得到最终的日志数据处理结果,例如对机床1和马达1的整体是否出现故障的诊断结果。对于内存队列812-814,可以采取类似的处理。

图3示出了根据本发明另一个实施例的日志数据处理方法4的流程图。与图2相比,图3还包括步骤440,即通知所述日志数据处理结果。

通知所述日志数据处理结果可以采用直接向需要该日志数据处理结果的用户发邮件、短信、或直接显示在该用户的专用设备上的方式。需要该日志数据处理结果的用户例如是,在上述源是机床及为其供电的马达的情况下,机床和马达的维护人员。

通知所述日志数据处理结果的一种优选的方式是,将所述日志数据处理结果存储在云存储器880上供用户访问。这样做的好处是,使众多用户能够共享该日志数据处理结果,提高该日志数据处理结果利用的广泛性。例如,在上述源是机床及为其供电的马达的情况下,可能不仅是该机床和马达的维护人员需要该日志数据处理结果,可能该机床和马达所在单位的所有管理层、以及可能会使用该机床和马达的所有工人,都需要该日志数据处理结果。如果逐一去通知,通知效率非常低。存储在云存储器880上的方式,提高了通知效率。

通知所述日志数据处理结果的另一种优选的方式是,将所述日志数据处理结果发送到iOS操作系统的用户的通知中心881,由该通知中心通知到iOS操作系统的用户890。目前,使用iOS操作系统的终端越来越多。通知中心是iOS5中引入的用于应用的通知的中心集合设备。它不用在各用户的终端上安装任何应用。只要将消息通知到iOS操作系统的用户的通知中心,通知中心就会自动将该消息通知到iOS操作系统的各用户。利用iOS操作系统的用户的通知中心的这一特点,可以提高本发明日志数据处理结果被利用的广泛性。

图4示出了根据本发明另一个实施例的日志数据处理方法4的流程图。与图2相比,图4增加了步骤425,即判断与源对应的内存队列中的日志数 据的类型是需要实时处理的日志数据还是不需要实时处理的日志数据。如前所述,日志包括出错消息日志、运行数据日志、使用数据日志。无论是出错消息日志、运行数据日志,还是使用数据日志都各自有一部分需要实时处理,即必须当时给予关注,另一部分不需要实时处理,即事后处理仍然来得及。哪些日志数据需要实时处理,哪些日志数据不需要实时处理,是事先由用户规定并以程序的形式固化的。

步骤430是响应于判断出与源对应的内存队列中的日志数据是需要实时处理的日志数据才执行的。

图4还增加了步骤431,即响应于判断出与源对应的内存队列中的日志数据是不需要实时处理的日志数据,在贮存器中贮存与源对应的内存队列中的日志数据,以便以后对贮存的与源对应的内存队列中的日志数据进行集中式日志数据处理。

集中式日志数据处理即现有技术中,每隔一段时间,由装载有处理算法的报告引擎读取贮存器中存储的日志数据,得到日志数据处理结果的方式。由于日志数据处理需要每隔一段时间进行,保证不了日志数据处理的实时性。但由于本实施例将日志数据分成了需要实时处理的日志数据和不需要实时处理的日志数据,只有对于不需要实时处理的日志数据才采用这种方式,因此综合利用了两种日志数据处理方式的优点。

另外,本发明实施例还可以如图5那样,省略步骤425。也就是说,对所有的日志数据都即采用本发明的实时处理的方式,又采用如现有技术那样存储后集中处理的方式。在步骤432中,在贮存器中贮存与源对应的内存队列中的日志数据,以便以后对贮存的与源对应的内存队列中的日志数据进行集中式日志数据处理。

图5的优点是,即满足了日志数据处理实时性的要求,又满足了事后查找日志数据或进行除了已经进行过的实时的日志数据处理,事后进行另外的日志数据处理的需要。

如图8所示,根据本发明的一个实施例的一种日志数据处理装置10,包括:收集单元1010,被配置为实时收集来自多个源的日志数据;队列形成单元1020,被配置为按照实时收集的日志数据所属的源,将收集的日志数据分至与源对应的内存队列中;日志数据处理结果获得单元1030,被配置为通 过实时将与源对应的内存队列中的日志数据切成日志数据切片,对切成的日志数据切片采用批处理,对批处理的结果进行汇总来获得日志数据处理结果。

可选地,如图9所示,该日志数据处理装置还包括:通知单元1040,被配置为通知所述日志数据处理结果。

可选地,通知单元1040被配置为:将所述日志数据处理结果存储在云存储器上供用户访问。

可选地,通知单元1040被配置为:将所述日志数据处理结果发送到iOS操作系统的用户的通知中心,由该通知中心通知到iOS操作系统的用户。

可选地,如图10所示,该日志数据处理装置还包括:判断单元1025,被配置为判断与源对应的内存队列中的日志数据是需要实时处理还是不需要实时处理的。所述日志数据处理结果获得单元1030被配置为响应于判断出与源对应的内存队列中的日志数据是需要实时处理的日志数据,通过实时将与源对应的内存队列中的日志数据切成日志数据切片,对切成的日志数据切片采用批处理,对批处理的结果进行汇总来获得日志数据处理结果。

可选地,如图10所示,该日志数据处理装置还包括:第一批量处理单元1031,被配置为响应于判断出与源对应的内存队列中的日志数据是不需要实时处理的日志数据,在贮存器中贮存与源对应的内存队列中的日志数据,以便以后对贮存的与源对应的内存队列中的日志数据进行集中式日志数据处理。

可选地,如图11所示,该日志数据处理装置还包括:第二批量处理单元1032,被配置为在贮存器中贮存与源对应的内存队列中的日志数据,以便以后对贮存的与源对应的内存队列中的日志数据进行集中式日志数据处理。

可选地,对切成的日志数据切片采用批处理、以及对批处理的结果进行汇总采用机器学习方法。

可选地,机器学习方法包括:将切成的日志数据切片作为待处理的日志数据,分别发送到机器学习网络的底层节点,其中机器学习网络的底层节点接收待处理的日志数据,机器学习网络的顶层节点输出日志数据处理结果。

可选地,所述日志数据处理装置是日志数据诊断装置或日志数据预测装置。

图8-11中的各单元可以采用软件、硬件(例如集成电路、FPGA等)、 或软硬件结合的方式实现。

现在参考图12,其示出了按照本发明一个实施例的一种日志数据处理设备14的结构图。如图12所示,日志数据处理设备14可以包括存储器1401和处理器1402。存储器1401可以存储可执行指令。处理器1402可以根据存储器1401所存储的可执行指令,实现图8-11中的各个单元所执行的操作。

此外,本发明实施例还提供一种机器可读介质,其上存储有可执行指令,当所述可执行指令被执行时,使得机器执行处理器1402所实现的操作。

本领域技术人员应当理解,上面所公开的各个实施例,可以在不偏离发明实质的情况下做出各种变形和改变。因此,本发明的保护范围应当由所附的权利要求书来限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1