InfluxDB Cloud 2.0 中的监控和警报

导航至

我们今天来谈谈 InfluxDB Cloud 2.0 中的监控和警报。我们致力于让您轻松从数据中学习,本着这种精神,我们将逐步介绍如何在 InfluxDB Cloud 2.0 中设置警报和通知。这只需要几分钟,但首先,让我们谈谈基本原理。

什么是检查 (checks)?

基本上,检查 (check) 是一个条件。例如,如果我的甜甜圈数量为 0,则分配 CRIT(严重)。如果我的电池电量低于 25%,则分配 WARN(警告)。检查 (check) 是通过构建一个查询来形成的,该查询将根据特定条件分配状态(例如,“CRIT”、“INFO”等)。

Monitoring and alerting - InfluxDB Cloud checks

什么是通知 (notifications)?

通知 (notifications) 是我们了解系统正在运行的检查 (checks) 的方式。我们通过配置通知端点(如 Slack)来接收通知。当我收到一条 Slack 消息说“甜甜圈数量已达严重级别”时,这就是一个通知。

流程

检查 (checks) 和通知 (notifications) 构成了 InfluxDB Cloud 2.0 的警报功能,这是监控工作流程的重要组成部分。现在我们已经通过了词汇测试,让我们练习设置检查 (checks) 和通知 (notifications)。以下说明假设您已经设置了数据收集器。如果您还没有数据收集器,请阅读这篇 博客 以开始使用。一旦我们的系统成功收集数据,就可以设置警报了。

InfluxDB 2.0 - Set up an alert

使用主页选项卡上的“设置警报 (Set up alerting)”图形开始。这是左侧导航栏中“监控和警报 (Monitoring & Alerting)”选项卡的快捷方式。

InfluxDB Cloud - monitoring and alerting

创建检查 (checks)

InfluxDB Cloud 知道我们需要一点帮助才能入门,所以请继续点击快乐的创建检查 (Create a Check)按钮。

InfluxDB Cloud monitoring and alerting - create a check

我们看到的页面应该很像数据浏览器 (Data Explorer);我们使用相同的逻辑为我们的检查 (check) 构建查询。

InfluxDB Cloud - build query

第一步是构建将在检查 (check) 内部运行的查询。在上面的示例中,我们查询特定主机的平均 CPU 使用率。获得查询后,单击2. 检查 (Check)以完成检查 (check)。

InfluxDB Cloud - build query and complete check

首先,命名检查 (check)。就像变量名一样,选择具有描述性的名称。屏幕截图中的规则称为“CPU 使用率 (CPU Usage)”。我可以将我的其他检查 (checks) 命名为同样简单的名称,例如“甜甜圈库存 (Donut Inventory)”或“鲨鱼缸水位 (Shark Tank Water Level)”。

InfluxDB Cloud - name your check<figcaption> 还是鲨鱼缸甜甜圈库存?</figcaption>

我们还可以在此处安排检查 (check) 的时间。如果我以 10 秒的间隔收集 CPU 数据(如示例所示),我可能希望每 30 秒安排一次检查 (check),以确保我不会遗漏太多数据。如果我正在监控我的甜甜圈库存,我可能只需要每小时检查一次,因为我的甜甜圈摄入量是有限的。

现在,我们设置想要附加到检查 (check) 的消息。消息模板可以使用字符串插值,因此我们看到的上面的文本:Check: ${ r._check_name } is: ${ r._level } 将评估为类似于 Check: CPU Usage is WARN 的内容。因为我们可以使用查询中的任何列,所以我们可以根据需要尽可能具体地说明此消息。

最后一步是设置条件。让我们仔细看看菜单。

Monitoring and alerting in InfluxDB - set condition

此设置的最佳优点之一是我们可以调整所有值和条件,以查看当前数据中满足该条件的频率。这有助于我们确保状态消息与数据的实际情况相符。如果我的甜甜圈数量始终为 CRIT(严重),最终我会不再认真对待它。

设置查询和检查 (check) 后,单击右上角的绿色复选标记,因为您已完成!

所有检查 (checks) 都将显示在“监控和警报 (Monitoring & Alerting)”选项卡中,并带有一个切换开关,以便轻松启用/禁用。

InfluxDB Cloud - create check - CPU usage

如果您像我一样,您希望稍微确保您的检查 (check) 正在工作。将鼠标悬停在您的检查 (check) 上,然后选择查看历史 (View History)

InfluxDB Cloud - view history

这将显示检查 (check) 的所有结果列表,无论状态级别如何。

InfluxDB Cloud - check statuses

现在我们知道我们的检查 (check) 正在工作,我们可以继续设置通知 (notifications) 了。

创建通知 (notifications)

在同一个“监控和警报 (Monitoring & Alerting)”选项卡中,您将看到另外两列,分别是“通知端点 (Notification Endpoints)”和“通知规则 (Notification Rules)”。

通知端点 (notification endpoints)

如果您使用的是 Cloud 2.0 的免费层级,那么目前 Slack 是唯一可用的通知端点 (Notification Endpoint)。没关系,因为 Slack 非常容易设置。确保您已启用 Slack 传入 Webhooks。我们所要做的就是提供我们的 Slack Webhook URL 并命名端点。

InfluxDB Cloud - create notification endpoint

通知规则 (notification rules)

我们已经完成了大部分工作。让我们立即获得通知 (notification)!只剩下最后一步:创建通知规则 (notification rule)。此步骤突出了检查 (checks) 和通知 (notifications) 之间的区别。

InfluxDB Cloud - edit notification rule

我们可能在系统中每 15 秒运行一次检查 (checks),但这并不意味着我们一定需要通知 (notification)。在通知规则 (Notification Rule) 中,我们可以确定通知规则 (notification rule) 应评估是否实际发送通知 (notification) 的间隔。在上面的示例中,我的通知规则 (notification rule) 每 5 分钟运行一次,并且仅当状态为 CRIT(严重)时才向我发送 Slack 消息。检查 (check) 中的其余数据可在历史记录(和 _monitoring 数据库)中供我使用,但我只想在我的甜甜圈用完时(或者我的 CPU 使用率过高以至于我的服务器即将崩溃时)收到通知。

消息模板的工作方式与我们检查 (check) 中的状态消息模板完全相同。我们可以在此处进行插值,以便我们可以提供尽可能多的数据。

InfluxDB Cloud - notification rule

总结

我们做到了!从开始到结束,我只花了短短几分钟就收到了关于我危险的 CPU 使用率的 Slack 通知 (notification)。使用 InfluxDB Cloud 2.0 设置您自己的警报,并告诉我们您的想法!