《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.2.Kibana的Alert(3) https://developer.aliyun.com/article/1228796
count 为统计文档数,不需要填写字段,其余方法会自动匹配出可计算类型的字段,比如long类型。
OVER 条件可以配置聚合全部文档或者分组。如果使用了分组,即 top,那么当每个组超过阈值时,将为每个组创建一个 Alert Instance。在配置中,top 会设定分组数量,限制高基数字段上的实例数量。比如上图中只检查 user.id.keyword 数量最多的3组。
PUT _ingest/pipeline/add-timestamp { "processors": [ { "set": { "field": "@timestamp", "value": "{{_ingest.timestamp}}" } } ] } POST _bulk?pipeline=add-timestamp { "create" : { "_index" : "test-es", "_id" : "1" } } { "user.id":"may","fail_num":"1"} { "create" : { "_index" : "test-es", "_id" : "2" } } { "user.id":"may","fail_num":"4"} { "create" : { "_index" : "test-es", "_id" : "4" } } { "user.id":"jack","fail_num":"1"} { "create" : { "_index" : "test-es", "_id" : "5" } } { "user.id":"may","fail_num":"6"} { "create" : { "_index" : "test-es", "_id" : "6" } } { "user.id":"jack","fail_num":"3"} { "create" : { "_index" : "test-es", "_id" : "7" } } { "user.id":"jack","fail_num":"3"} { "create" : { "_index" : "test-es", "_id" : "8" } } { "user.id":"bill","fail_num":"9"} { "create" : { "_index" : "test-es", "_id" : "9" } } { "user.id":"jack","fail_num":"1"} { "create" : { "_index" : "test-es", "_id" : "10" } } { "user.id":"jack","fail_num":"1"}
相关的查询结果会有一张时序图来体现,如下图:
从图中看出前三个是 may 6次、jack 9次、bill 9次。
再设置一个 Action,此处是写进索引 alert-record
保存后,过段时间 Alert 的详情里就有了 Alert Instance 的相关信息。
其中 Status 为 Active 的是待执行 Action 操作的。不管 Alert Instance 在被监控判断的期间是否被静音( Mute ),最终状态都为 OK。
关于 Actions
预设置 Connector 和 Action
可以在 kibana.yml 中预设值 Connector 或者 Action Type。
预设 Connector 需要将配置和相关证书设置清楚,不可以数组对象的形式设置,且配置完以后不可修改。相比之下在 Kibana 启动后,再设置 Connector 相对灵活许多。
Connector 和 Action 的具体配置可参考官方网站。
Action 的变量传入
在设置 Action 时,根据 Action Type 的不同,会设置不同的 properties。比如,email 配置Subject 和 Message;Index 提供 document。具体细节参考每个类型的具体 action 配置。
虽然各个 Properties 不一样,但是在配置时都可以把 Alert 中监控到的数据,作为变量传入报警信息中。使用 Mustache 模板语法 {{variable name}},可以在检测到一个 Condition 时将警报值传递给一个 Action。
可用的变量因 Alert Type 不同而不同,可以使用 "Add variable" 按钮来访问列表。
下图是 email 的可传入参数:
创作人简介:
扈臣聪 ,擅长应用设计与开发,关注Elasticsearch、Mysql、NLP等技术。
博客:https://developer.aliyun.com/profile/etlld5ckrmzfc