一、分析

需求

Grafana支持短信渠道报警

 

要求

使用开发提供的短信API接口

 

请求url:

http://192.168.1.1:8088/alerting/sendSms?mobile=手机号码

这个是java项目开发的api,请求方式为POST

如果要增加多个手机号码,使用逗号隔开

 

使用shell脚本的发送命令为:

curl -X POST --header "Content-Type: application/json" --header "Accept: */*" -d "{\"title\": \"监控告警\"}" http://192.168.1.1:8088/alerting/sendSms?mobile=12345678910

 

逻辑

1. 在Grafana添加短信报警方式

2. 在相关图表中应用短信报警

 

二、实际操作

添加报警方式

点击Alerting-->Notification channels

grafana警告邮件模版 grafana短信告警_监控告警

 

 选择新建

grafana警告邮件模版 grafana短信告警_监控告警_02

 

输入报警方式的名字,比如: devops-sms

类型选择 webhook

输入url  http://192.168.1.1:8011/alerting/sendSms?mobile=12345678910

最后点击保存

grafana警告邮件模版 grafana短信告警_grafana警告邮件模版_03

 

上面还有2个选项

Send on all alerts  表示发送给所有的alerts。
Include image  发送图表。

 

解释:

1. 如果选择Send on all alerts,必须要保证相关的图表,已经开启了alerts。也就是说,创建图像时,alerts默认是空的

2. 由于是短信报警,发送的是文字,所以图片即使发过去,也没啥卵用。如果是邮件报警,则可以看到图表信息!

 

在webhook settings选项中,还有2个参数,username和password。由于此接口不需要认证,所以这2个参数不需要填写!

 

测试报警

点击上面的Send Test,确保能够收到短信!

grafana警告邮件模版 grafana短信告警_监控告警_04

 

图表添加报警

随便点击一个图表,点击edit

grafana警告邮件模版 grafana短信告警_List_05

 

进入 alert选项

Alert Config-->Evaluate every

Conditions

when 表示什么时间,of 表示条件,is above

 

If no data or all values are null   如果没有数据或所有值都为空,这里选择触发报警
If execution error or timeout

 

grafana警告邮件模版 grafana短信告警_Test_06

 

这里有一条红线,表示警戒线,就是刚刚设置的报警条件。

grafana警告邮件模版 grafana短信告警_List_07

 

 点击Notifications,选择devops-sms

grafana警告邮件模版 grafana短信告警_Test_08

 

点击保存

grafana警告邮件模版 grafana短信告警_监控告警_09

 

更新描述可以不写,点击保存

 

grafana警告邮件模版 grafana短信告警_grafana警告邮件模版_10

 

 等待1分钟,就会收到短信了

grafana警告邮件模版 grafana短信告警_List_11

 

在State history,会看到报警的历史信息

grafana警告邮件模版 grafana短信告警_监控告警_12

 

注意:下一次触发,比如1秒后,它不会再次触发,防止 报警风暴产生!

只会发送一次!

 

如果需要查看所有的,点击Alerting-->Alert List

grafana警告邮件模版 grafana短信告警_grafana警告邮件模版_13

 

 进入告警列表页面,选择 Alerting,效果如下:

 

grafana警告邮件模版 grafana短信告警_Test_14

 

上面只是演示了,单个图表的报警设置,如果需要设置所有图表都应用短信报警

需要勾选这个选项

 

grafana警告邮件模版 grafana短信告警_Test_15

 

请确保其他图表的alert选项中,设置了报警策略。它才会报警,否则不会!