发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种自动化日志处理的方法、装置及计算设备。
为解决上述技术问题,本发明实施例采用的一个技术方案是:提供一种自动化日志处理的方法,应用于容器云,所述自动化日志处理的方法包括:接收日志监听指令及日志监听容器配置文件,其中,所述日志监听容器配置文件携带分类存储规则;根据所述日志监听指令及日志监听容器配置文件启动日志监听容器,并且使所述日志监听容器挂载至所述物理机中指定的日志文件夹,以通过所述日志监听容器对日志文件夹中日志文件按所述分类存储规则进行分类存储。
可选的,所述通过所述日志监听容器对日志文件夹中日志文件按所述分类存储规则进行分类存储包括:将所述日志文件夹中日志文件的文件名以其来源的容器的元数据信息进行命名。
可选的,所述方法还包括:所述容器的元数据信息包括命名空间的名字;所述方法还包括:接收用户的登录指令,其中,所述登录指令携带所述用户的用户信息;根据所述用户信息,获取所述用户对应的命名空间;定位包含所述用户对应的命名空间的名字的日志文件,从而得到归属于所述用户的日志,其中,所述命名空间的名字是所述日志文件的文件名中的字段;返回得到的所述用户的日志。
可选的,所述方法还包括:接收日志持久化指令,所述日志持久化指令携带待持久化的日志类型;根据所述日志持久化指令,对所述用户日志进行筛选,得到日志类型与待持久化的日志类型相同的的日志文件;将所述得到的日志文件存储到缓存系统;将所述得到的的日志发送到分布式存储系统中。
可选的,所述将所述满足日志类型的日志发送到分布式存储系统中包括:将所述满足日志类型的日志按照用户及日志类型分类存储在所述分布式存储系统中。
可选的,所述方法还包括:接收所述分布式存储系统返回的确认报文,其中,所述确认报文是所述分布式存储系统各个子系统确认收到所述满足日志类型的日志文件后生成的,所述确认报文包含所述满足日志类型的日志的文件名信息;根据所述确认报文,删除在所述缓存系统中所述满足日志类型的日志文件。
本发明实施例采用的另一技术方案是提供一种自动化日志处理装置,应用于容器云,所述装置包括:第一接收模块:用于接收日志监听指令及日志监听容器配置文件,其中,所述日志监听容器配置文件携带分类存储规则;启动模块:用于根据所述日志监听指令及日志监听容器配置文件启动日志监听容器,并且使所述日志监听容器挂载至所述物理机中指定的日志文件夹,以通过所述日志监听容器对日志文件夹中日志文件按所述分类存储规则进行分类存储。
可选的,所述启动模块包括:命名单元:用于将所述日志文件夹中日志文件的文件名以其来源的容器的元数据信息进行命名。
可选的,所述装置还包括:第二接收模块:用于接收用户的登录指令,其中,所述登录指令携带所述用户的用户信息;获取模块:用于根据所述用户信息,获取所述用户对应的命名空间;定位模块:用于定位包含所述用户对应的命名空间的名字的日志文件,从而得到归属于所述用户的日志,其中,所述命名空间的名字是所述日志文件的文件名中的字段;返回模块:用于返回得到的所述用户的日志。
可选的,所述装置还包括:第三接收模块:用于接收日志持久化指令,所述日志持久化指令携带待持久化的日志类型;筛选模块:用于根据所述日志持久化指令,对所述用户日志进行筛选,得到日志类型与待持久化的日志类型相同的的日志文件;存储模块:用于将所述满足日志类型的日志文件存储到缓存系统;发布模块:用于将所述满足日志类型的日志发送到分布式存储系统中。
可选的,所述发布模块包括存储单元:用于将所述满足日志类型的日志按照用户及日志类型分类存储在所述分布式存储系统中。
可选的,所述装置还包括:第四接收模块:用于接收所述分布式存储系统返回的确认报文,其中,所述确认报文是所述分布式存储系统各个子系统确认收到所述满足日志类型的日志文件后生成的,所述确认报文包含所述满足日志类型的日志的文件名信息;删除模块:用于根据所述确认报文,删除在所述缓存系统中所述满足日志类型的日志文件。
本发明实施例采用的还一技术方案是提供一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行所述的一种自动化日志处理的方法对应的操作。
本发明实施方式采用的又一技术方案是提供一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行所述的一种自动化日志处理的方法对应的操作。
本发明实施例的有益效果是:区别于现有技术的情况,本发明实施例可以实现日志文件以包含其来源的容器的元数据信息命名,并存储在物理集中的指定日志文件夹中,从而以日志文件名对日志进行区分;此外,根据定位包含用户对应的命名空间的名字的日志文件,得到归属于所述用户的日志,实现了日志访问的私密性和安全性;根据日志持久化指令实现日志持久化,保障了日志的安全性;在所有分布式存储系统接收到日志后,将缓存系统中相应的日志删除,减少了日志的冗余。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施例。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1为本发明实施例一种自动化日志处理的方法流程图。如图1所示,该方法包括以下步骤:
步骤S1:接收日志监听指令及日志监听容器配置文件。
在本步骤中,当容器云的运维人员增加物理节点时,集群发现物理节点增加,将自动发送启动日志监听容器指令,并发送日志监听容器配置文件给所述增加的物理节点,其中,所述日志监听容器配置文件携带分类存储规则,所述增加的物理节点接收到所述日志监听指令及日志监听容器配置文件后,执行步骤S2。
步骤S2:根据所述日志监听指令及日志监听容器配置文件启动日志监听容器,并且使所述日志监听容器挂载至所述物理机中指定的日志文件夹,以通过所述日志监听容器对日志文件夹中日志文件按所述分类存储规则进行分类存储。
在本步骤中,通过所述日志监听容器对日志文件夹中日志文件按所述分类存储规则进行分类存储包括:将所述日志文件夹中日志文件的文件名以其来源的容器的元数据信息进行命名。所述日志监听容器挂载所述物理机中指定的日志文件夹,所述容器的元数据信息包括:所要监听的日志文件的文件名的全名或者正则格式、需要持久化的日志类型及需要过滤掉的日志类型等,所述正则格式是用来检索、替换符合某个模式的文本,如检索文件名前缀为“dave”的日志文件;所述需要持久化的日志类型是用户使用某一个软件的时候,产生的软件使用日志需要发送至分布式存储器的日志类型,如运营日志、应用日志等,在配置文件中针对需要持久化的日志,使用日志持久化指令实现,如在配置文件中写入一个SAVE_TO_HDFS,服务器后端在接收到该指令时,就把携带有该指令的日志类型存储在分布式存储系统中。
应理解,所述日志监听容器在进行日志监听时,会针对物理机上的某一应用,监听它的全部类型的日志,在所述全部类型的日志中,需要持久化的日志取决于配置文件中配置的日志类型。
本发明实施例的有益效果在于,本发明实施例可以实现日志以包含元数据信息的命名方式自动化存储在物理机中的一个目录下,从而以日志文件名对日志进行区分,与一些可以实现日志分类存储的技术方案相比较,对比技术方案通过将不同日志类型的日志文件存储在多个目录下,本发明方案将不同日志类型的日志通过日志文件的文件名区分,存储在同一目录下,可以通过日志文件的文件名区分日志,且实现了日志文件的集中存储。
图2示出了本发明另外一个实施例一种自动化日志处理的方法流程图,该实施例与上一实施例相比,不同之处在于,在上一实施例的基础上,本实施例还包含以下步骤:
步骤S3:接收用户的登录指令,其中,所述登录指令携带所述用户的用户信息。
在本步骤中,当用户登录物理机中特定的软件后,物理机后端服务器中存在一个第三方服务,所述第三方服务对接所述用户的登录信息,并对所述用户信息进行认证,认证完成之后,执行步骤S4。
步骤S4:根据所述用户信息,获取所述用户对应的命名空间。
在本步骤中,所述用户信息与所述命名空间存在一对多的映射关系,所述命名空间的名字包含在所述容器的元数据信息中,从而将用户与其具有访问权限的日志建立联系。
步骤S5:定位包含所述用户对应的命名空间的名字的日志文件,从而得到归属于所述用户的日志。
在本步骤中,所述命名空间的名字是所述日志文件的文件名中的一个字段,根据所述命名空间的名字,可以定位到包含所述命名空间名字的日志文件,根据所述命名空间与所述用户建立的对应关系,将所述用户与所述日志文件建立联系,从而实现针对特定的用户,定位用户对应的日志文件,而无法访问其他日志文件。
步骤S6:返回得到的所述用户的日志。
在本发明实施例中,通过用户信息获取所述用户对应的命名空间,命名空间的名字存在于容器的元数据信息中,从而使用户可以访问归属于所述用户的日志,保证了日志访问的私密性和安全性。
图3示出了本发明另外一个实施例一种自动化日志处理的方法流程图,该实施例与上一实施例相比,不同之处在于,在上一实施例的基础上,本实施例还包含以下步骤:
步骤S7:接收日志持久化指令,所述日志持久化指令携带待持久化的日志类型。
在本步骤中,日志监听容器接收日志持久化指令,所述日志持久化指令包含的日志类型具体是用户访问物理机上监听容器监听的软件时,所述软件生成的日志,包括运营日志、系统日志等日志类型。
步骤S8:根据所述日志持久化指令,对所述用户日志进行筛选,得到日志类型与待持久化的日志类型相同的的日志文件。
在本步骤中,所述日志持久化指令包含需要持久化的日志文件类型,所述日志文件类型是所述日志文件的文件名中的一个字段。在步骤S4中,定位到的日志文件包含了用户可以访问的全部日志类型,如用户登录的软件是QQ软件,用户可以访问使用QQ软件期间所有的日志类型,如,运营日志、应用日志等。根据日志持久化信息,从所述所有的日志类型中筛选出满足日志持久化指令要求的日志类型,如日志持久化指令中需要存储的日志类型为运营日志,则将所述运营日志筛选出来,并通过过滤器过滤不符合要求的日志类型。
步骤S9:将所述所述得到的日志文件存储到缓存系统。
在本步骤中,当监听容器中的日志分发系统接收到日志持久化指令后,根据所述日志持久化指令对所述满足日志类型的日志文件进行筛选,并将筛选出来的日志存储到缓存系统。
步骤S10:将所述得到的的日志发送到分布式存储系统中。
在本步骤中,在所述筛选出来的日志存储到缓存系统后,所述日志分发系统调用预设指令,以使所述日志分发系统与所述分布式存储系统建立一个隧道,所述隧道可以对日志传输过程中的日志加密及压缩,以提升所述日志的传输效率。所述日志分发系统从缓存系统中获取所述满足日志类型的日志,并将所述满足日志类型的日志发送到分布式存储系统中,所述分布式存储系统用于将数据分散存储在多台设备上,例如,ElasticSearch、Hbase、HDFS、GlusterFS等,分布式缓存系统是用来访问所述分布式存储系统的访问接口。
需要说明的是,当日志分发系统从缓存系统中将所述得到的日志发布到分布式存储系统的过程中,按照用户及日志类型将所述满足日志类型的日志分类存储在所述分布式系统中。
在一个实施例中,当所述分布式存储系统接收到所述满足日志类型的日志后,会生成确认报文,并将所述确认报文返回给所述日志分发系统,所述日志分发系统接收所述分布式存储系统返回的确认报文,并根据所述确认报文,删除在所述缓存系统中所述满足日志类型的日志文件。所述确认报文是所述分布式存储系统各个子系统确认收到所述满足日志类型的日志文件后生成的,所述确认报文包含所述满足日志类型的日志的文件名信息。
本发明实施例的有益效果为,根据日志持久化指令对用户日志进行筛选,从而实现了日志的持久化;在所有分布式系统接收到日志文件后,将缓存系统中相应的日志删除,从而减少了日志的冗余。
图4是本发明实施例的一种自动化日志处理装置的功能框图,如图4所示,所述装置包括:第一接收模块401、启动模块402、第二接收模块403、获取模块404、定位模块405、返回模块406、第三接收模块407、筛选模块408、存储模块409、发送模块410、第四接收模块411及删除模块412,其中,所述第一接收模块401,用于接收日志监听指令及日志监听容器配置文件,其中,所述日志监听容器配置文件携带分类存储规则;所述启动模块402,用于用于根据所述日志监听指令及日志监听容器配置文件启动日志监听容器,并且使所述日志监听容器挂载至所述物理机中指定的日志文件夹,以通过所述日志监听容器对日志文件夹中日志文件按所述分类存储规则进行分类存储;所述第二接收模块403,用于接收用户的登录指令,其中,所述登录指令携带所述用户的用户信息;所述获取模块404,用于根据所述用户信息,获取所述用户对应的命名空间;所述定位模块405,用于定位包含所述用户对应的命名空间的名字的日志文件,从而得到归属于所述用户的日志,其中,所述命名空间的名字是所述日志文件的文件名中的字段;所述返回模块406,用于返回得到的所述用户的日志;所述第三接收模块407,用于接收日志持久化指令,所述日志持久化指令携带待持久化的日志类型;筛选模块408,用于根据所述日志持久化指令,对所述用户日志进行筛选,得到日志类型与待持久化的日志类型相同的的日志文件;存储模块409,用于将所述得到的日志文件存储到缓存系统;发送模块410,用于将所述得到的的日志发送到分布式存储系统中;所述第四接收模块411,用于接收所述分布式存储系统返回的确认报文,其中,所述确认报文是所述分布式存储系统各个子系统确认收到所述满足日志类型的日志文件后生成的,所述确认报文包含所述满足日志类型的日志的文件名信息;删除模块412,用于根据所述确认报文,删除在所述缓存系统中所述满足日志类型的日志文件。
其中,所述启动模块402包括命名单元4021:用于将所述日志文件夹中日志文件的文件名以其来源的容器的元数据信息进行命名。
其中,所述发送模块410用于将所述得到的的日志发送到分布式存储系统中包括:将所述满足日志类型的日志按照用户及日志类型分类存储在所述分布式存储系统中。
在本实施例中,所述装置与所述的一种自动化日志处理的方法相对应,所述各模块的具体功能可以参考所述的一种自动化日志处理的方法中的相关描述,在此不再赘述。
本发明实施例的有益效果是:区别于现有技术的情况,本发明实施例通过启动模块启动日志监听容器,可以实现日志以包含元数据信息的命名方式自动化存储在物理机中的一个目录下,从而以日志文件名对日志进行区分;此外,通过获取模块获取用户对应的命名空间,命名空间的名字存在于容器的元数据信息中,从而使用户可以访问归属于所述用户的日志,保证了日志访问的私密性和安全性;通过筛选模块对用户日志进行筛选,并通过发送模块将与待持久化的日志类型相同的日志文件存储到缓存系统中,从而实现了日志的持久化;在所有分布式系统接收到日志文件后,将缓存系统中相应的日志删除,从而减少了日志的冗余。
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的一种自动化日志处理的方法。
图5为本发明计算设备实施例的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述一种自动化日志处理的方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
接收日志监听指令及日志监听容器配置文件,其中,所述日志监听容器配置文件携带分类存储规则;
根据所述日志监听指令及日志监听容器配置文件启动日志监听容器,并且使所述日志监听容器挂载至所述物理机中指定的日志文件夹,以通过所述日志监听容器对日志文件夹中日志文件按所述分类存储规则进行分类存储。
在一种可选的方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
将所述日志文件夹中日志文件的文件名以其来源的容器的元数据信息进行命名。
在一种可选的方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
接收用户的登录指令,其中,所述登录指令携带所述用户的用户信息;
根据所述用户信息,获取所述用户对应的命名空间;
定位包含所述用户对应的命名空间的名字的日志文件,从而得到归属于所述用户的日志;
返回得到的所述用户的日志。
在一种可选的方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
接收日志持久化指令,所述日志持久化指令携带待持久化的日志类型;
根据所述日志持久化指令,对所述用户日志进行筛选,得到日志类型与待持久化的日志类型相同的的日志文件;
将所述得到的日志文件存储到缓存系统;
将所述得到的的日志发送到分布式存储系统中。
在一种可选的方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
将所述满足日志类型的日志按照用户及日志类型分类存储在所述分布式存储系统中。
在一种可选的方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
接收所述分布式存储系统返回的确认报文,其中,所述确认报文是所述分布式存储系统各个子系统确认收到所述满足日志类型的日志文件后生成的,所述确认报文包含所述满足日志类型的日志的文件名信息;
根据所述确认报文,删除在所述缓存系统中所述满足日志类型的日志文件。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施例的权利要求书由此明确地并入该具体实施例,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种自动化日志处理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。