PrometheusAlert 简介
PrometheusAlert是开源的运维告警中心消息转发系统,支持主流的监控系统Prometheus,日志系统Graylog和数据可视化系统Grafana发出的预警消息,支持将收到的这些消息发送到钉钉,短信和语音电话提醒等
PrometheusAlert具备如下特性
支持多种消息来源,目前主要有prometheus,graylog,grafana支持多种类型的发送目标,支持钉钉,短信,语音针对Prometheus增加了告警级别,并且支持按照不同级别发送消息到不同目标对象简化Prometheus分组配置,支持按照具体消息发送到单个或多个接收方增加手机号码配置项,和号码自动轮询配置,可固定发送给单一个人告警信息,也可以通过自动轮询的方式发送到多个人员且支持按照不同日期发送到不同人员部署方式
PrometheusAlert可以部署在本地和云平台上,支持windows、linux、公有云、私有云、混合云、容器和kubernetes。你可以根据实际场景或需求,选择相应的方式来部署PrometheusAlert:
使用容器部署
docker run -d -p 8080:8080 --name prometheusalert-center feiyu563/prometheus-alert:latest
在linux系统中部署
git clone /feiyu563/PrometheusAlert.gitcd PrometheusAlert/example/linux/./PrometheusAlert #后台运行请执行nohup ./PrometheusAlert &
在windows系统中运行
git clone /feiyu563/PrometheusAlert.gitcd PrometheusAlert/example/windows/双击运行 PrometheusAlert.exe即可
在kubernetes中运行
kubectl app -f /feiyu563/PrometheusAlert/master/example/kubernetes/PrometheusAlert-Deployment.yaml
配置说明
PrometheusAlert 暂提供以下三个接口,分别对应各自接入端
prometheus接口
/prometheus/alert
grafana接口
/grafana/alert
graylog接口
/graylog/alert
1. 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 > 3labels:severity: warningannotations:description: "{{ $labels.instance }} CPU load占用过高" #告警信息summary: "{{ $labels.instance }} CPU load占用过高已经恢复" #告警恢复信息level: 3 #告警级别,告警级别定义 0 信息,1 警告,2 一般严重,3 严重,4 灾难mobile: 15888888881,15888888882,15888888883 #告警发送目标手机号(需要设置电话和短信告警级别)ddurl: "/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #支持添加多个钉钉告警,用,号分割即可,如果留空或者未填写,则默认发送到配置文件中填写的钉钉地址
最终告警效果:
2. Grafana 接入配置
打开grafana管理页面,登录后进入notification channels配置
注意这里的url地址填写上自己部署所在的url
配置完成后保存即可.继续进行告警消息配置,选择任意一个折线图,点击编辑,进入aler配置,配置参考下图:
Notifications配置格式参考,支持配置多个钉钉机器人url:
告警消息内容&&ddurl[钉钉机器人url,钉钉机器人url....]
最终告警效果:
3. Graylog 接入配置
打开Graylog管理页面,登录后进入Alerts配置
点击Add new notification
创建新的告警通道,选择如下图配置:
在弹出的窗口中填入名称和对应的PrometheusAlert的地址即可,配置参考下图:
配置完成后,点击Test
测试下是否能够正常接收告警消息即可
最终告警效果:
4. 配置文件解析
短信告警和语音告警均使用的是腾讯云的短信和语音提醒接口,具体参数获取可去腾讯云开通相关服务即可
appname = PrometheusAlert#监听端口httpport = 8080runmode = dev#开启JSON请求copyrequestbody = true#钉钉机器人地址ddurl=/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#告警消息标题title=NB云平台#点击告警消息后链接到告警平台地址alerturl=http://prometheus.haima.me#告警消息中显示的logo图标地址logourl=/feiyu563/PrometheusAlert/master/doc/haima.png#腾讯短信接口keyappkey=e710521xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#腾讯短信模版IDtpl_id=14386#腾讯短信sdk app idsdkappid=14000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#短信告警级别(等于3就进行短信告警) 告警级别定义 0 信息,1 警告,2 一般严重,3 严重,4 灾难messagelevel=3#腾讯电话接口keyphonecallappkey=c24xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#腾讯电话模版IDphonecalltpl_id=29xxxxx#腾讯电话sdk app idphonecallsdkappid=1400xxxxxx#电话告警级别(等于4就进行语音告警) 告警级别定义 0 信息,1 警告,2 一般严重,3 严重,4 灾难phonecalllevel=4#默认拨打号码,默认不配置,如果配置了此项,那么按照user.csv文件轮询的方式将自动失效#defaultphone=
另外 PrometheusAlert 同时支持按照日期发送告警到不同号码,只需新建user.csv文件,并将文件放到程序运行目录下即可自动加载,csv文件格式如下:
4月10日,15888888881,a4月11日,15888888882,b4月12日,15888888883,c4月13日,15888888884,d4月14日,15888888885,e4月15日,15888888886,f4月16日,15888888887,g4月17日,15888888888,h4月18日,15888888889,i4月19日,15888888810,g4月20日,15888888811,k4月21日,15888888812,l4月22日,15888888813,zhangsan4月23日,15888888814,lilei
项目源码
PrometheusAlertFOR HELP
Email: 244217140@
如果觉得《prometheus grafana graylog 钉钉告警 短信告警 电话告警系统 PrometheusAlert》对你有帮助,请点赞、收藏,并留下你的观点哦!