管理日志的方法、装置和存储介质与流程

文档序号:17641301发布日期:2019-05-11 00:41阅读:152来源:国知局
管理日志的方法、装置和存储介质与流程
本发明涉及管理日志的方法、装置和存储介质。
背景技术
:kubernetes(k8s)是一种容器管理系统,越来越多的应用将通过kubernetes以容器的方式在开发、测试和生产环境中运行。kubernetes让管理大规模的容器变得容易,但是它也有很陡峭的学习曲线。为了解决kubernetes的管理问题,目前有很多的产品和服务推出:aws、azure、google、ucloud、阿里云、腾讯云等主流公有云提供的是基于kubernetes的容器服务。无论你采用何种方式管理基于kubernetes的容器集群,一个基础的需求是:当出现问题的时候,要有有效的容器日志分析功能,帮助快速定位问题的根源,发现数据价值,提高工作效率。面对像kubernetes这样的基础架构,整个容器集群上面运行着指数级增长的容器应用,容器日志必须要做集中处理和打标签才能有效分析。目前,针对kubernetes的日志收集有许多种开源方案,kubernetes官方提供了一个elasticsearch附加组件来实现容器集群的日志管理。另外,还有一种基于filebeat来自动收集kubernetes管理的容器的日志的分析系统,通过运行在节点上的filebeat收集日志,并汇总到统一的redis集群中。然而,上述的日志解决方案都是基于单用户需求的,并没有考虑到kubernetes可以是面向多个不同用户的,如果用户想自定义日志服务,做日志数据挖掘、监测日志,或者使用不同的可视化日志工具,那么上述的日志解决方案都不能满足用户的需求。同时上述日志解决方案都没有做日志监测,没有通知kubernetes管理员的机制,这将给kubernetes系统的稳定性带来风险。技术实现要素:本发明提供一种管理日志的方法,该方法包括:采集步骤,采集多个容器的多个日志和与所述多个日志分别一一对应的多个第一标签,每个第一标签包含多个标签项;过滤步骤,对所述多个日志中的每个日志的所述第一标签项进行过滤,得到所述多个日志和与所述多个日志分别一一对应的多个第二标签,每个第二标签包含所述多个标签项中的部分标签项;自定义步骤,根据自定义标签项,从所述多个日志中取出所述第二标签包含所述自定义标签项的部分日志。其中,所述多个标签项包括管理所述多个容器的系统的一个以上的系统标签项以及用户添加的一个以上的用户标签项。其中,所述部分标签项是所述用户关心的标签项,包括所述一个以上的用户标签项和所述一个以上的系统标签项中的部分系统标签项。其中,所述过滤步骤进一步包括:根据所述第二标签中的预定标签项,对所述多个日志进行分类,得到分类后的多个日志。其中,所述方法进一步包括:存储步骤,存储所述分类后的多个日志。其中,所述方法进一步包括:监测步骤,对存储的所述分类后的多个日志进行监测,当监测到预定出错条件时,发出预警。本发明还提供一种管理日志的装置,该装置包括多个容器并且包括:一个以上的采集单元,采集所述多个容器的多个日志和与所述多个日志分别一一对应的多个第一标签,每个第一标签包含多个标签项;过滤单元,对所述多个日志中的每个日志的所述第一标签项进行过滤,得到所述多个日志和与所述多个日志分别一一对应的多个第二标签,每个第二标签包含所述多个标签项中的部分标签项;自定义单元,根据自定义标签项,从所述多个日志中取出所述第二标签包含所述自定义标签项的部分日志。其中,所述多个标签项包括管理所述多个容器的系统的一个以上的系统标签项以及用户添加的一个以上的用户标签项。其中,所述部分标签项是所述用户关心的标签项,包括所述一个以上的用户标签项和所述一个以上的系统标签项中的部分系统标签项。其中,所述过滤单元根据所述第二标签中的预定标签项,对所述多个日志进行分类,得到分类后的多个日志。其中,所述装置进一步包括:存储单元,存储所述分类后的所述多个日志。其中,所述装置进一步包括:监测单元,对存储的所述分类后的所述多个日志进行监测,当监测到预定出错条件时,发出预警。其中,所述一个以上的采集单元中每个采集单元采集与其处于同一物理机中的容器的日志和标签。本发明还提供一种非易失性存储介质,在所述非易失性存储介质上存储有管理日志的程序,所述程序被计算机执行以实现管理日志的方法,该程序包括:采集指令,采集多个容器的多个日志和与所述多个日志分别一一对应的多个第一标签,每个第一标签包含多个标签项;过滤指令,对所述多个日志中的每个日志的所述多个标签项进行过滤,得到所述多个日志和与所述多个日志分别一一对应的多个第二标签,每个第二标签包含所述多个标签项中的部分标签项;自定义指令,根据自定义标签项,从所述多个日志中取出所述部分标签项包含所述自定义标签项的部分日志。通过本发明,不同的用户可以通过自定义的方式获取自定义日志服务,同时还可以确保系统的稳定性。附图说明图1是根据本发明第一实施例的管理日志的装置的结构图;图2是根据本发明第一实施例的管理日志的方法的流程图;图3是根据本发明第二实施例的管理日志的装置的结构图;图4是根据本发明第二实施例的管理日志的方法的流程图。具体实施方式下面结合附图,对本发明的实施例进行详细说明。第一实施例图1是根据本发明第一实施例的管理日志的装置1a的结构图。如图1所示,该装置1a包括多个容器101a、101b、101c、一个以上的采集单元102a、102b、过滤单元103和自定义单元104。为了示例,图1中只显示了容器101a、101b、101c和采集单元102a、102b,但是容器和采集单元的个数可以是任意个,而不受限制。本例中,容器101a、101b和采集单元102a位于同一台物理机(例如,图未视的物理机a)中,容器101c和采集单元102b位于同一台物理机(例如,图未视的物理机b)中。图2是根据本发明第一实施例的管理日志的方法的流程图,下面结合图1和图2具体说明本发明的第一实施例。在采集步骤s21,采集单元102a、102b采集容器101a、101b、101c的3个日志loga、logb、logc和与3个日志分别一一对应的3个第一标签ma、mb、mc,每个第一标签包含多个标签项。其中,每个采集单元采集与其在同一物理机上的容器的日志和标签。例如,采集单元102a采集与其在同一物理机上的容器101a的日志loga、第一标签ma以及容器102b的日志logb、第一标签mb;采集单元102b采集与其在同一物理机上的容器101c的日志logc、第一标签mc。其中,每个第一标签包含多个标签项,多个标签项包括管理容器101a、101b、101c的系统的一个以上的系统标签项以及用户添加的一个以上的用户标签项。该系统例如是现有的k8s系统,一个以上的系统标签项例如是命名空间(namespace)、时间等等,一个以上的用户标签项例如是应用名称等等。其中,该装置1a还包括应用程序接口服务器(apiserver)107,在apiserver107上存储有与每个容器的标识符(id)对应的第一标签。采集单元102a采集容器101a的日志loga、ida以及容器102b的日志logb、idb,采集单元102b采集容器101c的日志logc、idc。采集单元102a将ida、idb发送给apiserver107,并从apiserver107获取与ida、idb分别对应的第一标签ma、mb。类似地,采集单元102b将idc发送给apiserver107,并从apiserver107获取与idc对应的第一标签mc。在过滤步骤s22,过滤单元103对3个日志loga、logb、logc中的每个日志的第一标签ma、mb、mc进行过滤,得到3个日志loga、logb、logc和与这3个日志分别一一对应的3个第二标签ma’、mb’、mc’,每个第二标签包含上述多个标签项中的部分标签项。其中,部分标签项是用户关心的标签项,包括一个以上的用户标签项和一个以上的系统标签项中的部分系统标签项。这里,用户关心的标签项可以是满足用户预设条件的标签项,例如,用户关心的标签项包括命名空间(系统标签项之一)以及用户添加的所有用户标签项。也就是说,3个第二标签ma’、mb’、mc’中的每个第二标签包含命名空间以及所有用户标签项。在过滤步骤s22中,过滤单元103将所有采集单元102a、102b采集的3个日志loga、logb、logc及其各自的3个第一标签ma、mb、mc汇聚在一起,并对3个第一标签ma、mb、mc进行过滤,得到3个日志loga、logb、logc以及各自的3个第二标签ma’、mb’、mc’。接着,在自定义步骤s23,自定义单元104根据自定义标签项,从3个日志中取出第二标签包含该预定标签项的部分日志。该自定义标签项例如可以被用户预先输入并存储在自定义单元104中,例如,该自定义标签项是应用名称a,用户想要取出带有第二标签中包含应用名称a的日志。例如,loga的第二标签ma’中包含应用名称a,那么就可以从3个日志loga、logb、logc中取出部分日志loga。这里,不同的用户可以根据自己的需求来自定义该自定义标签项,使得不同的用户可以获取自己想要的一些日志。经过步骤s23取出的部分日志可以被发送给各自的用户,用于后续处理,例如日志分析、日志数据挖掘等等。通过本发明,用户可以通过自定义的方式获取自定义日志服务,从而进行日志数据挖掘、日志分析等等。第二实施例图3是根据本发明第二实施例的管理日志的装置1b的结构图,该装置1b包括图1中的装置1a中的容器101a、101b、101c、采集单元102a、102b、过滤单元103和自定义单元104,还包括存储单元105和监测单元106。图4是根据本发明第二实施例的管理日志的方法的流程图,下面结合图3和图4具体说明本发明的第二实施例。在采集步骤s21,与第一实施例相同,采集单元102a采集与其在同一物理机上的容器101a的日志loga、第一标签ma以及容器102b的日志logb、第一标签mb;采集单元102b采集与其在同一物理机上的容器101c的日志logc、第一标签mc。其中,该装置1b也包括图1a中的应用程序接口服务器(apiserver)107,在apiserver107上存储有与每个容器的标识符(id)对应的第一标签。采集单元102a采集容器101a的日志loga、ida以及容器102b的日志logb、idb,采集单元102b采集容器101c的日志logc、idc。采集单元102a将ida、idb发送给apiserver107,并从apiserver107获取与ida、idb分别对应的第一标签ma、mb。类似地,采集单元102b将idc发送给apiserver107,并从apiserver107获取与idc对应的第一标签mc。在过滤步骤s22,与第一实施例相同,过滤单元103将所有采集单元102a、102b采集的3个日志loga、logb、logc及其各自的3个第一标签ma、mb、mc汇聚在一起,并对3个第一标签ma、mb、mc进行过滤,得到3个日志loga、logb、logc以及各自的3个第二标签ma’、mb’、mc’。另外,在第二实施例中,过滤单元103还根据第二标签ma’、mb’、mc’中的预定标签项,对3个日志进行分类,得到分类后的3个日志。例如,预定标签项是第二标签包含的部分标签项中的命名空间,根据命名空间对3个日志进行分类。例如,loga的命名空间为ns1,logb和logc的命名空间为ns2,得到分类后的3个日志,如表1所示。表1命名空间日志ns1logans2logb,logc在存储步骤s24,存储单元105存储分类后的3个日志。也就是说,根据表1,可以按照命名空间对3个日志进行分类存储,便于后续分类查看、搜索等等。接着,在监测步骤s25,监测单元对存储的分类后的3个日志进行监测,当监测到预定出错条件时,发出预警。其中,预定出错条件例如是日志中的某个标签项中出现了error。例如,当监测到loga中的时间标签项中出现了error,那么监测单元106就发出预警,并提示管理容器的系统(例如k8s系统)的管理员,从而确保该系统的稳定性。另外,在步骤s23,与第一实施例相同,自定义单元104根据自定义标签项,从3个日志中取出第二标签包含该自定义标签项的部分日志。例如,该自定义标签项是应用名称a,用户想要取出带有第二标签中包含应用名称a的日志。例如,loga的第二标签ma’中包含应用名称a,那么就可以从3个日志loga、logb、logc中取出部分日志loga。如此,不同的用户可以根据自己的需求自定义该自定义标签项,使得不同的用户可以获取自己想要的一些日志。利用本发明,用户不仅可以通过自定义的方式获取自定义日志服务,还可以确保管理容器的系统的稳定性。较佳的,该装置1b还包括图未视的显示单元,用于显示存储单元105中存储的分类后的多个日志。该显示单元可以是液晶显示器等等,而不受限制。本发明还提供一种非易失性存储介质,在所述非易失性存储介质上存储有管理日志的程序,所述程序被计算机执行以实现管理日志的方法,该程序包括:采集指令,采集多个容器的多个日志和与所述多个日志分别一一对应的多个第一标签,每个第一标签包含多个标签项;过滤指令,对所述多个日志中的每个日志的所述多个标签项进行过滤,得到所述多个日志和与所述多个日志分别一一对应的多个第二标签,每个第二标签包含所述多个标签项中的部分标签项;自定义指令,根据自定义标签项,从所述多个日志中取出所述部分标签项包含自定义标签项的部分日志。虽然经过对本发明结合具体实施例进行描述,对于本领域的技术技术人员而言,根据上文的叙述后作出的许多替代、修改与变化将是显而易见。因此,当这样的替代、修改和变化落入附后的权利要求的精神和范围之内时,应该被包括在本发明中。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1