前言
Grafana是一个免费开源的可视化监控工具。通过之前的实践,我们已经成功对服务器性能、Mysql、Redis等服务进行了监控。可以参考之前的文章。
https://blog.csdn.net/kayotin/article/details/142528736?spm=1001.2014.3001.5501
我们接下来的课题是,在监控的某一指标达到告警值后,通过邮件来发送提醒。
虽然网上的教程很多,但是都比较笼统。我这里尽量说详细一点。
基础发送配置
说到发送邮件,首先你肯定需要一个能提供smtp服务的邮箱。
请参考如下代码修改配置文件,指定发送邮件的发件人信息。注意里面的信息替换成自己的。
[root@node21 grafana]# vim /etc/grafana/grafana.ini
...
[smtp]
enabled = true
host = smtpdm.aliyun.com:25
user = test@abc.com.cn
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = password
;cert_file =
;key_file =
skip_verify = True
from_address = test@abc.com.cn
from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
# SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS
[emails]
;welcome_email_on_sign_up = false
;templates_pattern = emails/*.html, emails/*.txt
;content_types = text/html
基本流程
Grafana的基本流程是:
- 配置数据源,比如Prometheus
- 配置Dashboard
- 设置告警规则Alert Rules
- 发送邮件
我们默认前两步已经完成了,今天主要来进行后面2步的设置。
例1,对服务器硬盘容量进行监控
从Dashboard创建alert rule
首先我们选中如下这张图表,可以看到,这张图表就是简单的监控硬盘使用量。
点击右上角的。。。,然后点击编辑
然后点击Alert-Create alert rule from this panel
Alert rule编辑
接下来就编辑这条alert rule
设置名称 这一步没啥好说的,建议是去一个一眼能看出来是干啥的名字就可以了。
定义query和报警条件
这一步基本是默认的,只是把如下地方修改成10
这里我来着重说一下,这也是我看其他教程没有看懂的地方。
如下所示,上面A和B两个query,实际上就对应了这个监控panel里的两个图表。
可以点击preview进行查看,实际上是时间序列数据。图上的红线,就是我们刚刚填入的10的警戒值。
然后我设置的时候还在思考一个问题,就是为什么不可以直接选A或者B作为input输入,为什么默认是C。
这是因为,A和B都是时间序列数据,需要通过C转换成一个具体数值,才能作为最终的输入数据。
- 设置评估周期
添加注释 也就是简单解释下为啥会有这报警,同时这些内容也会出现在将来发送的邮件中。下面的runbook是操作手册的意思,就是说如果有人接到了报警,可以在这个链接上常看报警的具体说明和应对方法。当然了这里我就是随便填了一个链接。
配置通知规则,这个基本上使用默认就好
Contace points设置
这个比较简单,也就是设置联系人。简单来说就是填写邮箱地址就可以了。这里可以点击test,看看是否能收到邮件。
notification policy设置
这里使用默认策略就好,点击编辑,把contact point选择成刚刚设置的联系人
如下所示,默认的重复周期是4h,所以这次发送邮件后,默认下一次收到是4小时后。
收到的报警邮件如下所示