feiyu563 / PrometheusAlert

Prometheus Alert是开源的运维告警中心消息转发系统,支持主流的监控系统Prometheus,Zabbix,日志系统Graylog和数据可视化系统Grafana发出的预警消息,支持钉钉,微信,华为云短信,腾讯云短信,腾讯云电话,阿里云短信,阿里云电话等
https://feiyu563.gitbook.io
MIT License
2.88k stars 684 forks source link
alert alertmanager aliyun aliyunsdk dingding dingtalk feishu grafana graylog kubernetes monitor phone phonecall phonemessage prometheus prometheus-alert prometheus-alertmanager-webhook weixin weixinsdk zabbix

PrometheusAlert全家桶

author license last commit issues stars forks docker

GitHub Release

[Travis]() [Travis]() [Travis]()


项目介绍

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

it



项目架构

PrometheusAlert 后端使用了 beego 框架,前端使用了 AdminLTE (基于 Bootstrap 和 Jquery)模板。

项目文件:

├── cmd: 脚本
├── conf: 配置
├── controllers:控制器
├── db:默认的 sqlite 数据
├── doc:文档
├── docker-entrypoint.sh:容器运行入口文件
├── Dockerfile
├── example:示例文件
├── go.mod
├── go.sum
├── LICENSE
├── main.go
├── Makefile
├── models:模型
├── PrometheusAlert:二进制文件
├── PrometheusAlertVoicePlugin
├── README.MD
├── routers:路由
├── static:静态资源
├── swagger
├── tests:测试
├── views:前端模板
└── zabbixclient


快速开始

你可以通过以下方式快速开始:


构建

应用信息和构建相关的命令都写入了 Makefile,请确保安装make, git, go命令。如有特定需要,请自行修改 Makefile。

默认构建生成的文件是 ./PrometheusAlert

# 默认
make

# 构建
make build

# 清理构建
make clean

# 运行 fmt/vet/test
make format/vet/test

# 构建镜像,推送镜像,运行镜像
make docker/docker-push/docker-test

# 本地测试运行
make clean && make build
cp conf/app-example.conf conf/app.conf
./PrometheusAlert

# 测试应用健康
curl http://localhost:8080/health


下载发行版本

通过下载编译好的发行版本,解压后运行。

#打开PrometheusAlert releases页面,根据需要选择需要的版本下载到本地解压并进入解压后的目录
如linux版本(https://github.com/feiyu563/PrometheusAlert/releases/download/v4.9.1/linux.zip)

# wget https://github.com/feiyu563/PrometheusAlert/releases/download/v4.9.1/linux.zip && unzip linux.zip &&cd linux/

#运行PrometheusAlert
# ./PrometheusAlert (#后台运行请执行 nohup ./PrometheusAlert &)

#启动后可使用浏览器打开以下地址查看:http://127.0.0.1:8080
#默认登录帐号和密码在app.conf中有配置

# 使用 supervisor 来守护启动。
# 配置参考 example/supervisor/prometheusalert.ini
# 如果需要将日志输出到控制台,请修改 app.conf 中 logtype=console


通过 Docker 启动

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

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

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

示例

docker run -d \
-p 8080:8080 \
-e PA_LOGIN_USER=prometheusalert \
-e PA_LOGIN_PASSWORD=prometheusalert \
-e PA_TITLE=PrometheusAlert \
-e PA_OPEN_FEISHU=1 \
-e PA_OPEN_DINGDING=1 \
-e PA_OPEN_WEIXIN=1 \
feiyu563/prometheus-alert:v4.9.1


配置文件

配置文件位于 conf/app.conf,默认采用 INI 格式解析。

所有的配置文件内容请点击此处查看。


运行效果图

程序运行后,访问默认地址 http://localhost:8080 的效果如下。

dashboard

dashboard-test


特性

PrometheusAlert 具备如下特性:


致谢以下伙伴对PrometheusAlert的贡献


PrometheusAlert全家桶新手入门


系统接入PrometheusAlert流程

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

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


目录


项目源码



加入PrometheusAlert微信交流群


me


Email: 244217140@qq.com