基于Prometheus的全方位监控平台--告警中心消息转发系统PrometheusAlert

官方站点:Prometheus Alert是开源的运维告警中心消息转发系统

手册:README - PrometheusAlert (gitbook.io)

一、为什么要用PrometheusAlert?

1.1、背景

1.2、架构原理

Exports --> Prometheus --> Prometheus Rules --> Alertmanager --> webhook --> PrometheusAlert --> Routes --> 企微/钉钉/飞书...

1.3、PrometheusAlert 优点

  1. 配置灵活:通过web UI界面配置操作,相较于configmap较灵活。

  2. 功能强大:支持在线修改告警模版,告警路由,告警记录,测试等。

    1. 针对Prometheus增加了告警级别,并且支持按照不同级别发送消息到不同目标对象。
    2. 简化Prometheus分组配置,支持按照具体消息发送到单个或多个接收方。
    3. 增加Dashboard,提供配置测试,告警消息模版自定义,告警模版测试等功能
  3. 自定义强度高:通过路由匹配规则触发更多的告警媒介(企微,钉钉,飞书,公有云电话/短消息接口)。

    1. 增加手机号码配置项和号码自动轮询配置,可固定发送给单一个人告警信息,也可以通过自动轮询的方式发送到多个人员且支持按照不同日期发送到不同人员。
  4. 开源免费:PrometheusAlert 是一款完全开源的软件,可以免费使用和定制,而且有广泛的社区支持。

二、prometheusAlert部署配置

2.1、在kubernetes中运行

2.2、使用helm部署

2.3、使用控制器文件部署

为防止模版数据丢失,增加挂载配置

下载官方配置文件

修改配置文件

配置Ingress路由

2.4、配置PrometheusAlert使用mysql作为后端数据存储

部署mysql到Kubernetes集群:

PrometheusAlert默认使用sqlite3作为后端自定义模板的存储,这种方式适合于单机部署,满足绝大部分生产场景使用。

考虑到部分企业对于服务的高可用要求较高,同时也为了让PrometheusAlert更易于横向扩展,用户可以更改PrometheusAlert的默认存储为mysql。

推荐使用mysql 5.7及以上版本。

创建数据库

获取 prometheusalert.sql

导入sql

利用Navicat或命令行将db目录中的 prometheusalert.sql 导入数据库prometheusalert:

三、prometheusAlert配置管理

3.1、编辑自定义模版

模版内容:

3.2、新增自定义模版

模板内容:

3.3、告警测试

告警管理 --> 告警测试 --> 企业微信 --> 企业微信查看测试消息;

3.4、告警路由

如果一个小伙伴下有很多机器资源,如何正则匹配?

四、配置Alertmanager接入PrometheusAlert

更新alertmanager配置,将所有的告警均指向告警分发平台

接口说明:

热加载alertmanager服务:

五、测试验证

验证所有的告警是否发送到指定的群组:

验证指定标签告警到指定的群组:

六、总结