【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

在 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:25739
用户头像

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

关注

评论

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

并发不是并行

en

Microchip发布具有强大编程和调试功能的新型在线仿真器(ICE)

Geek_2d6073

openLooKeng算子接口和执行流程

openLooKeng

【笔记】学《郭东白的架构课》:访谈|对话于冰(中)

术子米德

架构师成长笔记

快递,菜鸟驿站,直播购物:老年人的电商之墙

脑极体

双龙贺岁,龙蜥 LoongArch GA 版正式发布

OpenAnolis小助手

Linux 开源 新年

LabVIEW播放提示声音或者音乐

不脱发的程序猿

LabVIEW 播放提示声音或者音乐

架构训练营 week8 作业

红莲疾风

「架构实战营」

模块六 - 电商系统微服务设计

圈圈gor

架构实战营 「架构实战营」

Spark合并Iceberg小文件内存溢出问题定位和解决方案

漫长的白日梦

spark iceberg 小文件

再见,Microsoft Academic——你好,开放式研究基础设施?

DisonTangor

搜索引擎

【笔记】学《郭东白的架构课》:访谈|对话于冰(下)

术子米德

架构师成长笔记

ReactNative进阶(四十):应用 ListView 实现分组列表

No Silver Bullet

ListView React Native 1月月更

建木持续集成平台v2.2.1发布

Jianmu

DevOps 持续集成 CI/CD

Hoo虎符研究院 | 币圈后浪 BreederDAO区块链游戏的NFT工厂

区块链前沿News

虎符 Hoo 虎符交易所

Go 语言快速入门指南:Go 实现简易Web应用

宇宙之一粟

Go web服务器 Go 语言 1月月更

拆分电商系统为微服务

tony

openLooKeng | Oracle update和delete支持简介及实现

openLooKeng

虎年就要玩虎符 春节就要瓜分虎符虎年大礼包

区块链前沿News

Hoo虎符 Hoo 虎年 春节活动

第六节:SpingBoot基本配置一

入门小站

springboot java

ReactNative进阶(四十一):应用 FlatList 实现分组列表

No Silver Bullet

1月月更 ReactNative FlatList

openLooKeng助力中移在线获“ICT优秀案例”

openLooKeng

建一座国际连锁「商场」:openEuler 的雄心与蓝图 | 开源访谈《源创者说》首播

科技热闻

在线时间戳计算时间差

入门小站

工具

如何系统分析项目的干系人?

石云升

项目管理 1月月更

模块六作业

黄秀明

「架构实战营」

(1-24/24)awesome「结构」

mtfelix

300天创作 2022Y300P

电商系统微服务化

皓月

「架构实战营」

ReactNative进阶(四十二):面试必备:2022 ReactNative 经典面试题总结(含答案)

No Silver Bullet

面试题 1月月更 ReactNative

如何写好一个Java方法?

蜜糖的代码注释

Java 后端开发 写好代码

【笔记】学《郭东白的架构课》:访谈|对话于冰(上)

术子米德

架构师成长笔记

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