CN117971396A - 一种风险确认方法和相关装置 - Google Patents
一种风险确认方法和相关装置 Download PDFInfo
- Publication number
- CN117971396A CN117971396A CN202410157952.8A CN202410157952A CN117971396A CN 117971396 A CN117971396 A CN 117971396A CN 202410157952 A CN202410157952 A CN 202410157952A CN 117971396 A CN117971396 A CN 117971396A
- Authority
- CN
- China
- Prior art keywords
- data
- dictionary template
- dictionary
- template set
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012790 confirmation Methods 0.000 title claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 238000013144 data compression Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 229920001971 elastomer Polymers 0.000 description 1
- 239000000806 elastomer Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种风险确认方法,涉及云计算技术领域。包括:获取Kubernetes部署集群的工作数据;依次用N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得第N行数据对应的字典模板集合,并将第N行数据对应的字典模板集合作为目标数据;基于目标数据,确定Kubernetes部署集群的风险事件。由于目标数据的数据量更小,分析目标数据花费的时间更短,所以本申请中的风险确认方法可以更高效地判断出K8s集群的风险事件,可以提高基于Kubernetes部署集群的风险事件的风险识别效率。
Description
技术领域
本申请涉及云计算技术领域,特别是涉及一种风险确认方法和相关装置。
背景技术
Kubernetes简称K8s,是开源的、基于容器技术的分布式系统支持平台。K8s可以提供跨多个服务器主机的容器部署和管理、服务发现、负载均衡和动态伸缩等一系列完整功能,可以方便地进行大规模容器集群管理。K8s极大地便利了分布式系统的开发和管理,但是K8s的安全风险问题分布在其生命周期的各个阶段。因此,如何高效地判断出K8s部署集群的风险事件,成为亟待解决的技术问题。
发明内容
基于上述问题,本申请提供了一种风险确认方法,用以高效地判断出K8s部署集群的风险事件,提高基于Kubernetes部署集群的风险事件的风险识别效率。
本申请实施例公开了如下技术方案:
本申请第一方面提供一种风险确认方法,包括:
获取Kubernetes部署集群中每个宿主机节点的工作数据;所述工作数据包括N行数据;所述N是大于等于1的正整数;
依次用所述N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得目标数据;所述目标数据是第N行数据对应的字典模板集合;所述第一行数据的上一行数据对应的字典模板集合是预设的字典模板集合;所述预设的字典模板集合包括多个字典模板;每个字典模板存储从历史的工作数据中提取的多个参数字段;所述目标数据的数据量小于所述工作数据的数据量;
基于所述目标数据,确定所述Kubernetes部署集群的风险事件。
在一种可选的实现方式中,所述获得目标数据,包括:
基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合;
判断所述中间字典模板集合的数据量是否达到预设的数据量阈值;
若达到所述数据量阈值且所述中间字典模板集合中存在相同的字典模板,则压缩所述中间字典模板集合中的数据,获得所述目标数据;所述中间字典模板集合中各参数字段均存在于所述目标数据,但所述目标数据中各参数字段只出现一次;所述相同的字典模板是指两个字典模板中存储的参数字段的重复度达到预设的重复度阈值;
若未达到所述数据量阈值或所述中间字典模板集合中不存在相同的字典模板,则将所述中间字典模板集合作为所述目标数据。
在一种可选的实现方式中,每个字典模板对应一个参数列表;每个参数列表中包括多个对象;每个对象包括多个行号,每个行号对应多个参数字段;所述基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合,包括:
确定所述第N-1行数据对应的字典模板集合中是否存在与所述第N行数据对应的字典模板;所述对应的字典模板是该字典模板中存储的参数字段存在于所述第N行数据中;
若存在与所述第N行数据对应的字典模板,则提取所述第N行数据中未被所述对应的字典模板覆盖的数据中的参数字段,并将提取到的参数字段添加到与所述第N行数据对应的字典模板的参数列表中,获得所述中间字典模板集合;
若不存在与所述第N行数据对应的字典模板,则基于所述第N行数据创建新的字典模板和该新的字典模板对应的参数列表;并将所述新的字典模板和该新的字典模板对应的参数列表添加到所述第N-1版字典模板集合中,获得所述中间字典模板集合。
在一种可选的实现方式中,在所述获取Kubernetes部署集群中每个宿主机节点的工作数据之前,所述方法包括:
确定位于所述Kubernetes集群中的每个宿主机节点;
将数据采集器部署到所述每个宿主机节点。
在一种可选的实现方式中,在确定所述风险事件后,所述方法还包括:
基于所述风险事件和预设的告警规则,对所述风险事件进行预警;所述告警规则指示对应风险事件的预警方式。
本申请第二方面提供了一种风险确认装置,所述装置包括:
工作数据获取模块,用于获取Kubernetes部署集群中每个宿主机节点的工作数据;所述工作数据包括N行数据;所述N是大于1的正整数;
目标数据获取模块,用于依次用所述N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得目标数据;所述目标数据是第N行数据对应的字典模板集合;所述第一行数据的上一行数据对应的字典模板集合是预设的字典模板集合;所述预设的字典模板集合包括多个字典模板;每个字典模板存储从历史的工作数据中提取的多个参数字段;所述目标数据的数据量小于所述工作数据的数据量;
风险事前确认模块,基于所述目标数据,确定所述Kubernetes部署集群的风险事件。
在一种可选的实现方式中,所述目标数据获取模块,包括:
中间字典模板确定子模块,用于基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合;
第一子模块,用于判断所述中间字典模板集合的数据量是否达到预设的数据量阈值;
第二子模块,用于若达到所述数据量阈值且所述中间字典模板集合中存在相同的字典模板,则压缩所述中间字典模板集合中的数据,获得所述目标数据;所述中间字典模板集合中各参数字段均存在于所述目标数据,但所述目标数据中各参数字段只出现一次;所述相同的字典模板是指两个字典模板中存储的参数字段的重复度达到预设的重复度阈值;
第三子模块,用于若未达到所述数据量阈值或所述中间字典模板集合中不存在相同的字典模板,则将所述中间字典模板集合作为所述目标数据。
在一种可选的实现方式中,所述中间字典模板确定子模块,包括:
第一单元,用于确定所述第N-1行数据对应的字典模板集合中是否存在与所述第N行数据对应的字典模板;所述对应的字典模板是该字典模板中存储的参数字段存在于所述第N行数据中;
第二单元,用于若存在与所述第N行数据对应的字典模板,则提取所述第N行数据中未被所述对应的字典模板覆盖的数据中的参数字段,并将提取到的参数字段添加到与所述第N行数据对应的字典模板的参数列表中,获得所述中间字典模板集合;
第三单元,用于若不存在与所述第N行数据对应的字典模板,则基于所述第N行数据创建新的字典模板和该新的字典模板对应的参数列表;并将所述新的字典模板和该新的字典模板对应的参数列表添加到所述第N-1版字典模板集合中,获得所述中间字典模板集合。
本申请第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一实现方式介绍的方法的步骤。
本申请第四方面提供了一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面任一实现方式介绍的方法的步骤。
相较于现有技术,本申请具有以下有益效果:
本申请公开一种风险确认方法,包括:获取Kubernetes部署集群的工作数据;依次用N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得第N行数据对应的字典模板集合,并将第N行数据对应的字典模板集合作为目标数据;基于目标数据,确定Kubernetes部署集群的风险事件。由于目标数据的数据量更小,分析目标数据花费的时间更短,所以本申请中的风险确认方法可以更高效地判断出K8s集群的风险事件,可以提高基于Kubernetes部署集群的风险事件的风险识别效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于Kubernetes部署集群的风险确认方法的流程图;
图2为本申请实施例提供的一种获取目标数据的流程图;
图3为本申请实施例提供的一种基于Kubernetes部署集群的风险预警装置的结构示意图;
图4为本申请实施例提供的一种数据采集模块的结构示意图;
图5为本申请实施例提供的一种预警模块的结构示意图;
图6为本申请实施例提供的一种数据流转的示意图;
图7为本申请实施例提供的一种基于Kubernetes部署集群的风险确认装置的结构示意图。
具体实施方式
随着数字化技术的逐渐发展,K8s作为一种被广泛使用的开源的、基于容器技术的分布式系统支持平台,用户基数逐年上升。但K8s使用过程中存在诸多安全风险,包括人为错误的配置、运行时安全及重大安全漏洞引发的安全事件、网络安全技术实施难度复杂度高,且监控系统、日志系统不完善等等。K8s极大地便利了分布式系统的开发和管理,但是K8s的安全风险问题分布在其生命周期的各个阶段。因此,如何高效地判断出K8s部署集群的风险事件,成为亟待解决的技术问题。
本申请公开一种风险确认方法,包括:获取Kubernetes部署集群的工作数据;依次用N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得第N行数据对应的字典模板集合,并将第N行数据对应的字典模板集合作为目标数据;基于目标数据,确定Kubernetes部署集群的风险事件。由于目标数据的数据量更小,分析目标数据花费的时间更短,所以本申请中的风险确认方法可以更高效地判断出K8s集群的风险事件,可以提高基于Kubernetes部署集群的风险事件的风险识别效率。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种基于Kubernetes部署集群的风险确认方法的流程图。结合图1所示,本申请中的风险确认方法包括:
步骤101,获取Kubernetes部署集群中每个宿主机节点的工作数据。
本申请中的工作数据是K8s部署集群包括的每个宿主机节点上的工作数据,包括不限于日志数据、监控数据、CPU数据等等。其中,工作数据包括N行数据;N是大于1的正整数。通过对工作数据的分析,可以确定出Kubernetes部署集群的风险事件。
在一种可选的实现方式中,可以利用iLogtail组件收集K8s部署集群中每个宿主机节点上的工作数据,并把收集到的工作数据转换为Prometheus支持的时序数据格式。
其中,Prometheus是一种开源的系统监控和警报工具包。iLogtail组件是一种开源的数据采集器,可以运行在服务器、容器、K8s和多种嵌入式环境中,可以采集数百种可观测的数据,广泛应用在线上监控、问题分析、问题定位和安全分析等多种场景。由于Prometheus和iLogtail组件是开源工作,本申请中不对此内容做更多介绍。
在一种可选的实现方式中,可以通过K8s的上报机制,找到位于K8s集群中的每个宿主机节点;然后将数据采集器iLogtail组件,通过K8s的上报机制部署到每个宿主机节点上,进而利用iLogtail组件收集K8s部署集群中每个宿主机节点上的工作数据。
进一步地,在网络不便利的使用场景中,可以利用Prometheus中的Pushgateway组件将iLogtail组件的指标数据推送到远端的位于Prometheus上的采集器,从而完成对系统日志、系统运行情况等数据的采集。
步骤102,依次用所述N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得目标数据。
具体而言,利用N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合是指,利用第一行数据更新预设的字典模板集合,获得第一版字典模板集合;利用第二行数据更新第一版字典模板集合,获得第二版字典模板集合;利用第三行数据更新第二版字典模板集合,获得第三版字典模板集合;依此类推,利用第N行数据更新第N-1版字典模板集合,获得第N版字典模板集合。第N版字典模板集合就是目标数据。
由于基于一行数据更新该行数据的前一行数据对应的字典模板集合,获得该行数据自身对应的字典模板集合的数据处理过程都是相似的;所以,本申请后续实施例中将以利用第N行数据更新第N-1版字典模板集合,获得第N版字典模板集合为例,介绍字典模板集合的更新过程。
需要说明的是,本申请中目标数据的数据量小于工作数据的数据量。本申请中预设的字典模板集合、第一版字典模板集合、第二版字典模板集合,乃至第N版字典模板集合的结构样式都是相同的,其区别在于包含的数据不同。
下面介绍每个版本的字典模板集合的结构样式。本申请中每个版本的字典模板集合均包括多个字典模板。每个字典模板的内部存储多个参数字段;每个字典模板的外部配置一个参数列表;每个参数列表中还包括多个对象,每个对象中包括多个行号,每个行号对应多个参数字段。
在一种可选的实现方式中,获得目标数据,包括:
基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合;
判断所述中间字典模板集合的数据量是否达到预设的数据量阈值;
若达到所述数据量阈值且所述中间字典模板集合中存在相同的字典模板,则压缩所述中间字典模板集合中的数据,获得所述目标数据;所述中间字典模板集合中各参数字段均存在于所述目标数据,但所述目标数据中各参数字段只出现一次;所述相同的字典模板是指两个字典模板中存储的参数字段的重复度达到预设的重复度阈值;
若未达到所述数据量阈值或所述中间字典模板集合中不存在相同的字典模板,则将所述中间字典模板集合作为所述目标数据。
图2为本申请实施例提供的一种获取目标数据的流程图。结合图2所示,本申请中的获取目标数据的过程,包括:
步骤201,基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合。
首先,读取第N行数据,并按照自定义的分隔符将第N行数据解析成一组字符序列,成为第N行字符序列。然后,基于第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合。
在一种可选的实现方式中,所述基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合,包括:
确定所述第N-1行数据对应的字典模板集合中是否存在与所述第N行数据对应的字典模板;所述对应的字典模板是该字典模板中存储的参数字段存在于所述第N行数据中;
若存在与所述第N行数据对应的字典模板,则提取所述第N行数据中未被所述对应的字典模板覆盖的数据中的参数字段,并将提取到的参数字段添加到与所述第N行数据对应的字典模板的参数列表中,获得所述中间字典模板集合;
若不存在与所述第N行数据对应的字典模板,则基于所述第N行数据创建新的字典模板和该新的字典模板对应的参数列表;并将所述新的字典模板和该新的字典模板对应的参数列表添加到所述第N-1版字典模板集合中,获得所述中间字典模板集合。
具体地,基于第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合分为三步,具体如下:
第一步,判断第N-1行数据对应的字典模板集合中是否存在与第N行数据对应的字典模板,即判断第N-1行数据对应的字典模板集合所包括的各模板字典内部存储的参数字段,是否存在于第N行字符序列中。需要说明的是,参数字段是从字符序列中提取出来的。
例如,第N-1行数据对应的字典模板集合中包括5个字典模板,分别是字典模板1、字典模板2、字典模板3、字典模板4和字典模板5。字典模板1内存储的参数字段分别是字段a1、字段a2、字段a3和字段a4。如果第N行数据解析生成的第N行字符序列中包括字段a1、字段a2、字段a3、字段a4和字段a5。由于字典模板1内存储的参数字段存在于第N行字符序列中,所以字典模板1是第N行数据对应的字典模板。
第二步,若存在与第N行数据对应的字典模板,则提取第N行数据中未被对应的字典模板覆盖的数据中的参数字段,并将提取到的参数字段添加到与第N行数据对应的字典模板的参数列表中,获得中间字典模板集合。
接第一步中的示例,字典模板1内存储的参数字段分别是字段a1、字段a2、字段a3和字段a4。第N行字符序列中包括字段a1、字段a2、字段a3、字段a4和字段a5。字典模板1是第N行数据对应的字典模板,即第N-1行数据对应的字典模板集合中存在与第N行数据对应的字典模板。
此时,要提取第N行数据中未被对应的字典模板覆盖的数据中的参数字段。本示例中第N行字符序列中包括的字段a1、字段a2、字段a3、字段a4均被字典模板1覆盖,未被覆盖的数据对应的字段是字段a5。假设字典模板1对应的参数对象列表是参数对象列表1,将字段a5添加到参数对象列表1中。
具体地,提取字段a5;为提取到的字段a5添加标记,如标记“*”;获取字段a5对应的行号;将行号和字段a5添加到参数对象列表1中新创建的对象中,再将该填充了数据的新创建对象添加到参数对象列表1中,最后利用参数对象列表1和字典模板1更新第N-1行数据对应的字典模板中的相应数据,得到中间字典模板集合。
第三步,若不存在与第N行数据对应的字典模板,则基于第N行数据创建新的字典模板和该新的字典模板对应的参数列表;并将新的字典模板和该新的字典模板对应的参数列表添加到第N-1版字典模板集合中,获得中间字典模板集合。
具体地,如果第N行数据解析生成的第N行字符序列中包括字段b1、字段b2、字段b3、字段b4和字段b5;且字段b1、字段b2、字段b3、字段b4和字段b5不存在于第N-1行数据对应的字典模板集合中,即第N-1行数据对应的字典模板集合的每个字典模板内均未存储字段b1、字段b2、字段b3、字段b4和字段b5,则认为不存在与第N行数据对应的字典模板。
此时,基于第N行字符序列创建新的字典模板,即将第N行字符序列中的参数字段提取出来,存储到新创建的字典模板中。然后再创建一个与新的字典模板对应的空的参数列表。将添加了数据的新的字典模板和对应的空的参数列表添加到第N-1版字典模板集合中,获得中间字典模板集合。
需要说明的是,由于解析行数据生成对应的字符序列和确定字符序列中包括的参数字段是本领域技术人员较为熟知的技术,所以本申请中未对上述内容做更多介绍。
步骤202,判断所述中间字典模板集合的数据量是否达到预设的数据量阈值。
在获得中间字典模板集合后,判断该中间字典模板集合的数据量是否达到预设的数据量阈值。例如,如果中间字典模板集合存储的数据量为1G,而预设的数据量阈值为0.9G,则认为中间字典模板集合的数据量达到了预设的数据量阈值;如果中间字典模板集合存储的数据量为1G,而预设的数据量阈值为1.9G,则认为中间字典模板集合的数据量没有达到预设的数据量阈值。
步骤203,若达到所述数据量阈值且所述中间字典模板集合中存在相同的字典模板,则压缩所述中间字典模板集合中的数据,获得所述目标数据。
其中,相同的字典模板是中间字典模板集合两个字典模板中存储的参数字段的重复度达到预设的重复度阈值。
例如,如果设定的重复度阈值为70%,中间字典模板集合中包括字典模板A和字典模板B;且字典模板A内部存储的参数字段与字典模板B内存储的参数字段高度重合,参数重合度大于设定的重复度阈值70%,则认为字典模板A和字典模板B是中间字典模板集合中相同的字典模板。
当中间字典模板集合的数据量达到预设的数据量阈值,且中间字典模板集合中存在一对乃至多对相同的字典模板,则将相同的模板合并,重新提取相同的模板中的参数字段,再将相同的模板中每个模板对应的参数列表中数据进行合并,当参数列表中的数据存在多个连续的标记“*”时,将标记“*”连接的参数字段合并;最终获得目标数据,使得中间字典模板集合中各参数字段均存在于目标数据中,但目标数据中各参数只出现一次。
需要强调的是,本步骤的目的是去除中间字典集合中重复出现的参数字段,在确保数据完整的前提下,使得每个参数字段在目标数据中只出现一次。由于去除了中间字典集合中的冗余数据,所以目标数据的数据量是小于工作数据的数据量。
步骤204,若未达到所述数据量阈值或所述中间字典模板集合中不存在相同的字典模板,则将所述中间字典模板集合作为所述目标数据。
如果中间字典模板集合的数据量没有达到预设的数据量阈值,或者是中间字典模板集合的数据量达到预设的数据量阈值,但是中间字典模板集合中不存在相同的字典模板,则直接将中间字典模板集合作为目标数据。
步骤103,基于所述目标数据,确定所述Kubernetes部署集群的风险事件。
由于目标数据中包括K8s部署集群中每个宿主机节点的工作数据对应的参数字段,且相同的参数字段只出现一次;所以通过较少的时间完成对目标数据进行分析,从而确定K8s部署集群中的风险事件。
进一步地,在确定K8s部署集群中的风险事件后,还可以根据预设的告警规则,对风险事件进行预警。
具体地,确定风险事件后,确定与该风险事件对应的告警规则。通过对应的告警规则明确,如何预警该风险事件,是通过发声的方式预警,还是通过文字闪动的方式预警;是将该风险事件对应的预警信息告知管理人员,还是将该风险事件对应的额预警信息告知开发人员;是通过邮件将预警信息对外公布,还是通过微信将该风险事件的预警信息对外公布。
本申请公开一种风险确认方法,包括:获取Kubernetes部署集群的工作数据;依次用N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得第N行数据对应的字典模板集合,并将第N行数据对应的字典模板集合作为目标数据;基于目标数据,确定Kubernetes部署集群的风险事件。由于目标数据的数据量更小,分析目标数据花费的时间更短,所以本申请中的风险确认方法可以更高效地判断出K8s集群的风险事件,可以提高基于Kubernetes部署集群的风险事件的风险识别效率。
基于前述实施例提供的一种风险确认方法,本申请实施例还提供了一种风险预警装置。本申请中的风险预警装置以Prometheus为核心,结合iLogtail组件、改进的spell(Streaming Parsing of System Event Logs)算法、node-problem-detect组件、Logstash组件、Elasticsearch和ElastAlert组件,实现对Kubernetes部署集群的风险事件的预警。
其中,iLogtail组件是一种开源的可观测数据采集器,可以运行在服务器、容器、K8s和多种嵌入式环境中,可以采集数百种可观测的数据,广泛应用在线上监控、问题分析、问题定位和安全分析等多种场景。
node-problem-detect是Prometheus中的组件,用来分析采集数据。
Elasticsearch是一个分布式、可拓展、实时的搜索与数据分析引擎,能使数据在生产环境变得更有价值。
ElastAlert是基于python2开发的一个告警框架,其包含的告警规则和报警方式非常丰富,可以从Elasticsearch数据中发现异常,并按照设定好的告警规则进行报警。
传统方案中只采用Prometheus监控K8s部署集群中的风险事件,这种方式存在如下问题:(1)采集检测的数据较为单一,监控覆盖范围不足。例如,无法细粒度到具体容器的生命周期信息。(2)监控的准确性、智能性不足,存在误报或者漏报。例如,POD(Pod是K8s中能够创建和部署的最小单元)的重启,是无法用简单的资源使用率等性能指标来定位和分析的,没办法进一步分析这个状态产生的具体原因。(3)收集上来的监控数据没有很好的查询检索方式,不能从整体上展示监控数据,对于预警的报告需要人为定义报警阈值,准确性以及实时性不足。
图3为本申请实施例提供的一种基于Kubernetes部署集群的风险预警装置的结构示意图。结合图3所示,本申请的风险预警装置300,包括:
数据采集模块301,用于利用iLogtail组件收集K8s部署集群中每个宿主机节点上的工作数据,并把收集到的工作数据转换为Prometheus支持的时序数据格式。
数据压缩模块302,用于基于改进的spell实现对工作数据的压缩,获得目标数据。
需要说明的是,数据压缩模块302对工作数据的处理过程参见本申请前述实施例中步骤201-步骤204的相关介绍。
数据分析模块303,用于利用node-problem-detect组件、Logstash组件和Elasticsearch实现对目标数据的分析,确定目标数据中对应的风险事件。
具体地,将目标数据上报到node-problem-detect组件,通过Logstash组件将目标数据解析成json(JavaScript Object Notation)格式,再将json格式的数据上报到Elasticsearch进行分析和存储,实现对K8s中涉及的所有容器的数据的分析和监控;弥补传统方法中采集检测的数据较为单一,监控覆盖范围不足的问题。
预警模块304,用于通过ElastAlert处理发出的预警。由于ElastAlert中包括的告警规则和报警方式非常丰富,所以可以选择不同的告警规则和报警方式对风险事件作出预警。例如,将类似性质的警报合并为单个通知;或者进行简单的特定时间静音的机制,例如:服务器要升级维护可以先设置这个时间段告警静默。当警报发出后,停止重复发送由此警报引发的其他警报即合并一个故障引起的多个报警事件,可以消除冗余告警。
图4为本申请实施例提供的一种数据采集模块的结构示意图。结合图4所示,本申请的数据采集模块301,包括:
宿主确定单元401,用于查找到所有的宿主机结点,将采集组件iLogtail部署到每个宿主机节点上。
数据采集单元402,用于利用iLogtail组件收集K8s部署集群中每个宿主机节点上的工作数据,并把收集到的工作数据转换为Prometheus支持的时序数据格式。
图5为本申请实施例提供的一种预警模块的结构示意图。结合图5所示,本申请中的预警模块304,包括:
风险事件获取单元501,用于获取Elasticsearch中确定的风险事件。
预警单元502,用于通过ElastAlert对风险时间做出预警。
图6为本申请实施例提供的一种数据流转的示意图。结合图6所示,利用本申请中公开的风险预警装置300进行风险预警时,数据流转过程为:iLogtail组件收集工作数据;将收集到的工作数据输送到Prometheus进行数据格式转换;将格式转换后的数据输送到数据压缩模块进行数据压缩,获得目标数据;将目标数据输送到Prometheus中的node-problem-detect组件,通过Prometheus中Logstash组件将目标数据解析成json格式,再将json格式的数据上报到Elasticsearch组件进行分析存储,确定风险事件。
基于前述实施例提供的一种风险确认方法,本申请实施例还提供了一种风险确认装置。图7为本申请实施例提供的一种基于Kubernetes部署集群的风险确认装置的结构示意图。结合图7所示,本申请的风险确认装置700,包括:
工作数据获取模块701,用于获取Kubernetes部署集群中每个宿主机节点的工作数据;所述工作数据包括N行数据;所述N是大于1的正整数;
目标数据获取模块702,用于依次用所述N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得目标数据;所述目标数据是第N行数据对应的字典模板集合;所述第一行数据的上一行数据对应的字典模板集合是预设的字典模板集合;所述预设的字典模板集合包括多个字典模板;每个字典模板存储从历史的工作数据中提取的多个参数字段;所述目标数据的数据量小于所述工作数据的数据量;
风险事件确认模块703,基于所述目标数据,确定所述Kubernetes部署集群的风险事件。
在一种可选的实现方式中,目标数据获取模块702,包括:
中间字典模板确定子模块,用于基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合;
第一子模块,用于判断所述中间字典模板集合的数据量是否达到预设的数据量阈值;
第二子模块,用于若达到所述数据量阈值且所述中间字典模板集合中存在相同的字典模板,则压缩所述中间字典模板集合中的数据,获得所述目标数据;所述中间字典模板集合中各参数字段均存在于所述目标数据,但所述目标数据中各参数字段只出现一次;所述相同的字典模板是指两个字典模板中存储的参数字段的重复度达到预设的重复度阈值;
第三子模块,用于若未达到所述数据量阈值或所述中间字典模板集合中不存在相同的字典模板,则将所述中间字典模板集合作为所述目标数据。
在一种可选的实现方式中,中间字典模板确定子模块,包括:
第一单元,用于确定所述第N-1行数据对应的字典模板集合中是否存在与所述第N行数据对应的字典模板;所述对应的字典模板是该字典模板中存储的参数字段存在于所述第N行数据中;
第二单元,用于若存在与所述第N行数据对应的字典模板,则提取所述第N行数据中未被所述对应的字典模板覆盖的数据中的参数字段,并将提取到的参数字段添加到与所述第N行数据对应的字典模板的参数列表中,获得所述中间字典模板集合;
第三单元,用于若不存在与所述第N行数据对应的字典模板,则基于所述第N行数据创建新的字典模板和该新的字典模板对应的参数列表;并将所述新的字典模板和该新的字典模板对应的参数列表添加到所述第N-1版字典模板集合中,获得所述中间字典模板集合。
在一种可选的实现方式中,风险确认装置700,还包括:
数据采集区布置模块,用于通过所述Kubernetes的上报机制,确定位于所述Kubernetes集群中的每个宿主机节点;并将数据采集器部署到所述每个宿主机节点。
在一种可选的实现方式中,风险确认装置700,还包括:
风险事件预警模块,用于基于所述风险事件和预设的告警规则,对所述风险事件进行预警;所述告警规则指示对应风险事件的预警方式。
基于前述实施例提供的风险确认方法和装置,相应地,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文提及的风险确认方法中的部分或全部步骤。
基于前述实施例提供的风险确认方法和装置,本申请还提供了一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现前述实施例提供的风险确认方法中的部分或全部步骤。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种风险确认方法,其特征在于,所述方法包括:
获取Kubernetes部署集群中每个宿主机节点的工作数据;所述工作数据包括N行数据;所述N是大于等于1的正整数;
依次用所述N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得目标数据;所述目标数据是第N行数据对应的字典模板集合;所述第一行数据的上一行数据对应的字典模板集合是预设的字典模板集合;所述预设的字典模板集合包括多个字典模板;每个字典模板存储从历史的工作数据中提取的多个参数字段;所述目标数据的数据量小于所述工作数据的数据量;
基于所述目标数据,确定所述Kubernetes部署集群的风险事件。
2.根据权利要求1所述的方法,其特征在于,所述获得目标数据,包括:
基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合;
判断所述中间字典模板集合的数据量是否达到预设的数据量阈值;
若达到所述数据量阈值且所述中间字典模板集合中存在相同的字典模板,则压缩所述中间字典模板集合中的数据,获得所述目标数据;所述中间字典模板集合中各参数字段均存在于所述目标数据,但所述目标数据中各参数字段只出现一次;所述相同的字典模板是指两个字典模板中存储的参数字段的重复度达到预设的重复度阈值;
若未达到所述数据量阈值或所述中间字典模板集合中不存在相同的字典模板,则将所述中间字典模板集合作为所述目标数据。
3.根据权利要求2所述的方法,其特征在于,每个字典模板对应一个参数列表;每个参数列表中包括多个对象;每个对象包括多个行号,每个行号对应多个参数字段;所述基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合,包括:
确定所述第N-1行数据对应的字典模板集合中是否存在与所述第N行数据对应的字典模板;所述对应的字典模板是该字典模板中存储的参数字段存在于所述第N行数据中;
若存在与所述第N行数据对应的字典模板,则提取所述第N行数据中未被所述对应的字典模板覆盖的数据中的参数字段,并将提取到的参数字段添加到与所述第N行数据对应的字典模板的参数列表中,获得所述中间字典模板集合;
若不存在与所述第N行数据对应的字典模板,则基于所述第N行数据创建新的字典模板和该新的字典模板对应的参数列表;并将所述新的字典模板和该新的字典模板对应的参数列表添加到所述第N-1版字典模板集合中,获得所述中间字典模板集合。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述获取Kubernetes部署集群中每个宿主机节点的工作数据之前,所述方法包括:
确定位于所述Kubernetes集群中的每个宿主机节点;
将数据采集器部署到所述每个宿主机节点。
5.根据权利要求1-3任一项所述的方法,其特征在于,在确定所述风险事件后,所述方法还包括:
基于所述风险事件和预设的告警规则,对所述风险事件进行预警;所述告警规则指示对应风险事件的预警方式。
6.一种风险确认装置,其特征在于,所述装置包括:
工作数据获取模块,用于获取Kubernetes部署集群中每个宿主机节点的工作数据;所述工作数据包括N行数据;所述N是大于1的正整数;
目标数据获取模块,用于依次用所述N行数据中的每行数据更新该行数据的上一行数据对应的字典模板集合,直至获得目标数据;所述目标数据是第N行数据对应的字典模板集合;所述第一行数据的上一行数据对应的字典模板集合是预设的字典模板集合;所述预设的字典模板集合包括多个字典模板;每个字典模板存储从历史的工作数据中提取的多个参数字段;所述目标数据的数据量小于所述工作数据的数据量;
风险事前确认模块,基于所述目标数据,确定所述Kubernetes部署集群的风险事件。
7.根据权利要求6所述的装置,其特征在于,所述目标数据获取模块,包括:
中间字典模板确定子模块,用于基于所述第N行数据和第N-1行数据对应的字典模板集合,获得中间字典模板集合;
第一子模块,用于判断所述中间字典模板集合的数据量是否达到预设的数据量阈值;
第二子模块,用于若达到所述数据量阈值且所述中间字典模板集合中存在相同的字典模板,则压缩所述中间字典模板集合中的数据,获得所述目标数据;所述中间字典模板集合中各参数字段均存在于所述目标数据,但所述目标数据中各参数字段只出现一次;所述相同的字典模板是指两个字典模板中存储的参数字段的重复度达到预设的重复度阈值;
第三子模块,用于若未达到所述数据量阈值或所述中间字典模板集合中不存在相同的字典模板,则将所述中间字典模板集合作为所述目标数据。
8.根据权利要求7所述的装置,其特征在于,所述中间字典模板确定子模块,包括:
第一单元,用于确定所述第N-1行数据对应的字典模板集合中是否存在与所述第N行数据对应的字典模板;所述对应的字典模板是该字典模板中存储的参数字段存在于所述第N行数据中;
第二单元,用于若存在与所述第N行数据对应的字典模板,则提取所述第N行数据中未被所述对应的字典模板覆盖的数据中的参数字段,并将提取到的参数字段添加到与所述第N行数据对应的字典模板的参数列表中,获得所述中间字典模板集合;
第三单元,用于若不存在与所述第N行数据对应的字典模板,则基于所述第N行数据创建新的字典模板和该新的字典模板对应的参数列表;并将所述新的字典模板和该新的字典模板对应的参数列表添加到所述第N-1版字典模板集合中,获得所述中间字典模板集合。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410157952.8A CN117971396A (zh) | 2024-02-04 | 2024-02-04 | 一种风险确认方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410157952.8A CN117971396A (zh) | 2024-02-04 | 2024-02-04 | 一种风险确认方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971396A true CN117971396A (zh) | 2024-05-03 |
Family
ID=90862498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410157952.8A Pending CN117971396A (zh) | 2024-02-04 | 2024-02-04 | 一种风险确认方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971396A (zh) |
-
2024
- 2024-02-04 CN CN202410157952.8A patent/CN117971396A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190108112A1 (en) | System and method for generating a log analysis report from a set of data sources | |
CN108521339B (zh) | 一种基于集群日志的反馈式节点故障处理方法及系统 | |
CN106874187B (zh) | 代码覆盖率收集方法和装置 | |
CN106209405B (zh) | 故障诊断方法及装置 | |
CN112000502B (zh) | 海量错误日志的处理方法、装置、电子装置及存储介质 | |
CN111240876B (zh) | 微服务的故障定位方法、装置、存储介质及终端 | |
CN114567538B (zh) | 告警信息处理方法及装置 | |
CN115809183A (zh) | 基于知识图谱的信创终端故障发现及处置的方法 | |
CN109960690A (zh) | 一种大数据集群的运行维护方法及装置 | |
CN111078513A (zh) | 日志处理方法、装置、设备、存储介质及日志告警系统 | |
CN113254254A (zh) | 系统故障的根因定位方法、装置、存储介质及电子装置 | |
CN114356499A (zh) | Kubernetes集群告警根因分析方法及装置 | |
CN114791846A (zh) | 一种针对云原生混沌工程实验实现可观测性的方法 | |
CN108073582A (zh) | 一种计算框架选择方法和装置 | |
CN110609761B (zh) | 确定故障源的方法、装置、存储介质和电子设备 | |
CN112416800A (zh) | 智能合约的测试方法、装置、设备及存储介质 | |
CN111277427B (zh) | 一种数据中心网络设备的巡检方法及系统 | |
CN115065539B (zh) | 数据安全监测方法、装置、设备及存储介质 | |
CN117971396A (zh) | 一种风险确认方法和相关装置 | |
CN113328898B (zh) | 一种具有自主学习能力的故障诊断方法和系统 | |
CN105446707B (zh) | 一种数据转换方法 | |
CN115292321A (zh) | 一种数据处理方法、系统、装置、电子设备和存储介质 | |
CN111459984B (zh) | 基于流式处理的日志数据处理系统及方法 | |
CN114756301A (zh) | 日志处理方法、装置和系统 | |
CN115022153A (zh) | 故障根因分析方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |