上篇介绍了prometheus结合grafana的方式进行集群的监控,该组合可以实现很好监控效果,但是,如果设备出问题了,尤其是一些紧急问题,影响到业务,我们需要安排人员进行紧急处理,所以说及时知晓发生的紧急时间是非常有必要的
写在前面
松鼠哥的ceph专业课程上线啦!
面向新手同学,从0实战,全面入门ceph安装部署与运维,有需要的同学赶紧扫码订购吧:
prometheus的兄弟alertmanager就是一个专门负责报警的组建,它独立于prometheus项目,自行运行并接收来自prometheus的请求,然后使用多种方式进行报警,之所以不是直接集成到prometheus中,我想原因有那么几个:
1、一旦集成到prometheus中,就不好进行冗余部署
2、考虑一下多prometheus对单个alertmanager的情况
3、两个项目都做好自己的事
安装
alertmanager的安装有多种方式,可以是yum安装,也可以下载release包安装,也可以使用git的方式安装,这里介绍release的方式安装:
1 | wget https://github.com/prometheus/alertmanager/releases/download/v0.15.0-rc.1/alertmanager-0.15.0-rc.1.linux-amd64.tar.gz |
下载完后,创建ceph专用的配置文件:
1 | [tanweijie@ceph-204 alertmanager-0.15.0-rc.2.linux-amd64]$ vim ceph.yml |
注意各个字段的缩进,缩进不规范会导致文件读取有问题
templates是定义发送内容格式的模版文件,一般使用default的tmpl也可以,这里精简了一下,因为我只需要wechat通知:
1 | 主要进行修改的地方是: |
配置文件完成后,将alertmanager做成systemctl的一个service
1 | [tanweijie@ceph-204 ~]$ sudo mv alertmanager-0.15.0-rc.1.linux-amd64 /usr/local/alertmanager |
这样alertmanager就按照我们的配置启动起来了,已经做好接收告警并发送给微信的准备
接下来要配置prometheus,需要修改的地方有两个,具体配置为:
1 | alerting: |
首先是启用告警,alertmanager默认使用的端口是9093,所以target配置的端口也是9093,rule_file是prometheus触发告警的规则文件,在规则文件里面的条件被触发后就会发送告警给alertmanager
1 | groups: |
这是内存占用规则的例子,注意到,expr为规则表达式,它的编写一般是使用prometheus的查询语法规则加上逻辑表达式,查询表达式一般可以直接从grafana的图表那里拷过来,稍作修改即可,for表示的是持续时间内规则条件是否一直满足,例如上述表达式,1分钟内内存一直都是高于0.80,就会触发告警状态变化,这个特性有时候非常有用,例如内存波动比较大的场景,这个时间就可以设置长一些
这样就可以了。重启prometheus即可完成配置读取生效,微信中查看到的效果:
参考资料:
通过企业微信接收告警
Prometheus智能化报警流程避免邮件轰炸
alertmanager.tmpl
- 本文作者: 奋斗的松鼠
- 本文链接: http://www.strugglesquirrel.com/2018/06/13/使用alertmanager实现微信报警/
- 版权声明: 本博客所有文章除特别声明外,创作版权均为作者个人所有,未经允许禁止转载!