Grafana 告警配置并发送邮件

一.安装并启动sendmail

yum install -y sendmail

systemctl start sendmail

二.修改Grafana配置文件,设置发件人

vim /etc/grafana/grafana.ini

在[smtp] 标签下 修改配置

[smtp]
enabled = true
host = localhost:25

from_address = your address
from_name = your name

其他还可以配置用户名密码来使用公网上有验证的smtp服务,但是这里我用的是本地smtp,不需要配置这些

在这里插入图片描述

保存好配置文件之后,重启Grafana

systemctl restart grafana-server

三.配置Notification channels

点击页面左边的铃铛,并选择 Notification channels

在这里插入图片描述

然后选择 new channels 创建一个 channel,填写 Name 和收件人邮箱地址

在这里插入图片描述
然后点击send Test ,提示成功后,刚填写的邮箱应该就可以收到如下内容的测试邮件

在这里插入图片描述

 四.添加 Alert Rules

首先到进入dashboard页面,左键点击你想添加Alert告警的 graph 面板的面板名,并点解 EDIT,进入面板编辑页面。
注意:只有graph panel 也就是图表面板(一般都是折线图和柱状图或者点状图)可以添加Alert ,其他面板不支持。

在这里插入图片描述

然后点击 左边的铃铛图标,并点击 Create Alert 进入 Alert的设置页面

在这里插入图片描述

这里解释下上图中六个参数的作用
1.Rule Name :Alert规则 的名称
2 每多少时间评估一次
3的输入框里有个提示的图标,鼠标移上去会看到提示,提示的
大概意思是:如果配置了这个参数,那么当查询结果超过阀值的时候,首先会从ok状态转到pedding状态,此时是不会发邮件的,而当 超过阀值的状态的持续时间 过了配置的持续时间时,才会从pending 状态 转成 Alerting状态,并发送通知邮件
在上图中我设置的是Evaluate every 1m for 5m, 也就是说每分钟计算一次是否超过阀值,如果超过阀值的时间持续了5分钟,就发送邮件通知,如果没有的话,只是从ok 状态转为 pedding状态.
发送了通知之后还是会每分钟检查一次,状态恢复正常之前是不会再发邮件的。
而且我们配置的prometheus还有个拿数据的时间间隔,这个也会影响数据的计算。

4、5、6为触发Alert的条件

4是查询的类型,可选项有很多,最大值、最小值、平均值等等
5.这里有三个参数 , 第一个是查询的编号,这个是在Queries里面设置的,稍后再讲,每个查询在每个时间点的结果值就构成了我们看到的图。 第二个是多少时间内, 第三个是开始时间
6. 是阀值

上图的配置简单来说就是 :
A查询从当前时间开始的1分钟内的结果值的平均值如果高于阀值0.002,将会从ok状态 转变为 pedding状态,但不会发邮件,然后每分钟查询一次,如果高于阀值的持续时间超过五分钟,就会发邮件通知。

上图中还有个警告,这个警告的意思是:警报查询中不支持模板变量
这个问题刚碰到的时候确实不知道错哪了。

grafana发送报警的json格式:

{
    "evalMatches": [
        {
            "value": 623.2111111111111, 
            "metric": "averageSeries(test_api.formal.*.cr_api_cost.cost.p99)", 
            "tags": null
        }
    ], 
    "message": "????", 
    "ruleId": 1, 
    "ruleName": "test_api接口", 
    "ruleUrl": "http://localhost:3000/d/rh3bYAfnz/test-ji?fullscreen=true&edit=true&tab=alert&panelId=16&orgId=1", 
    "state": "alerting", 
    "title": "[Alerting] test_api接口"
}

其实这个是 Queries里的问题,我们先切换到Queries 的设置页面

在这里插入图片描述

这里我们就看到了 我之前说的查询编号了,每个编号都有一个查询,然后每个查询有个Legend ,也就是对应着图旁边的某个图例,所以某个查询在每个时间点的结过值的连线,就是折线图中的某条折线。

我们刚刚设置Alert的时候用的是查询A, 也就是system这条线的查询,在查询语句中就用到了模板变量$node

在这里插入图片描述

这个变量是在 dashbord setting 里设置的

在这里插入图片描述在这里插入图片描述

其实就是一个全局的变量,可以自定义值,也可以读取配置文件里的某个标签的值
,在查询中使用。设置好的变量 可以在dashboard的顶部进行选择切换。 在这里插入图片描述

 显然,之前的报错是不支持我们在 Alert 查询中使用这个模板变量的,所以我们把他改成具体的值。

在这里插入图片描述

 改了以后就不会报错了,然后我们回到 Alert的配置页面

在这里插入图片描述

 添加一个或多个需要通知的,配置好的联系人,并在Message填写你自定义的通知内容。
配置好了之后,记得保存dashboard的设置

在这里插入图片描述

然后当Alert的条件被满足后,就会发邮件了。
我们可以在Alert rules 页面看到我们添加 的Alert Rules ,并且可以暂停某个 Alert ,也可以从这里点击某个Alert 进入编辑页面进行编辑。

在这里插入图片描述

在编辑页面我们还可以点击 state history ,查看 Alert 的历史状态。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值