失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > PrometheusAlert 多渠道告警通知神器

PrometheusAlert 多渠道告警通知神器

时间:2022-08-30 04:02:53

相关推荐

PrometheusAlert 多渠道告警通知神器

Prometheus Alert 简介

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

PrometheusAlert 特性

支持多种消息来源,目前主要有prometheus、graylog2、graylog3、grafana

支持多种类型的发送目标,支持钉钉、微信、腾讯短信、腾讯语音、华为短信

针对Prometheus增加了告警级别,并且支持按照不同级别发送消息到不同目标对象

简化Prometheus分组配置,支持按照具体消息发送到单个或多个接收方

增加手机号码配置项,和号码自动轮询配置,可固定发送给单一个人告警信息,也可以通过自动轮询的方式发送到多个人员且支持按照不同日期发送到不同人员

增加 Dashboard,暂时支持测试配置是否正确

部署方法

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

容器部署

$ git clone /feiyu563/PrometheusAlert.git$ mkdir /etc/prometheusalert-center/$ cp PrometheusAlert/conf/app.conf /etc/prometheusalert-center/$ docker run -d -p 8080:8080 -v /etc/prometheusalert-center:/app/conf --name prometheusalert-center feiyu563/prometheus-alert:latest

Linux 系统部署

$ git clone /feiyu563/PrometheusAlert.git$ cd PrometheusAlert/example/linux/# 后台运行请执行 nohup ./PrometheusAlert &$ ./PrometheusAlert

Windows 系统部署

$ git clone /feiyu563/PrometheusAlert.git$ cd PrometheusAlert/example/windows/双击运行 PrometheusAlert.exe 即可

kubernetes 部署

$ kubectl app -n monitoring -f /feiyu563/PrometheusAlert/master/example/kubernetes/PrometheusAlert-Deployment.yaml

Helm 部署

$ git clone /feiyu563/PrometheusAlert.git$ cd PrometheusAlert/example/helm/prometheusalert# 如需修改配置文件,请更新 config 中的 app.conf$ helm install -n monitoring .

启动后可使用浏览器打开测试地址: http://127.0.0.1:8080

配置说明

PrometheusAlert暂时提供以下几类接口,分别对应各自接入端

prometheus 接口

/prometheus/alert

grafana 接口

graylog2 接口

graylog3 接口

语音短信回调接口

/tengxun/status

接入配置

Prometheus 接入配置

在 Prometheus Alertmanager 中启用 Webhook,可参考如下模板:

global:resolve_timeout: 5mroute:group_by: ['instance']group_wait: 10mgroup_interval: 10srepeat_interval: 10mreceiver: 'web.hook.prometheusalert'receivers:- name: 'web.hook.prometheusalert'webhook_configs:- url: 'http://[prometheusalert_url]:8080/prometheus/alert'

Prometheus Server 的告警rules配置,可参考如下模板:

groups:1. name: node_alertrules:2. alert: 主机CPU告警expr: node_load1 > 1labels:name: prometheusalertcenterlevel: 3 #告警级别,告警级别定义 0 信息,1 警告,2 一般严重,3 严重,4 灾难annotations:description: "{{ $labels.instance }} CPU load占用过高" #告警信息mobile: 15888888881,15888888882,15888888883 #告警发送目标手机号(需要设置电话和短信告警级别)ddurl: "/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #支持添加多个钉钉机器人告警,用,号分割即可,如果留空或者未填写,则默认发送到配置文件中填写的钉钉器人地址wxurl: "https://qyapi./cgi-bin/webhook/send?key=xxxxxxxx-xxxxxx-xxxxxx-xxxxxx,https://qyapi./cgi-bin/webhook/send?key=xxxxx-xxxx-xxxxxxx-xxxxx" #支持添加多个企业微信机器人告警,用,号分割即可,如果留空或者未填写,则默认发送到配置文件中填写的企业微信机器人地址

最终告警效果:

其它接入,请参考 /feiyu563/PrometheusAlert/blob/master/README.MD

配置文件解析

#---------------------↓全局配置-----------------------appname = PrometheusAlert#监听端口httpport = 8080runmode = dev#开启JSON请求copyrequestbody = true#告警消息标题title=NX-TEST#链接到告警平台地址GraylogAlerturl=#logo图标地址logourl=/feiyu563/PrometheusAlert/master/doc/alert-center.png#短信告警级别(等于3就进行短信告警) 告警级别定义 0 信息,1 警告,2 一般严重,3 严重,4 灾难messagelevel=3#电话告警级别(等于4就进行语音告警) 告警级别定义 0 信息,1 警告,2 一般严重,3 严重,4 灾难phonecalllevel=4#默认拨打号码defaultphone=15395105573#故障恢复是否启用电话通知0为关闭,1为开启phonecallresolved=1#自动告警抑制(自动告警抑制是默认同一个告警源的告警信息只发送告警级别最高的第一条告警信息,其他消息默认屏蔽,这么做的目的是为了减少相同告警来源的消息数量,防止告警炸弹,0为关闭,1为开启)silent=1#---------------------↓webhook-----------------------#是否开启钉钉告警通道,可同时开始多个通道0为关闭,1为开启open-dingding=1#默认钉钉机器人地址ddurl=/robot/send?access_token=xxxxx#是否开启微信告警通道,可同时开始多个通道0为关闭,1为开启open-weixin=1#默认企业微信机器人地址wxurl=https://qyapi./cgi-bin/webhook/send?key=xxxxx#---------------------↓腾讯云接口-----------------------#是否开启腾讯云短信告警通道,可同时开始多个通道0为关闭,1为开启open-txdx=0#腾讯云短信接口keyTXY_DX_appkey=xxxxx#腾讯云短信模版ID 腾讯云短信模版配置可参考 prometheus告警:{1}TXY_DX_tpl_id=xxxxx#腾讯云短信sdk app idTXY_DX_sdkappid=xxxxx#腾讯云短信签名 根据自己审核通过的签名来填写TXY_DX_sign=腾讯云#是否开启腾讯云电话告警通道,可同时开始多个通道0为关闭,1为开启TXY_DH_open-txdh=0#腾讯云电话接口keyTXY_DH_phonecallappkey=xxxxx#腾讯云电话模版IDTXY_DH_phonecalltpl_id=xxxxx#腾讯云电话sdk app idTXY_DH_phonecallsdkappid=xxxxx#---------------------↓华为云接口-----------------------#是否开启华为云短信告警通道,可同时开始多个通道0为关闭,1为开启open-hwdx=0#华为云短信接口keyHWY_DX_APP_Key=xxxxxxxxxxxxxxxxxxxxxx#华为云短信接口SecretHWY_DX_APP_Secret=xxxxxxxxxxxxxxxxxxxxxx#华为云APP接入地址(端口接口地址)HWY_DX_APP_Url=-north-:10743#华为云短信模板IDHWY_DX_Templateid=xxxxxxxxxxxxxxxxxxxxxx#华为云签名名称,必须是已审核通过的,与模板类型一致的签名名称,按照自己的实际签名填写HWY_DX_Signature=华为云#华为云签名通道号HWY_DX_Sender=xxxxxxxxxx#---------------------↓阿里云接口-----------------------#是否开启阿里云短信告警通道,可同时开始多个通道0为关闭,1为开启open-alydx=0#阿里云短信主账号AccessKey的IDALY_DX_AccessKeyId=xxxxxxxxxxxxxxxxxxxxxx#阿里云短信接口密钥ALY_DX_AccessSecret=xxxxxxxxxxxxxxxxxxxxxx#阿里云短信签名名称ALY_DX_SignName=阿里云#阿里云短信模板IDALY_DX_Template=xxxxxxxxxxxxxxxxxxxxxx#是否开启阿里云电话告警通道,可同时开始多个通道0为关闭,1为开启open-alydx=0#阿里云电话主账号AccessKey的IDALY_DH_AccessKeyId=xxxxxxxxxxxxxxxxxxxxxx#阿里云电话接口密钥ALY_DH_AccessSecret=xxxxxxxxxxxxxxxxxxxxxx#阿里云电话被叫显号,必须是已购买的号码ALY_DX_CalledShowNumber=xxxxxxxxx#阿里云电话文本转语音(TTS)模板IDALY_DH_TtsCode=xxxxxxxx

项目地址

/feiyu563/PrometheusAlert

往期精彩文章

Etcd v3备份与恢复

Mysql存储微信Emoji表情问题

白话 Kubernetes 基础概念

nginx配置location与rewrite规则教程

Docker 必修课程 Dockerfile

k8s域名解析超时问题记录

您的关注是小站的动力

欢迎大家关注交流,定期分享自动化运维、DevOps、Kubernetes、Service Mesh和Cloud Native

扫码『加群』交流技术

如果觉得《PrometheusAlert 多渠道告警通知神器》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。