一、分析
需求
Grafana支持短信渠道报警
要求
使用开发提供的短信API接口
请求url:
代码语言:javascript复制http://192.168.1.1:8088/alerting/sendSms?mobile=手机号码
这个是java项目开发的api,请求方式为POST
如果要增加多个手机号码,使用逗号隔开
使用shell脚本的发送命令为:
代码语言:javascript复制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
选择新建
输入报警方式的名字,比如: devops-sms
类型选择 webhook
输入url http://192.168.1.1:8011/alerting/sendSms?mobile=12345678910
最后点击保存
上面还有2个选项
Send on all alerts 表示发送给所有的alerts。 Include image 发送图表。
解释:
1. 如果选择Send on all alerts,必须要保证相关的图表,已经开启了alerts。也就是说,创建图像时,alerts默认是空的
2. 由于是短信报警,发送的是文字,所以图片即使发过去,也没啥卵用。如果是邮件报警,则可以看到图表信息!
在webhook settings选项中,还有2个参数,username和password。由于此接口不需要认证,所以这2个参数不需要填写!
测试报警
点击上面的Send Test,确保能够收到短信!
图表添加报警
随便点击一个图表,点击edit
进入 alert选项
Alert Config-->Evaluate every 表示检测评率,这里为了测试效果,改为1秒
Conditions 表示触发条件。下面图片的意思表示 当每秒平均值达到10,就会触发报警。
when 表示什么时间,of 表示条件,is above 表示触发值
If no data or all values are null 如果没有数据或所有值都为空,这里选择触发报警 If execution error or timeout 如果执行错误或超时,这里选择触发报警
这里有一条红线,表示警戒线,就是刚刚设置的报警条件。
点击Notifications,选择devops-sms
点击保存
更新描述可以不写,点击保存
等待1分钟,就会收到短信了
在State history,会看到报警的历史信息
注意:下一次触发,比如1秒后,它不会再次触发,防止 报警风暴产生!
只会发送一次!
如果需要查看所有的,点击Alerting-->Alert List
进入告警列表页面,选择 Alerting,效果如下:
上面只是演示了,单个图表的报警设置,如果需要设置所有图表都应用短信报警
需要勾选这个选项
请确保其他图表的alert选项中,设置了报警策略。它才会报警,否则不会!