「PROMETHEUS」- Prometheus Alert | 开源的运维告警中心消息转发系统

认识

Alertmanager 是国外软件,其默认集成的消息通知平台多为为国外平台(例如 Slack、Telegram、PagerDuty 等等)。我们希望能够快捷方便地配置 Alertmanager 告警信息发送,并且发送到我们的办公平台。例如飞书、企业微信、钉钉等等。

Prometheus Alert 是开源的运维告警中心消息转发系统,支持主流的监控系统 Prometheus,Zabbix,日志系统 Graylog 和数据可视化系统 Grafana 发出的预警消息,支持钉钉,微信,华为云短信,腾讯云短信,腾讯云电话,阿里云短信,阿里云电话等

官网:https://github.com/feiyu563/PrometheusAlert
文档:https://feiyu563.gitbook.io/prometheusalert
仓库:https://github.com/feiyu563/PrometheusAlert

组成

WIP

性质

支持任意包含 WebHook 接口系统的消息作为消息来源,常见的如 Prometheus,Zabbix,Graylog2,Graylog3,Grafana,SonarQube 和其他 WebHook 接口的系统。
支持多种类型的发送目标,支持钉钉,企业微信,email,飞书,腾讯短信,腾讯语音,阿里云短信,阿里云语音,华为短信,百度云短信,容联云电话,七陌短信,七陌语音,TeleGram,百度 Hi(如流)。
针对 Prometheus 增加了告警级别,并且支持按照不同级别发送消息到不同目标对象。
简化 Prometheus 分组配置,支持按照具体消息发送到单个或多个接收方。
增加手机号码配置项和号码自动轮询配置,可固定发送给单一个人告警信息,也可以通过自动轮询的方式发送到多个人员且支持按照不同日期发送到不同人员。
增加 Dashboard,提供配置测试,告警消息模版自定义,告警模版测试等功能
增加自定义告警消息模版支持,可以通过自定义模版对任意服务 WebHook 进行支持
增加代理支持
增加支持 mysql、sqlite3(默认)、postgres 作为模版存储,便于集群化部署
增加支持钉钉,企业微信的@某人功能
增加支持阿里云-云监控告警
增加随机轮询,目前仅针对 ddurl,fsurl,wxurl 有效,默认情况下如果上述 Url 配置的是多个地址,则多个地址全部发送,如开启该选项,则从多个地址中随机取一个地址发送,主要是为了避免消息发送频率过高导致触发部分机器人拦截消息
增加支持将 Prometheus 告警记录写入到 Elasticsearch7.x,可通过 Kibana 进行界面查看告警记录和配置表格导出。
增加支持将 Gitlab webhook event 推送到企微和钉钉。
增加告警路由和告警记录功能,可通过页面查看告警历史和操作告警消息路由。
增加告警语音播报插件。
增加支持飞书机器人应用。
增加告警组,可以将通知媒介写到告警组里面,便于配置和修改。
增加热加载配置接口
增加钉钉加签

应用

场景及方案

场景 | 发送告警到飞书

prometheus 对接飞书告警 – lixinliang – 博客园

参考 PrometheusAlert/doc/readme/conf-feishu.md 文档,以获得详细说明;

该处我们使用的群聊机器人,而非单独的应用;

Q:合并告警信息?
A:借助模板打印数据,我们发现每条消息都被处理为仅包含一个 Alert 条目,进而导致要单独发送。

改进

WIP

参考

GitHub/feiyu563/PrometheusAlert