我尝试设置了Grafana的警报
目前,许多公司都在使用Grafana来可视化信息并接收有关基础设施和数据中发生的事件的通知。本文将介绍Grafana警报规则的创建和设置方法。
首先,您可以登录MetricFire的免费试用版,在平台上发送指标并创建Grafana仪表板。

设置监控环境
为了解释Grafana的警报使用方法,需要先设置监控环境。
在这篇文章中,我们将介绍使用Elasticsearch作为MetricFire服务化的Grafana数据源。这是一种方便的方法,可以轻松安装和配置Grafana,而不会引起本地安装相关的问题。如果您想了解如何在Elasticsearch中使用Grafana,请参考此教程。
此外,使用MetricFire的免费试用版本,您可以使用其他数据源来进行简单设置。最常见的数据源(如StatsD、Collected、AWS、New Relic等)可以作为产品内的附加组件使用。此外,您还可以从您的系统中下载MetricFire代理程序,以将指标传送到平台上。对于Prometheus,您可以通过API密钥修改prometheus.yml文件,以便MetricFire可以读取数据。具体步骤已在文档中说明。
为了监视Grafana上的某个内容,需要从简单的Python脚本(生产者)生成随机数据,并将其发送到Elasticsearch索引中。为了将数据放置到索引中,这里使用Logstash工具。尽管数据是随机的,但有时可能会在指定范围内生成数据,同时也可能生成超出给定范围的数据。这发生在需要触发Grafana警报的情况下。
脚本会为parameter_1生成-5到34之间的随机值。在parameter_2中,将生成100到209之间的随机数,并且每20秒生成一次在250到254之间的值。该脚本每秒将新数据发送到Logstash,这样就可以获得适合创建和执行Grafana警报的数据集。
创建和设置警报规则的方法
如果您想收到与警报相关的通知,请至少定义一个通知通道。这将使得触发的警报信息被传送。在MetricFire的产品Hosted Graphite中,您可以使用诸如Slack和PagerDuty等附加组件作为通知通道。在这里,我们将介绍如何在MetricFire的产品Hosted Graphite中使用Slack作为通知通道的教程。(但是,请注意使用通知通道不是触发警报的必要条件。)
用户可以针对每个仪表板面板独立创建警报规则。我们提供了一个监测Elasticsearch索引中的3个字段(parameter_1、parameter_2、parameter_3)的仪表板。

实际上,您可以在创建面板时设置警报规则,但如果您已经有面板并想向其添加警报规则,则需要点击编辑按钮对面板进行编辑。

然后,点击贝尔图标上的Alert按钮。

然后,最后点击“创建警报”按钮。

从这里开始,我们将设置警报。

接下来,我们需要给警报设置一个名称,设置评估频率,并设置触发警报的具体条件。在本次警报中,我们希望当参数一的平均值超出范围[-2 : 32]时进行通知。由于Python脚本生成的值在-5到34之间,所以偶尔会超出[-2 : 32]的范围。
观察条件部分,我们可以看到query(A, 1s, now)。现在我们解释一下这些参数的意义。 “A” 是一个用于可视化指标的查询。我认为,这个查询的定义可以在之前的一个图片中看到(在点击了带铃铛的按钮之前)。在我们的情况下,这是参数_1在过去1秒钟内的平均值。参数”1s”和”now”代表设置时间范围的表示方式。它表示从”1秒前到现在”。也就是说,我们想要估算过去1秒钟的数据。在Conditions部分下面,我们还可以设置当数据缺失或出现错误时的警报行为。由于数据可能存在缺失,所以这一点非常重要。
在下面的图表中,我们方便地将警报条件可视化。

向下滑动页面时,将显示用于指定通知渠道的部分。在这里,我们将使用之前创建的”example email”通道。

要应用更改,请保存仪表板。运行Python脚本后,请稍等片刻,然后您将收到有关警报通知的邮件。以下是该邮件的示例。

同样,您也可以创建其他警报规则。下图显示了有关 parameter_2 警报条件的信息。在这种情况下,我们希望在过去10秒钟内计算得到的最大值超过253时收到通知。

除了”範圍外”和”範圍外/範圍外”這兩種條件外,還有第三種條件類型叫做”找不到值”。以下是該條件的設定方法。

请记住,你可以创建由多个模块组成的复杂条件。要做到这一点,只需点击第一个条件模块下方的“加号”按钮即可。条件模块可以使用“与”或“或”运算符进行堆叠。结果将如下所示。

请注意,评估中有许多不同的函数,如count、sum、median、diff、min、max等。此外,您还可以使用其他查询设置警报(不仅限于上述示例中的”A”)。
假设有两个查询。称为A和B(参考下方图像)。查询A反映了指定时间段内parameter_1的平均值。查询B反映了指定时间段内parameter_2的总和。

如果有多个不同的查询,您可以根据它们创建警报。

对于基础设施和网络监控非常方便的警报工具。
对于监控基础设施和网络的人来说,方便的警报有几种类型。在基础设施方面,可以监控服务器负载、请求等待时间、错误率和内存使用量。如果想要监控应用程序的性能,则可以进一步增加特定用例的指标来监控。例如,如果在短时间内有大量的新用户注册,则可以显示警报。请记住,面板查询(在本例中称为”A”)可以包含对数据源的自定义请求。要实现这一点,请使用查询字段(请参见下面的图像)。对于ElasticSearch源,这需要使用Lucene查询。

由于可以创建自定义请求,因此可以开发复杂的警报条件。
总结
在本文中,我们专注于创建和设置Grafana的警报条件。如果需要有关警报的通知,您需要设置通知渠道。
如果想知道MetricFire如何满足您的监控需求,请预约演示并直接联系我们。此外,您还可以使用为期14天的免费试用,仅需数分钟即可创建您独有的Grafana仪表板。请务必注册。
那么,我们下一篇文章见!