在数据可视化中,可能会存在监测某项数据是否会超过一定数值的需求。Grafana提供了自动告警功能,可以通过配置Alert rules监测数据是否超过阈值,并通过邮件、钉钉、slack等发送警告信息。
1、首先新建一个panel,然后点击下方Alert,创建一个新的alert rule
2、进入到Alert rule的配置页面,第一步是基本信息。先修改Rule name,Rule Type这里直接采用默认选项。
Folder选项这里,需要预先创建folder,然后再选择
3、第二步配置,A是Query,即实际的查询语句;B是Expression,用来配置警报的表达式。二者是配对使用的,如果需要再添加新的规则,就需要同时再添加一个Query和一个Expression。以下图为例,配置的是当A的最新值大于0.5就会发出警报。
4、第三步主要配置警报条件达到多少时间后发出警报信息。默认配置的Evaluate every 1m for 5m
表示挂起状态超过5分钟就会发出警报,可以根据自己实际的需求进行修改
for的含义:一旦条件被违反,警报将进入挂起状态。如果挂起的时间超过“for”值,它将成为触发警报。
5、第四步直接采用默认的配置,然后保存当前的Alert Rule。正常状态下,panel标题左边为绿色的心形图案,如下图。pending状态为黄色,警报状态下为红色
6、要实现通过邮件、钉钉等发送警报消息,还需要进一步配置Contact points。点开Contact points可以看到Grafana默认添加了一个名为grafana-default-email的contact point。
6、grafana-default-email是Email类型的,点击编辑,在Addresses一栏填入需要发送警报信息的邮箱地址
7、要通过邮件发送警报信息,Grafana还需要在grafana.ini文件中添加smtp设置来配置发件地址。先在docker-compose.yml同级目录下新建文件夹Grafana,然后在该文件夹下新建文件grafana.ini,将用来替换Grafana默认的配置文件。
[smtp]
#开启smtp配置
enabled = true
# smtp 服务器,这里以新浪邮箱为例
host = smtp.sina.com:465 #port 465 or 25
# smtp 账号
user = [email protected]
# smtp 密码
password = xxxxxxxxxxx
# from address
from_address = [email protected]
from_name = Grafana
8、然后在docker-compose.yml文件中添加一行配置- ./grafana/grafana.ini:/etc/grafana/grafana.ini
,将这个文件挂载到grafana容器中
9、接着在cmd或者powershell中运行命令docker-compose up -d
更新配置,成功后回到Contact points配置页面,点击Test测试,提示发送成功则表明配置正确