前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何选择Elastic Stack中的Alert和Watcher

如何选择Elastic Stack中的Alert和Watcher

原创
作者头像
点火三周
发布2022-06-15 21:32:50
4.1K0
发布2022-06-15 21:32:50
举报
文章被收录于专栏:Elastic Stack专栏Elastic Stack专栏

Kibana 与 Elasticsearch中的警报功能

警报是Elastic Stack的一个重要组成部分。你可以使用存储在Elasticsearch中的数据,在满足特定条件时触发警报。警报动作可能涉及发送电子邮件或Slack消息,将数据写入Elasticsearch的索引,调用并传递数据给外部网络服务,等等。

在Elastic Stack中,有两种类型的警报框架。Kibana Alert和Elasticsearch Watcher。Kibana Alert与Kibana中应用程序集成,如Observability、机器学习和Maps。另一方面,Elasticsearch Watcher允许你直接根据索引数据创建警报。

在本文中,我们将讨论Alerts和Watch的基础知识,并提供简单的指导以让您可以为一个用例确定正确的警报类型

使用Elastic Stack的警报功能

在Elastic Stack中,有很多方法可以创建和管理警报。Kibana将Alert与许多应用程序集成,包括Observability、堆栈监控、地图、机器学习和安全。定义警报的最佳方式是在这些应用程序的上下文中进行。例如,如果你对在过去5分钟内的错误数量感兴趣,并期望在超过一个给定的阈值时收到通知,你可以在Kibana的Logs应用程序中启动警报创建。

在日志应用程序的背景下创建的警报规则(conditions和actions)是指来自各个日志相关索引中包含的日志数据。Logs应用程序已经被配置为使用来自这些特定索引的数据,并以统一的方式将其视为日志条目。日志应用希望日志索引符合 Elastic Common Schema,因此希望所有索引中都有某些基本字段,例如@timestamp。

Kibana应用程序不能支撑你的用例,或者当Kibana应用程序不支持从其UI上创建你所需的警报时,你仍然可以使用Kibana中的Rules and Connectors功能创建警报。在这个页面上,你可以创建和管理所有Kibana级别的警报。例如,如果你想在实体

进入地图上定义的地理空间区域时收到通知,例如,城市公交车进入施工区,你可以创建一个电子围栏告警:

当Rules and Connectors中的规则类型都不支持你的用例时,你仍然可以尝试使用Advance Watcher来创建一个警报。Watcher

是索引级别的警报,完全构建在Elasticsearch后端运行。(注意,这与Kibana Alert的不同,Kibana Alert完全由Kibana来提供告警的调度,检查,和运行)尽管它们可以使用Kibana用户界面进行部分定义,但最好使用Dev Tools控制台的特定领域语言(DSL)和_watcher API。当规则条件需要来自高级DSL查询或聚合的结果时,或者当你想对数据进行更进一步的原酸以用于下一步的动作时,你可以使用Watcher。例如,你可以使用Elasticsearch查询和聚合来跟踪复杂的SLA,当SLA达到阈值或任何其他条件被满足时,使用Watcher来通知你。

另一个与Kibana Alert的重要不同是,Watcher也可以用来调度Elasticsearch的任务。两个常见的用途是调度报告的定时生成和发送电子邮件,或运行Elasticsearch任务,如重新索引。

何时使用 Alert 或 Watcher

大多数情况下,我们优先选择Kibana Alert,特别是当你需要告警的场景与以下场景之一吻合时,请选择开箱即用的Kibana Alert,会让你事半功倍:

APM AND USER EXPERIENCE


  • Anomaly 当一个服务的延迟、吞吐量或失败的交易率出现异常时,发出警报
  • Error count threshold 当服务中的错误数量超过定义的阈值时告警。
  • Failed transaction rate threshold 当服务中的事务错误率超过定义的阈值时告警。
  • Latency threshold 当服务中特定事务类型的延迟超过定义的阈值时告警。

LOGS


  • 日志阈值当日志聚合超过阈值时告警。

MACHINE LEARNING


  • 异常检测作业运行状况 异常检测作业有运行问题时发出告警。为极其重要的作业启用合适的告警。
  • 异常检测告警 异常检测作业结果匹配条件时告警。

METRICS


  • 库存 当库存超过定义的阈值时告警。
  • 指标阈值 当指标聚合超过阈值时告警。

STACK RULES


  • Elasticsearch 查询 匹配 Elasticsearch 查询时告警。
  • 索引阈值 聚合查询达到阈值时告警。
  • 跟踪限制 实体包含在地理边界内时告警。
  • 转换运行状况 转换出现运行问题时发出告警。

UPTIME


  • Uptime TLS 运行时间监测的 TLS 证书即将过期时告警。
  • Uptime TLS (Legacy) 运行时间监测的 TLS 证书即将过期时告警。未来的版本将弃用此告警。
  • 运行时间监测状态 监测关闭或超出可用性阈值时告警。

堆栈监测


  • CCR read exceptions 检测到任何 CCR 读取异常时告警。
  • Cluster health 集群的运行状况发生变化时告警。
  • CPU Usage 节点的 CPU 负载持续偏高时告警。
  • Disk Usage 节点的磁盘使用率持续偏高时告警。
  • Elasticsearch version mismatch 当集群包含多个版本的 Elasticsearch 时告警。
  • Kibana version mismatch 当集群包含多个版本的 Kibana 时告警。
  • License expiration集群许可证即将到期时告警。
  • Logstash version mismatch集群包含多个版本的 Logstash 时告警。
  • Memory Usage (JVM)节点报告高的内存使用率时告警。
  • Missing monitoring data监测数据缺失时告警。
  • Nodes changed添加、移除或重新启动节点时告警。
  • Shard size平均分片大小大于配置的阈值时告警。
  • Thread pool search rejections当搜索线程池中的拒绝数目超过阈值时告警。
  • Thread pool write rejections当写入线程池中的拒绝数量超过阈值时告警。

如果你想创建一个不属于Kibana提供的应用级规则的警报规则,而数据级的Stack规则又不能为你的需求提供足够的表达能力,你可以使用Watcher。

Watcher允许你根据你可以在Elasticsearch查询DSL中编写的任何查询和聚合来创建规则。高级表还有其他用途,如报告或进程调度,

Watcher最重要的最佳实践是只有在Kibana Alert不能解决问题的时候才使用它们。因为,Watcher是出了名的难写,因为它们需要有JSON语法、DSL查询和聚合以及Painless脚本的知识。更复杂的是,Watcher不能与Kibana Alert的连接器一起工作。Watcher连接器必须在每个节点的yaml中配置,而不是像我们对Kibana级连接器那样通过Kibana UI配置。此外,并不是每个Kibana级别的连接器都有对应的Watcher。最后,开发Watcher开发任何其他类型的代码是一样的。它必须经过适当的测试,而且必须被管理。特别是,当升级堆栈时,必须对所有的Watcher进行测试,并在必要时进行更新。考虑到所有这些,请尽力先使用Kibana Alert,而不是试图编写一个Watcher规则。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kibana 与 Elasticsearch中的警报功能
  • 使用Elastic Stack的警报功能
  • 何时使用 Alert 或 Watcher
    • APM AND USER EXPERIENCE
      • LOGS
        • MACHINE LEARNING
          • METRICS
            • STACK RULES
              • UPTIME
                • 堆栈监测
                相关产品与服务
                Elasticsearch Service
                腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档