带你读《Elastic Stack 实战手册》之43:——3.5.2.Kibana的Alert(2)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之43:——3.5.2.Kibana的Alert(2)

《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.2.Kibana的Alert(1) https://developer.aliyun.com/article/1228799


Alert Instances 的概念和抑制重复告警

 

检查一个 condition 条件时,Alert 可能会识别该条件的多次出现。每出现一次符合condition 条件的情况,Kibana 就生成一个 Alert Instances,即警报实例。那么 Kibana 分别跟踪每个警报实例,并对每个实例采取行动。

 

重复告警

以下面的图示例,将每个平均 CPU 为> 0.9 的服务器作为 Alert Instance 进行跟踪。然后将每个超过阈值的服务器都将发送单独的电子邮件。

image.png

 


那就会带来一个问题,当 Alert Instances 过多的时候,就会造成大量通知重复发送,即Alert Noise 的现象。

 

比如一个警报每分钟监控三个服务器的 CPU 使用情况 > 0.9,就发送邮件通知工作人员:

 

l 第一分钟:服务器 X123 的 CPU > 0.9

l 其中一封邮件发送通知工作人员服务器 X123 的 CPU 过高。

 

l 第二分钟:X123 和 Y456 的 CPU > 0.9

l 发送了两封邮件,一封是关于 X123 的,一封是关于Y456的。

 

l 第三分钟:X123, Y456, Z789 的 CPU > 0.9

l 发送了三封邮件,分别是 X123,Y456,Z789。

 

在上面的例子中,对于相同的条件,在3分钟的时间内,向服务器 X123 发送了3封邮件。

 

抑制重复告警


Kibana 针对这个情况做了抑制重复通知的优化,主要是通过设置通知间隔来抑制重复多余的告警。比如在上面的例子中,将警报重新通知间隔设置为5分钟,那么 Alert 发送通知的情况则如下:

 

l 第一分钟:服务器 X123 > 0.9

l 邮件发送报告服务器 X123 的 CPU 过高

 

l 第二分钟:X123 和 Y456 > 0.9

l 邮件发送报告服务器 Y456 的 CPU 过高

 

l 第三分钟:X123, Y456, Z789 > 0.9

l 邮件发送报告服务器 Z789 的 CPU 过高。

 

当然过了五分钟后,如果服务器 X123 > 0.9还是存在,那么继续会发送邮件,报告服务器 X123 的 CPU 过高。

 

Kibana Alert 的实现机制

 

Kibana Alert 将 Alert Check 的信息和 Action 的信息,持久化在 Elasticsearch 在后台执行。这有两个主要好处:

 

1、持久性:所有的任务相关的信息都存储在 Elasticsearch 中,所以如果 Kibana 重新启动,Alert 和 Action 将从它们停止的地方恢复

2、伸缩性:多个 Kibana 实例可以从 Elasticsearch 中读取和更新相同的任务队列,允许

Alert 和Action 跨实例分布。如果现有的 Alert 执行数量超出了现有的 Kibana 实例的容量上限,可以增加额外的 Kibana 实例。

 

Kibana 后台任务的执行机制


1、每隔3秒轮循 Elasticsearch 任务索引以查找过期任务;

2、任务执行后在 Elasticsearch 索引中更新,使用乐观并发控制来防止冲突;

3、任务在 Kibana 服务器上运行。每个 Kibana 实例最多可以运行 10 个并发任务,因此每个间隔最多可以声明 10 个任务;

4、对于重复后台检查的 Alert,任务完成后将按照检查间隔再次调度。

 

因为每3秒轮询一次任务,并且每个 Kibana 实例只能同时运行10个任务,所以 Alert 和

Action 任务可能会在以下情况延迟运行:

 

1、警报使用较小的检查间隔。最低间隔时间可能是 3 秒,但建议间隔时间为 30 秒或更高

2、许多警报或操作必须同时运行。在这种情况下,挂起的任务将在 Elasticsearch 中排队,并且每隔 3 秒从队列中取出 10 个任务

3、长时间运行的任务占用槽位的时间较长,留给其他任务的槽位较少

 

《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.2.Kibana的Alert(3) https://developer.aliyun.com/article/1228796

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
监控 测试技术 索引
带你读《Elastic Stack 实战手册》之43:——3.5.2.Kibana的Alert(1)
带你读《Elastic Stack 实战手册》之43:——3.5.2.Kibana的Alert(1)
105 0
|
自然语言处理 监控 关系型数据库
带你读《Elastic Stack 实战手册》之43:——3.5.2.Kibana的Alert (4)
带你读《Elastic Stack 实战手册》之43:——3.5.2.Kibana的Alert (4)
106 0
|
监控 调度 数据安全/隐私保护
带你读《Elastic Stack 实战手册》之43:——3.5.2.Kibana的Alert(3)
带你读《Elastic Stack 实战手册》之43:——3.5.2.Kibana的Alert(3)
103 0
|
索引
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(4)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(4)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(2)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(2)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(8)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(8)
|
项目管理 索引 微服务
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(20)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(20)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(7)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(7)
|
API 数据库
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(5)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(5)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(11)
带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(11)

热门文章

最新文章

相关课程

更多