监控运维告警工具之PrometheusAlert

0    233    2

Tags:

👉 本文共约13585个字,系统预计阅读时间或需52分钟。

简介

https://github.com/feiyu563/PrometheusAlert

https://gitee.com/feiyu563/PrometheusAlert

官网:https://feiyu563.gitee.io/

文档:https://feiyu563.gitbook.io/prometheusalert/

PrometheusAlert是开源的运维告警中心消息转发系统,支持主流的监控系统Prometheus、Zabbix,日志系统Graylog2,Graylog3、数据可视化系统Grafana、SonarQube等支持WebHook接口的系统发出的预警消息,支持将收到的这些消息发送到钉钉,微信,飞书,腾讯短信,腾讯电话,阿里云短信,阿里云电话,华为短信,百度云短信,容联云电话,七陌短信,七陌语音,TeleGram,百度Hi(如流)等。

监控运维告警工具之PrometheusAlert

PrometheusAlert具备如下特性


  • 支持任意包含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推送到企微和钉钉。
  • 增加告警路由和告警记录功能,可通过页面查看告警历史和操作告警消息路由。
  • 增加告警语音播报插件。
  • 增加支持飞书机器人应用。

系统接入PrometheusAlert流程

PrometheusAlert的原理就是通过自定义模版接口/prometheusalert接收各种告警系统或者任何带有WebHook功能的系统发来的消息,然后将收到的消息经过自定义模板渲染成消息文本,最终转发给不同的接收目标。

一般情况下如果使用的是钉钉,企业微信、飞书等机器人作为接收目标的,可以不去配置PrometheusAlert的配置文件app.conf;但是如果需要使用如短信,电话,邮箱等功能,则需要先配置好app.conf中的相关配置项方可使用。

安装配置

PrometheusAlert可以部署在本地和云平台上,支持windows、linux、公有云、私有云、混合云、容器和kubernetes。你可以根据实际场景或需求,选择相应的方式来部署PrometheusAlert:

Linux安装启动

Docker 安装启动

https://hub.docker.com/r/feiyu563/prometheus-alert

配置文件 app.conf 的内容可以使用环境变量的方式初始化。

所设置的变量前缀必须以 PA_ 开始,后面使用配置文件的配置项名称,但是需要将配置项中所有的 - 替换为 _

特别注意的是使用环境变量对配置项中的大小写并不敏感。

在windows系统中运行

在kubernetes中运行

使用helm部署


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


PrometheusAlert默认使用sqlite3作为后端自定义模板的存储,这种方式适合于单机部署,满足绝大部分生产场景使用。考虑到部分企业对于服务的高可用要求较高,同时也为了让PrometheusAlert更易于横向扩展,用户可以更改PrometheusAlert的默认存储为mysql。(推荐使用mysql 5.7及以上版本)

  • 1.创建数据库
  • 2.开启PrometheusAlert配置文件中关于mysql的配置 conf/app.conf,数据库名称与上面创建的数据一致,并启动PrometheusAlert,PrometheusAlert启动时会自动初始化数据库表。

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

  • 4.重启PrometheusAlert,这样即完成配置PrometheusAlert使用mysql数据库作为默认后端存储。

PrometheusAlert语音播报插件部署


  • PrometheusAlert语音播报插件目前仅支持windows系统部署,用于将从PrometheusAlert接收到的告警消息文本转换为语音播报给用户。

插件存放在源码PrometheusAlertVoice目录下,可直接运行

默认配置文件setup.ini

图形界面

监控运维告警工具之PrometheusAlert

监控运维告警工具之PrometheusAlert

所有配置文件内容

PrometheusAlert/conf/app-example.conf

Prometheus 接入PrometheusAlert配置

需要更改Alertmanager的配置,将所有告警信息都转发到PrometheusAlert,参考如下Alertmanager配置如下:

PS:示例内容是默认选择的钉钉机器人的自定义模板prometheus-dd,如使用其他接收端,请更改Url参数中的typetpl即可,具体接口参数可参考 [接口说明]()

配置完成后,重启或者reload Alertmanager,使配置生效即可。

最终告警效果:

监控运维告警工具之PrometheusAlert

多个告警接口配置,例如钉钉和email同时配置:

Grafana接入PrometheusAlert配置

参考:https://gitee.com/feiyu563/PrometheusAlert/blob/master/doc/readme/system-grafana.md

首先使用管理员或者具有告警配置权限的帐号登录进 Grafana 管理页面,登录后进入 Alerting——>Contact point ——> New contact point ——> 接入方式选择 webhook(在该webhook中配置fsurl可实现分组告警):

监控运维告警工具之PrometheusAlert

配置完成后点击 Test ,飞书查看接收到测试消息即成功(at=all 实现@所有人)!

首先使用管理员或者具有告警配置权限的帐号登录进Grafana管理页面,登录后进入notification channels配置。

监控运维告警工具之PrometheusAlert

注意此处的地址需要去PrometheusAlert的模版页面获取,如发送给钉钉的grafana模版http://[prometheusalert_url]:8080/prometheusalert?type=dd&tpl=grafana-dd&ddurl=钉钉机器人地址&at=18888888888

监控运维告警工具之PrometheusAlert

PrometheusAlert的模版页面

监控运维告警工具之PrometheusAlert

配置完成后保存即可.继续进行告警消息配置,选择任意一个折线图,点击编辑,进入aler配置,配置参考下图:

监控运维告警工具之PrometheusAlert

监控运维告警工具之PrometheusAlert

最终告警效果:

监控运维告警工具之PrometheusAlert

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
监控运维告警工具之PrometheusAlert后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部