CN117851158A - 基于正态分布模型的Kafka集群异常节点检测方法 - Google Patents
基于正态分布模型的Kafka集群异常节点检测方法 Download PDFInfo
- Publication number
- CN117851158A CN117851158A CN202311693618.6A CN202311693618A CN117851158A CN 117851158 A CN117851158 A CN 117851158A CN 202311693618 A CN202311693618 A CN 202311693618A CN 117851158 A CN117851158 A CN 117851158A
- Authority
- CN
- China
- Prior art keywords
- node
- normal
- abnormal
- characteristic
- detection
- 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
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 40
- 238000001514 detection method Methods 0.000 title claims abstract description 39
- 230000005856 abnormality Effects 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 16
- 238000005315 distribution function Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims abstract description 4
- 238000012545 processing Methods 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 6
- 238000005192 partition Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 229940022409 overtime Drugs 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000035876 healing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于大数据云计算技术领域,公开了基于正态分布模型的Kafka集群异常节点检测方法,包括如下步骤:S1、特征选择;选择Kafka节点进程中的线程指标作为特征,并获取相应的特征变量D;S2、构建正常特征空间分布;根据获取的特征变量构建正常特征空间分布所用的数据集,并构建分布函数,确定特征变量D的正常运行区间;S3、异常检测与告警;通过判断当天的特征变量D是否有落入正常运行区间以判断是否出现异常,若出现异常,则进行告警。本发明相对现有技术而言,提出了自动检测异常的方法,避免人工根据集群规模和量级确定并反复调试告警指标。
Description
技术领域
本发明属于大数据云计算领域技术领域,具体涉及基于正态分布模型的Kafka集群异常节点检测方法。
背景技术
Apache Kafka是一个开源分布式消息队列平台,被广泛应用于高性能数据处理的中间件,承担与外部系统交互,以及内部组件互通的功能。Kafka使用分布式架构,能够灵活扩容,处理能力随服务器数量能够实现线性增长,单集群服务器数量能高达上千台,以达到单日处理百万亿数据,吞吐PB级别数据的效果。得益于分布式架构,基于分区的副本机制,Kafka能够容忍单服务器失效,并能够实现故障自动愈合,保障持续的可用性。作为消息队列平台,Kafka可以说是大数据处理平台的关键组件,其处理能力直接影响系统的吞吐量。因此,对于该组件一般都需要有专门的运维团队,或者使用云服务商提供的云服务,这两者都需要完善的监控系统支撑,以及时发现并定位Kafka集群的故障。
Kafka是基于磁盘的消息队列,如图1所示,通过磁盘保证在宕机时的消息完整性。与其他组件交互,则通过网络,使用特有的二进制协议,以保证最小的带宽占用。因此,其处理性能的关键往往在于磁盘性能和网络质量。对于单服务器,其可能的故障点为磁盘性能下降、磁盘损坏、网络质量下降,以及服务器宕机等。单磁盘或单服务器故障时,会影响该磁盘或者该上所有leader分区,导致leader重选举,或未触发选举但该分区不可用。这两种情况都会严重影响Kafka集群的吞吐性能,影响分区的数据均衡。Kafka通过网络与其他组件交互时,在数据中心形成东西流量,有可能与HDFS等批处理突发流量互相竞争,导致一个或多个节点网络质量下降。
通常,运维团队或云服务提供商都构建了对应的监控系统,通过阈值告警协助运维人员发现故障;如CN108234199A设计了一种针对Kafka的指标收集系统,而202111615414.1则选择了多个维度做指标聚合,使告警更具有针对性;进一步的,202011584704.X设计了对应的监控巡检系统,使用自动化程序替代人工,根据告警的指标实施自动巡检。
以上工作都注意到了Kafka指标监控的重要性,并尝试逐步将发现故障-定位故障的工作自动化。但是其局限性在于,需要人工深度介入设定对应的告警规则,且都是事后发现并处理故障,对于大规模集群而言,短时间的吞吐量下降,即会造成较为严重的积压;因此,有必要提出一种不能够自动寻找并定位异常节点的方法,并且能够在故障发生前检测到节点运行状态偏离正常,以减少对线上业务的影响。
发明内容
本发明的目的在于提供基于正态分布模型的Kafka集群异常节点检测方法,用于解决背景技术中提出的技术问题。
为了实现上述目的,本发明采用了如下技术方案:基于正态分布模型的Kafka集群异常节点检测方法,包括如下步骤:
S1、特征选择;选择Kafka节点进程中的线程指标作为特征,并获取相应的特征变量D;
S2、构建正常特征空间分布;根据获取的特征变量构建正常特征空间分布所用的数据集,并构建分布函数,确定特征变量D的正常运行区间;
S3、异常检测与告警;通过判断当天的特征变量D是否有落入正常运行区间以判断是否出现异常,若出现异常,则进行告警。
优选的,所述线程指标包括网络处理线程和请求处理线程;
所述网络处理线程负责通过网络与其他节点或者客户端交互;
所述请求处理线程负责写磁盘后为请求提供响应。
优选的,所述特征变量D包括网络处理器利用率和请求处理器利用率;
所述网络处理器利用率的具体表现方式如下:在t时刻,节点i网络处理线程繁忙时间占总运行时间的比值,记为Dn,i,t,取值为0~1;
所述请求处理器利用率的具体表现方式如下:在t时刻,节点i请求处理线程繁忙时间占总运行时间的比值,记为Dr,i,t,取值为0~1。
优选的,实际使用的特征变量是利用计算相同时间节点出入宽带总和进行体现,具体计算公式如下:
其中,DN,i,t表示实际使用的网络处理器利用率;DR,i,t表示实际使用的请求处理器利用率,DBio,i,t表示相同时间节点出入宽带总和,单位为MiB/S。
优选的,正常特征空间分布是利用节点数据i的前一天节点数据构建的数据集,具体表现如下:与/>其中t代表当天每一个采样时间点。
优选的,当网络和磁盘的特征分布符合正态分布时,所述正常特征空间分布的分布函数为:
其中,μN,i和μR,i分别为节点i特征空间DN,i和DR,i中所有特征点的平均值,σN,i和σR,i分别为特征空间DN,i和DR,i的方差。
优选的,当正常特征空间分布的分布函数符合正态分布时,使用3σ原则进行异常检测,所述异常检测包括,正常运行区间检测以及异常运行区间检测;所述正常运行区间检测具体检测如下:
Pr(μ-3σ≤D≤μ+3σ)=0.9973;
其中,Pr(μ-3σ≤D≤μ+3σ)表示正常的特征变量D落入区间[μ-3σ,μ+3σ]的概率。
优选的,所述异常运行区间检测是根据区间[μ-3σ,μ+3σ]构建异常检测函数进行检测,异常检测函数具体如下:
其中,f(D,μ,σ)表示当天的特征变量D是否落入区间[μ-3σ,μ+3σ]以判断是否出现异常。
优选的,若当天t时刻,节点i的特征值DN,i,t满足f(DN,i,t,μN,i,σN,i)=1,则表示节点i网络存在异常,并生成节点i的网络异常告警。
优选的,若当天t时刻,节点i的特征值DR,i,t满足f(DR,i,t,μR,i,σR,i)=1,则表示节点i磁盘相关性能存在异常,生成节点i的磁盘异常告警。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明相对现有技术而言,在收集监控指标后更进一步,提出了自动检测异常的方法,避免人工根据集群规模和量级确定并反复调试告警指标;本申请生成的告警精确到节点粒度,若节点的磁盘或网络性能发现偏移,能够及时预先告警,供运维人员介入以消除隐患。
2、本发明使用了简单的正态分布假设,可解释性良好,在实际应用中比较容易被运维人员接受,计算和预测代价均极低,通过现成的Prometheus系统即可处理,易于实时实现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了三节点Kafka集群读写结构图;
图2示出了本发明的告警生成流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1
基于正态分布模型的Kafka集群异常节点检测方法,包括如下步骤:
S1、特征选择;
选择与磁盘和网络相关的特征,具体为,选择Kafka节点进程中的线程指标作为特征,并获取相应的特征变量D;
其中,线程指标包括网络处理线程和请求处理线程;
网络处理线程负责通过网络与其他节点或者客户端交互;当受到网络质量影响时,当前网络处理线程的耗时将明显上升;
请求处理线程负责写磁盘后为请求提供响应,当受到磁盘竞争或磁盘写入能力下降时,当前请求处理线程的耗时将明显上升;
特征变量D包括网络处理器利用率和请求处理器利用率;
其中,网络处理器利用率的具体表现方式如下:在t时刻,节点i网络处理线程繁忙时间占总运行时间的比值,记为Dn,i,t,取值为0~1;
请求处理器利用率的具体表现方式如下:在t时刻,节点i请求处理线程繁忙时间占总运行时间的比值,记为Dr,i,t,取值为0~1;
受到数据倾斜影响,每个节点的繁忙程度并不是一样的,而且这两个指标还会受到整体吞吐量的影响,吞吐量高时利用率会随之上升;因此人工规则难以直接判断当前占用率合理与否;为了排除吞吐量的影响,在实际使用中,实际使用的特征变量是利用计算相同时间节点出入宽带总和进行体现,具体计算公式如下:
其中,DN,i,t表示实际使用的网络处理器利用率;DR,i,t表示实际使用的请求处理器利用率,DBio,i,t表示相同时间节点出入宽带总和,单位为MiB/S。
S2、构建正常特征空间分布;
正常特征空间分布是利用节点数据i的前一天节点数据构建的数据集,具体表现如下:与/>其中t代表当天每一个采样时间点;
当网络和磁盘的特征分布符合正态分布时,正常特征空间分布的分布函数为:
其中,μN,i为节点i特征空间DN,i中所有特征点的平均值,μR,i为节点i特征空间DR,i中所有特征点的平均值,σN,i为特征空间DN,i的方差,σR,i为特征空间DR,i的方差;
当正常特征空间分布的分布函数符合正态分布时,使用3σ原则进行异常检测,异常检测包括,正常运行区间检测以及异常运行区间检测;正常运行区间检测具体检测如下:
Pr(μ-3σ≤D≤μ+3σ)=0.9973;
其中,Pr(μ-3σ≤D≤μ+3σ)表示正常的特征变量D落入区间[μ-3σ,μ+3σ]的概率。
S3、异常检测与告警;
异常运行区间检测是根据区间[μ-3σ,μ+3σ]构建异常检测函数进行检测,异常检测函数具体如下:
其中,f(D,μ,σ)表示当天的特征变量D是否落入区间[μ-3σ,μ+3σ]以判断是否出现异常;
若当天t时刻,节点i的特征值DN,i,t满足f(DN,i,t,μN,i,σN,i)=1,则表示节点i网络存在异常,并生成节点i的网络异常告警;
若当天t时刻,节点i的特征值DR,i,t满足f(DR,i,t,μR,i,σR,i)=1,则表示节点i磁盘相关性能存在异常,生成节点i的磁盘异常告警。
实施例2
以下根据实际环境,描述本发明的具体实施方案。实例为60节点的Kafka集群,高峰值消息传入约1800万条/秒,请求数约480000次每秒,读写比3:1.每个节点拥有8个12TB磁盘,网卡带宽40Gb,由于容灾需要,分布在30个机架,跨3个机房。机房之间通过320Gb核心交换机互联,Kafka节点与HDFSDataNode混布,在实际使用中,会由于HDFS调度不均衡,导致东西流量打满,导致部分节点网络质量下降;以下结合图2,描述各个阶段的具体实现。
1、在特征选择阶段,使用JMXexporter暴露Kafka节点粒度指标,并导入Prometheus监控系统中。其中,DN,i,t对应的表达式为:
而DR,i,t对应的表达式为:
2、构建正常特征空间分布,可以使用Prometheus内置的聚合函数,以实时计算24小时前所有时间点的均值和标准差。具体的,对于DN,i,t对应的μN,i与σN,i,可以使用表达式:
mu_n=avg_over_time(d_n{ip=~\"$ip\"}[24h])
sigma_n=stdvar_over_time(d_n{ip=~\"$ip\"}[24h])。
3、在异常检测阶段,对于每个时间点,检测实际特征点是否在正常区间,若不在则认为该时间点异常,需要生成告警传递到告警系统,为此,我们可以使用PromQL通过提供一组过滤的二元运算符(>、<、==等)实现告警表达式,同时通过二元运算获得的布尔值,实现条件的逻辑或;具体的,对于DN,i,t,对应的告警表达式为:
(d_n{ip=~\"$ip\"}>bool(3*sigma_n{ip=~\"$ip\"}+mu_n{ip=~\"$ip\"}))+(d_n{ip=~\"$ip\"}<bool(-3*sigma_n{ip=~\"$ip\"}+mu_n{ip=~\"$ip\"}))
4.使用Grafana触发Prometheus计算告警指标,并推送到指定的告警渠道。
综上所述,通过以上的步骤描述,运维人员能够容易收到节点粒度的异常,该方法对告警系统依赖较低,且通过使用磁盘和网络两种特征,运维人员能够准确定位到影响的外部因素。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为的具体实施方式。显然,根据本说明书的内容,可做很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,包括如下步骤:
S1、特征选择;
选择Kafka节点进程中的线程指标作为特征,并获取相应的特征变量D;
S2、构建正常特征空间分布;
根据获取的特征变量构建正常特征空间分布所用的数据集,并构建分布函数,确定特征变量D的正常运行区间;
S3、异常检测与告警;
通过判断当天的特征变量D是否有落入正常运行区间以判断是否出现异常,若出现异常,则进行告警。
2.如权利要求1所述的基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,所述线程指标包括网络处理线程和请求处理线程;
所述网络处理线程负责通过网络与其他节点或者客户端交互;
所述请求处理线程负责写磁盘后为请求提供响应。
3.如权利要求2所述的基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,所述特征变量D包括网络处理器利用率和请求处理器利用率;
所述网络处理器利用率的具体表现方式如下:
在t时刻,节点i网络处理线程繁忙时间占总运行时间的比值,记为Dn,i,t,取值为0~1;
所述请求处理器利用率的具体表现方式如下:
在t时刻,节点i请求处理线程繁忙时间占总运行时间的比值,记为Dr,i,t,取值为0~1。
4.如权利要求3所述的基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,实际使用的特征变量是利用计算相同时间节点出入宽带总和进行体现,具体计算公式如下:
其中,DN,i,t表示实际使用的网络处理器利用率;DR,i,t表示实际使用的请求处理器利用率,DBio,i,t表示相同时间节点出入宽带总和,单位为MiB/S。
5.如权利要求4所述的基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,正常特征空间分布是利用节点数据i的前一天节点数据构建的数据集,具体表现如下:
与/>
其中t代表当天每一个采样时间点。
6.如权利要求5所述的基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,当网络和磁盘的特征分布符合正态分布时,所述正常特征空间分布的分布函数为:
其中,μN,i和μR,i分别为节点i特征空间DN,i和DR,i中所有特征点的平均值,σN,i和σR,i分别为特征空间DN,i和DR,i的方差。
7.如权利要求6所述的基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,当正常特征空间分布的分布函数符合正态分布时,使用3σ原则进行异常检测,所述异常检测包括正常运行区间检测以及异常运行区间检测;所述正常运行区间检测具体检测如下:
Pr(μ-3σ≤D≤μ+3σ)=0.9973;
其中,Pr(μ-3σ≤D≤μ+3σ)表示正常的特征变量D落入区间[μ-3σ,μ+3σ]的概率。
8.如权利要求7所述的基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,所述异常运行区间检测是根据区间[μ-3σ,μ+3σ]构建异常检测函数进行检测,异常检测函数具体如下:
其中,f(D,μ,σ)表示当天的特征变量D是否落入区间[μ-3σ,μ+3σ]以判断是否出现异常。
9.如权利要求8所述的基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,若当天t时刻,节点i的特征值DN,i,t满足f(DN,i,t,μN,i,σN,i)=1,则表示节点i网络存在异常,并生成节点i的网络异常告警。
10.如权利要求9所述的基于正态分布模型的Kafka集群异常节点检测方法,其特征在于,若当天t时刻,节点i的特征值DR,i,t满足f(DR,i,t,μR,i,σR,i)=1,则表示节点i磁盘相关性能存在异常,生成节点i的磁盘异常告警。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311693618.6A CN117851158A (zh) | 2023-12-11 | 2023-12-11 | 基于正态分布模型的Kafka集群异常节点检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311693618.6A CN117851158A (zh) | 2023-12-11 | 2023-12-11 | 基于正态分布模型的Kafka集群异常节点检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117851158A true CN117851158A (zh) | 2024-04-09 |
Family
ID=90527862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311693618.6A Pending CN117851158A (zh) | 2023-12-11 | 2023-12-11 | 基于正态分布模型的Kafka集群异常节点检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117851158A (zh) |
-
2023
- 2023-12-11 CN CN202311693618.6A patent/CN117851158A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111885012B (zh) | 基于多种网络设备信息采集的网络态势感知方法及系统 | |
CN108964995A (zh) | 基于时间轴事件的日志关联分析方法 | |
US10983855B2 (en) | Interface for fault prediction and detection using time-based distributed data | |
WO2017080161A1 (zh) | 云计算中报警信息的处理方法及装置 | |
EP0754382B1 (en) | A method and a system for distributed supervision of hardware | |
CN109510730B (zh) | 分布式系统及其监控方法、装置、电子设备及存储介质 | |
CN110609761B (zh) | 确定故障源的方法、装置、存储介质和电子设备 | |
CN112817815A (zh) | 一种基于业务层监控大数据的网络服务器故障告警系统 | |
CN117851158A (zh) | 基于正态分布模型的Kafka集群异常节点检测方法 | |
CN110545197B (zh) | 节点状态监控方法及装置 | |
CN115499294A (zh) | 一种分布式存储环境网络亚健康检测及故障自动处理方法 | |
CN111988172B (zh) | 一种网络信息管理平台、装置及安全管理方法 | |
CN114866606A (zh) | 一种微服务管理系统 | |
Liu et al. | Anomaly detection based on dual-threaded blockchain in large-scale intelligent networks | |
CN113890814B (zh) | 故障感知模型构建和故障感知方法与系统、设备、介质 | |
CN116204386B (zh) | 应用服务关系自动识别及监控方法、系统、介质和设备 | |
CN112291804B (zh) | 一种5g网络切片下噪声网络的服务故障诊断方法 | |
CN114422324B (zh) | 一种告警信息的处理方法、装置、电子设备及存储介质 | |
CN110890988B (zh) | 一种服务器集群运行监控系统 | |
Babu et al. | Method and apparatus for automated link failure detection in networks using machine learning | |
Shidanjie et al. | Research on fault early warning technology of key operation nodes in power communication network | |
CN117014914A (zh) | 网络故障的定位方法及装置 | |
CN116841834A (zh) | 状态调节方法和装置、存储介质及电子装置 | |
Tavares et al. | Towards a model for the detection and identification of failures in long haul mobile networks | |
CN117640341A (zh) | 节点探测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |