首先我们需要在机器上开启smtp/25服务,这里有一个坑,注意,云主机为了防止滥发邮件已经封掉了smtp的所有通信,所以云主机发邮件是有问题的。
安装sendmail,ubuntu用apt,centos用yum
安装好后一般自动就跑起来了,netstat查看25端口:
这里注意,我们的grafana服务器和sendmail在同一台机器上,否则sendmail需要处理为open relay中继服务器,具体方法如下:
修改sendmail配置/etc/mail/access
添加grafana服务器ip,允许进入
Connect:grafanaserverip RELAY
GreetPause:grafanaserverip 0
ClientRate:grafanaserverip 0
ClientConn:grafanaserverip 0
输入如图的命令对本地smtp进行测试,查看是否收到邮件,收到邮件则本地smtp配置成功,否则,请检查系统服务或咨询网络提供商
smtp配置完,我们还要配置和重启(注意重启!)grafana server
编辑/etc/grafana/grafana.ini,[smtp]下添加如下几行,其他还可以配置用户名密码来使用公网上有验证的smtp服务,但是这里我们用的是本地smtp,无密码验证
[smtp]
enabled = true
host = localhost:25
from_address = your address
from_name = your name
重启服务
service grafana-server restart
之后我们再grafana页面添加一个notification channel,即通知渠道,grafana支持众多的报警通知方式
这里我们只选email
如下图配置,多个邮件地址使用;分隔,send on all alerts即通知所有的报警,不管在单个报警中是否设置,包含图形接收到的邮件会包含grafana的报警图表
send test测试,查看是否收到邮件
右上角发送成功提示,不成功请检查配置或网络
channel配置好了之后我们来添加alert,在图表中添加一个专用的报警查询sql,也可以使用现有的,但是注意,这里有个坑,就是这个sql中一定不能有templating变量,否则会报以下错误
添加的不带变量的sql,注意它的编号是D,我们配置alert的时候也需要选择D,这里不需要看的话可以点眼睛的图标让它在图表中隐藏不显示
切换到alert标签,选择D的查询,然后设置阈值为load大于2时报警
添加报警通知的channel,填写报警具体信息
然后保存图表
报警的时候会在异常值出现的地方显示红色的虚线,恢复的时候会显示绿色的虚线,而且小红心也会跟着变化颜色,同时,邮件也就送到了我们的邮箱了
邮件很直观,大概就是这个样子了,不是原图,大概表示一下