1.背景 k8s集群通过普罗采集指标进行监控,现需要配置告警通知,对接邮件和飞书告警。 2.普罗安装及配置 集群安装prometheus 本次演示普罗通过prometheus-operator进行安装,安装完后,相应的周边组件比如node_export,alertmanager等会全部安装。 可以参考github项目地址:https://github.com/prometheus-operator/kube-prometheus进行安装,安装完成后如下: image.png

3.飞书机器人配置 选择一个飞书群,添加机器人,然后选择自定义机器人 image.png image.png

记录该webhook地址,后面配置需要用到,由于这里是测试演示环境,没有开启安全设置。

4.PrometheusAlert安装配置 参考github地址:https://github.com/feiyu563/PrometheusAlert/blob/master/doc/readme/base-install.md 进行安装,下载yaml文件后进行修改(注意默认的部署模版中未挂载模版数据库文件 db/PrometheusAlertDB.db,为防止模版数据丢失,请增加挂载配置) 下载yaml文件后进行修改: wget https://raw.githubusercontent.com/feiyu563/PrometheusAlert/master/example/kubernetes/PrometheusAlert-Deployment.yaml 增加的挂载配置如下:这里为了演示方便,使用hostPath方式,生产环境建议使用pvc方式进行数据持久化。 image.png

并将service通过nodePort方式对外暴露,后续通过nodePort方式访问UI界面。 image.png 在配置文件app.conf中添加飞书的配置:url地址就是上面获取的webhook地址。 image.png

安装后如下: image.png 访问prometheus alert的web界面: image.png 使用默认用户和密码登陆,用户和密码均为prometheusalert image.png

编辑飞书模板,添加机器人地址和需要@用户信息: image.png 保存模板后在进行测试,效果如下: image.png

邮件配置方法,参考如下https://github.com/feiyu563/PrometheusAlert/blob/master/doc/readme/conf-email.md 配置后重启prometheus-alert容器 然后测试邮件通知

image.png

5.alermanager配置 prometheus-operator部署后,alertmanager的配置是通过secret保存的,编辑原先yaml文件,添加对邮件和飞书的配置,由于prometheus alert模板已经配置了恢复信息,alertmanager中可以不用配置恢复通知了。

这里将告警分组有默认的namespace换成告警名称、集群及service。添加默认告警通知和匹配critical级别告警通知规则。 image.png 应用后重启alertmanager容器。

6.告警通知效果 告警默认会发送邮件通知 image.png

其中critical级别的告警会发送到飞书群 image.png

恢复通知:

image.png image.png