【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

在 Open Distro for Elasticsearch 中设置警报

  • 2019-10-04
  • 本文字数:2605 字

    阅读完需:约 9 分钟

在 Open Distro for Elasticsearch 中设置警报

Elasticsearch 的主要用例之一是日志分析:您从基础设施收集日志,将每个日志行转换为 JSON 文档,并将这些文档发送到 Elasticsearch 的 _bulk API。转换后的日志行包含许多字段,每个字段都包含多个值。例如,Apache Web 日志行具有一个源 IP 地址字段、一个请求 URL 字段和一个状态代码字段(还有其他各种字段)。当您使用 Elasticsearch 执行日志分析时,可以使用 Kibana 的可视化功能来将这些字段中的值绘制成图形,或直接查询它们。一种常见用例是构建仪表板来监视您的基础设施。例如,您可以将 HTTP 5xx 状态代码的计数绘制成图形,观察图形并对其中的变化做出反应。如果您看到 5xx 代码数量出现突增,则可能是您的某个服务器出现了问题。


当然,直接监视 Kibana 属于手动流程。Open Distro for Elasticsearch 的警报插件允许您自动监视 Elasticsearch 索引中的数据。您可以使用带有由您设置的触发器(即触发条件,用于指明监视器应在何时发送警报)的监视器(即事先安排的作业)。警报是指在满足触发条件时发出的通知。触发器触发时,监视器将执行特定操作(向目标发送消息)。


本文使用模拟的物联网 Device Farm 生成数据并将数据发送到 Open Distro for Elasticsearch。设备上配有传感器,可以模拟不同的浮点值模式。我们将使用 MonotonicSensor,它的值会不断增加,以强行突破我将设置的警报阈值。如果您有意一边阅读一边操作,可以在 GitHub 上下载模拟器(恳请您为此项目献言献策! 我很高兴制作出这个基本的代码库,让大家以此为起点去取得进展)。

模拟器概览

传感器

模拟器的核心类是 Sensor 类。Sensor 类具有 report 方法。调用此方法时,它会更新并返回传感器的对应值。Sensor 有多个子类:


  • SineSensor:根据当前时间戳生成正弦波。

  • ConstSensor:生成常量值。该类包括一个随机的“模糊”因子,可以在特定值附近偏移。

  • DriftingSensor:允许在起始值的基础上连续、随机地偏移

  • MonotonicSensor:通过随机模糊以恒定增量增加其值。

  • 所有传感器都有一个值名称、一个值和一个 UUID。report 函数包括时间戳、值名称、传感器的 UUID 和传感器的值。

设备

在本文中,我将创建一组设备,用以模拟现场的 IoT 设备,测量温度和湿度,并发送设备的 CPU。设备是一组传感器的集合。它们具有一个 report 方法,可递归调用所有传感器的 report 方法,并返回传感器报告的集合。


我将某个设备的 CPU 传感器设置为不断向上偏移,来模拟设备中的问题。您可以在以下折线图中看到预期的“不良行为”:



在接下来的部分中,我们将设置在 CPU 利用率达到 90% 时触发警报。

设置目标

在 Open Distro for Elasticsearch 中创建警报时,可以创建一个或多个监视器以及一个或多个目标。您可以使用 Slack 频道或 Amazon Chime 作为目标。也可以设置一个自定义 webhook (URL) 来接收消息。如果您选择自定义 webhook,那么需要设置好标题和消息正文,该插件会通过 POST 操作将消息发送到目标 URL。


我使用 Slack 从我的 Open Distro for Elasticsearch 集群接收警报(如果您更喜欢 Chime,还可以参阅 Chime 文档,以查看有关如何创建聊天室并获取其 webhook URL 的说明)。


注意:您应该在创建监视器之前设置目标。


本文假设您已部署 Open Distro for Elasticsearch,其中的数据构成了监视器和警报的基础。(若尚未部署,请参阅 Get Up and Running with Open Distro for Elasticsearch。) 在浏览器中打开 Kibana,然后单击 Alerting 选项卡。在窗口顶部,单击 Destinations,然后单击 Add Destination。



在 Add Destination 对话框中,为您的目标指定一个 Name、选择目标的 Type,并设置 Webhook URL。单击 Create。您可以根据需要设置多个目标,以便向所有相关方分发警报。


设置监视器

Open Distro for Elasticsearch 中的监视器支持指定要监视的值。您可以通过图形方式或通过指定 Elasticsearch 查询来选择值。首先定义监视器,然后为要监视的值定义触发器。


单击 Monitors 选项卡,随后单击 Create Monitor。



为您的监视器指定一个 Name。我将监视器命名为 Device CPUs。您可以将频率设置为某个预定义的时间间隔,或使用 cron 表达式进行更精细的控制。我选择的是“Every 1 minute”。



在页面的 Define Monitor 部分中,指定要监视的值。我已选择 logs- * index,并监视“CPU”字段的最大值。这还没有创建触发器,我们将在下一步中执行创建操作。



单击“Create”。这将打开 Define Trigger 页面。

创建触发器

创建触发器时,可以为要监视的字段指定阈值。当该字段的值超过阈值时,监视器会进入 Active 状态。我创建了一个名为“CPU Too High”的触发器,阈值为 90,严重性级别为 1。



设置触发器后,可以设置警报插件要执行的操作。


向下滚动该页面以添加操作。我添加了一项操作,用于向我的 Slack 目标发送消息,包括监视器名称、触发器、严重性以及警报激活的时间段。您可以使用 Mustache 模板为您将收到的消息创建模板。


向下滚动并单击页面底部的 Create:



##结果


当您返回 Alerting Dashboard 时,您将看到警报处于“Enabled”状态。警报可以处于各种不同的状态。“Enabled”表示监视器查询成功,并且未触发该触发器。其中还有一个有用的时间线显示,显示您的监视器的警报历史记录:



为了使警报达到“Active”状态,我发送了某台 CPU 使用率从 50% 上升到 100% 的故障设备的模拟传感器数据。在这个数值达到 90% 时,我在 Chime 中收到以下消息:



Open Distro for Elasticsearch 的警报插件可让您监视日志文件中的关键数据,以便在问题初现端倪时快速响应。通过识别 KPI、设置阈值并向第一应急响应者发放警报,您可以缩短关键问题的响应时间。


有问题或疑问? 希望参与讨论? 您可以在我们的论坛上获得帮助并讨论 Open Distro for Elasticsearch。您可以在这里提出问题。


作者介绍:


Jon Handler


Jon Handler (@_searchgeek) 是总部位于加利福尼亚州帕罗奥图市的 Amazon Web Services 的首席解决方案架构师。Jon 与 CloudSearch 和 Elasticsearch 团队密切合作,为想要将搜索工作负载迁移到 AWS 云的广大客户提供帮助和指导。在加入 AWS 之前,Jon 作为一名软件开发人员,曾为某个大型电子商务搜索引擎编写代码长达四年。Jon 拥有宾夕法尼亚大学的文学学士学位,以及西北大学计算机科学和人工智能理学硕士和博士学位。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/iot-alerting-open-distro-for-elasticsearch/


2019-10-04 21:25741
用户头像

发布了 1837 篇内容, 共 92.7 次阅读, 收获喜欢 73 次。

关注

评论

发布
暂无评论
发现更多内容

独具特色的臻品音库,带来更优质的听觉体验

百度大脑

人工智能 独具特色

WebAssembly + Dapr = 下一代云原生运行时?

阿里巴巴云原生

云计算 容器 开发者 运维 云原生

技术向上,雪坡向下:拼多多的“新帅”与新路

脑极体

资源数据治理的应用实践

鲸品堂

数据 治理 运营商

干了八年的阿里面试官,给大家分享我面试时最爱问的Java面试题

Java架构师迁哥

uni-app rtc插件集成指南及常见问题--iOS

anyRTC开发者

uni-app ios 音视频 WebRTC RTC

复习一周 成功拿到字节Offer 我也惊呆了

学Java关注我

Java 面试 程序人生 编程语言 计算机

软件IT专业大学生学习情况调查

老猿Python

学习 大学生 软件IT专业 高校

你“会”学算法吗?

IT蜗壳-Tango

“Windows找不到文件...”,怎么处理?

Emotion

Windows 10 系统 找不到系统文件 错误弹窗 windows找不到文件

000 ES suggest-英文

小林-1025

es7

面试10家公司,终入阿里,感谢大佬的Java面试进阶解析笔记

Java架构师迁哥

公安局情指勤一体化指挥调度系统开发

数据人上班划水都聊什么

数据社

大数据 程序员

大数据技术发展的过程

菜菜

太简单了!这套java内部类和异常的总结,只学了2个小时就学会了

牛哄哄的java大师

Java

002 ES NGram 分词 + suggest

小林-1025

ES es7

Rust从0到1-集合-Vector

rust 集合 Collections vecotr

001 ES suggest-IK 中文

小林-1025

ES es7

头一次见到阿里大牛把spring boot讲的如此通俗易懂

Java 编程 程序员 架构

不想搞Java了,现在Java面试为何这么难

Java架构师迁哥

智能创作平台全新升级,助力开启智能媒体新时代

百度大脑

人工智能 智能创作

封神总结!蚂蚁金服+滴滴+美团+拼多多+腾讯15万字Java面试题

Java 程序员 架构 面试

这份清华学霸的Java反射完整版学习笔记,2小时带你从入门到入土

飞飞JAva

shell的三种循环

做个人吧

seata-golang 一周年回顾

阿里巴巴云原生

Java 数据库 微服务 云原生 Go 语言

菩萨心肠 霹雳手段|靠谱点评

无量靠谱

接纳不完美的自己,才能拥有完整的人生|靠谱点评

无量靠谱

阿里云 ARMS 3.0 重磅发布云拨测,Gartner APM 魔力象限产品解读

阿里巴巴中间件

阿里云 Gartner 可观测

Spring 实战:自定义 Filter 优雅获取请求参数和响应结果

看山

Spring实战

【翻译】JVM-技术专题-ZGC学习手册(1)概念定义

洛神灬殇

翻译 ZGC JVM 基本概念

在 Open Distro for Elasticsearch 中设置警报_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章