前言

在一个监控系统中,如果说数据链路是她的骨架,那么告警通知服务就是他的灵魂!所有的监控服务都是为了能够及时通知出来,减少人工查询状态,及时发现问题,避免不必要的大规模故障,为企业政府省钱,和保证安全而存在的。

所以能发现问题很重要,更重要的是发现问题赶快让人知道,这就是今天要说的,告警通知服务。

一个开源项目PrometheusAlert

这个项目可以给 很多第三方服务对接 ,进行电话 、短信 等告警方式 ,也是我们要用到的 ,先部署起来。

github位置

部署方式参考项目中README.md部署方式那一节,要注意的是 ,他的配置文件必须在二进制文件的当前目录,conf/app.conf叫这个名字才会读取。

原因是用到beego框架 ,默认读取这个位置的配置文件,如果没有符合的二进制文件,可以自己编译。

GOPATH=xxxx/monitor_alert CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o xxx/monitor_alert/bin/PrometheusAlertLinuxAmd64 xxx/monitor_alert/src/PrometheusAlert/PrometheusAlert.goGOPATH=xxxx/monitor_alert CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o xxx/monitor_alert/bin/PrometheusAlertLinuxArm64 xxx/monitor_alert/src/PrometheusAlert/PrometheusAlert.goGOPATH=xxxx/monitor_alert CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o xxx/monitor_alert/bin/PrometheusAlertMacAmd64 xxx/monitor_alert/src/PrometheusAlert/PrometheusAlert.go

根据go语言的特性,需要创建一个项目,然后在src目录下放这个项目再编译。比如我创建的项目就叫monitor_alert

部署结束以后保存这个项目链接,这里是我在docker里启动得到的链接http://172.17.0.3:8080

Prometheus告警服务对接

首先你得先搭建起来一整套的Prometheus,像上图一样,如果你还没有搭建起来可以看看我之前的文章 这就是Prometheus。

安装alertmanager告警服务(prometheus常用的告警服务)
  1. 创建alertmanager.yaml
global:resolve_timeout: 5m
route:group_by: ['instance']group_wait: 10mgroup_interval: 10srepeat_interval: 10mreceiver: 'web.hook.prometheusalert'
receivers:
- name: 'web.hook.prometheusalert'webhook_configs:- url: 'http://172.17.0.3:8080/prometheus/alert'

这个配置文件里打开了webhook服务,产生告警的时候会自动调用该api,这个api可以自己定制,我的链接就是上一节部署的服务url,http://172.17.0.3:8080/prometheus/alert

  1. 启动alertmanager

使用docker启动,把刚刚创建配置文件挂载上去,暴露端口9093(默认)

docker run -d -p 9093:9093 -v ~/Documents/code/docker/prometheus/alertmanager.yaml:/etc/alertmanager/alertmanager.yml   --name alertmanager prom/alertmanager:latest

启动效果:

可以在Status里看到你刚刚的webhook配置内容

增加prometheus与告警相关的配置文件。
  1. 创建prometheus.rules.yml文件
groups:- name: node_alertrules:- alert: 主机CPU告警expr: node_load1 > 0.01labels:name: prometheusalertcenterlevel: 3annotations:description: "{{ $labels.instance }} CPU load占用过高"mobile: 176xxxxxxxx
  1. 启动prometheus

docker启动

docker run -d -p 9090:9090 -v ~/Documents/code/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v ~/Documents/code/docker/prometheus/prometheus.rules.yml:/etc/prometheus/prometheus.rules.yml --name prometheus-server prom/prometheus

注意了prometheus.yml的配置文件是参考这篇文章 这就是Prometheus。

prometheus.rules.yml就是刚刚的文件。

启动效果:

看,这里产生告警,你可以修改自己的告警阀值,我这里设置的大于1%就告警所以立马就告警出来了。

稍后短信就出来了。

基于granfna告警对接

  1. 新建告警通道


Name任意,Type选webhook,Url配置为 http://172.17.0.3:8080/grafana/txdx,其中的ip就是刚刚安装了prometheus_alert服务的ip。
搞定以后选Save保存。

  1. 配置各指标的告警规则
    进入面板编辑各个指标


可以先把阀值设置低一些,测试短信发送

加号选中你刚刚设置的告警通道,message 可不写,会自动查询grafana得到告警情况。

右上角保存

怎么对接到腾讯云短信平台?

服务器出网调用腾讯云短信服务,采用加密传输方式。
采用SDKAppID 和 AppKey 作为安全密钥,同时需要短信签名和模板,具体加密方式见腾讯云公有云短信服务加密方式

怎么申请

短信服务开通可以访问 腾讯云短信服务,初始会免费赠送100条 。
短信条数不够可以访问购买短信包网页

对接准备

1、申请 SDK AppID 以及 App Key: 在开始本教程之前,您需要先获取 SDK AppID 和 App Key,如您尚未申请,请到 短信控制台 中添加应用。应用添加成功后您将获得 SDK AppID 以及 App Key。

注意: SDK AppID 是以 14xxxxx 开头。

2、申请签名: 下发短信必须携带签名,您可以在 短信控制台 中

申请国内短信签名

注意,假如是政府机关在这里需要选择,然后提交资料,其他就按照自己的实际情况填写就好。

3.、申请模板: 下发短信内容必须经过审核,您可以在短信控制台中申请短信模板

完成以上三项就会拿到appid,appkey,模板 id,你的签名,四个东西,便可开始填入刚刚的开源项目配置文件,或者自己进行代码开发。

短信SDK文档参考

短信SDK下载链接

如果喜欢用API可以参考 文档

开始对接

进入你部署的prometheus_alert配置 目录,例如xxx/prometheus_alert/conf/目录,编辑app.conf文件
找到defaultphone=176xxxxxxxx,123123123修改为你要的手机号,可以是单个也可以是多个,多个要用英文半角逗号隔开

修改以下配置open-txdx为1表示打开腾讯云短信告警

open-txdx=1
TXY_DX_appkey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TXY_DX_tpl_id=54xxxx
TXY_DX_sdkappid=140032xxxx
TXY_DX_sign=你的腾讯云短信平台签名

重启服务使配置生效即可。

Prometheus和Grafana告警服务创建与对接腾讯云短信告警平台(prometheus_alert)相关推荐

  1. Java对接腾讯云短信和阿里云天气预报

    API接口提供商 短信 这里推荐阿里云,比起其他的杂牌方便很多 因为现在审核环境的问题,个人开发者比较难申请到签名和模板 我们需要创建一个微信公众号来作为应用场景 在微信官方的公众号平台上面创建 公众 ...

  2. Python使用腾讯云-短信服务发送手机短信

    原创不易,欢迎关注我的微信公众号:司马弈 获取更多精选内容. 腾讯云短信服务介绍 目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 ...

  3. prometheus 阿里云短信告警

    prometheus + alertmanager + PrometheusAlert 要达到的效果 , 短信告警 + 解除告警 (可以自定义内容) 一.阿里云短信签名及模板设置 有4个信息 Acce ...

  4. FLY攻略之第二回: 接入腾讯云短信服务 实现手机验证注册

    接入腾讯云短信服务 实现手机验证注册 上回说到 ,完成了security的接入和登录功能,但是在准备登录尝试security的强大时发现,还没有完成注册功能,根本没有账号提供登录,那么这回,就实现手机 ...

  5. 接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析)

    2021/8/17/23:01{2021/8/17/23:01}2021/8/17/23:01 文章目录 前言 一.如何成功申请到腾讯云短信服务 1.签名申请 2.正文模板申请 二.发送短信API开发 ...

  6. java实现短信验证码发送(架子是springboot 服务平台选择腾讯云短信服务)

    业务需求:公司扩展新业务,新增短信验证码提醒服务,负责功能模块完善 暂时只研究了腾讯短信服务的发送(看api谁都能copy出来),短信状态回执(也挺简单,只是自己想复杂了),短信回复回执(暂时没弄明白 ...

  7. Java后端利用腾讯云短信服务发短信

    利用手机验证码进行注册或进行下一步操作已经是非常普遍的,这篇文章就教你如何是用腾讯云短信服务发送手机验证码. 文章目录 一.前提条件 二.代码实现 1.引入依赖 2.Java代码实现 3.代码改进 4 ...

  8. 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)

    文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...

  9. 普歌-腾讯云短信+使用node发送短信(3种方法API、SDK)、封装工具、搭建web服务、写接口、调用接口发送短信、时效性判断、验证验证码的正确性(下)

    普歌-结合腾讯云短信服务+node搭建一个简单的发送短信web小项目 涉及技术: 腾讯云服务 后端服务:node+express 前端搭建:html+js 前言:本来这篇博客应该很早就发了,中间有一些 ...

最新文章

  1. 爬虫-scrapy的中间件
  2. EL表达式中null和empty的区别
  3. 计算机无法创建新文件夹,无法创建文件,教您无法新建文件夹怎么办
  4. 在计算机科学中计算是指,在计算机中数值计算是指什么
  5. 最简单OGG配置方式
  6. 华为网络技术培训笔记之常用网络工具(一)
  7. JVM第二节:JVM 中的对象
  8. 佳能mp288清零软件,非常好用@
  9. Python科学计算初探——余弦相似度
  10. python字符串长度_在python中如何获取字符串的长度
  11. 16秋计算机JAVA第一节课作业(钟永钜)
  12. 华为OD(外包)社招技术二面,总结复盘
  13. python 画出决策边界_决策边界用python实现
  14. ddos是攻击服务器还是网站,服务器遭到DDoS攻击选高防IP还是CDN?
  15. 阿联酋选出首位 AI 国务部长(附Youtube视频)
  16. 人工智能产业链:2021年中国人工智能产业链图谱|产业链全景图
  17. 非关系型数据库之Redis【redis安装】
  18. 怎么使用XCode给iOS手机安装测试包
  19. 电竞达人最爱五款真无线蓝牙耳机,听声辨位低延迟TWS蓝牙耳机助你《夺冠》
  20. ailx10的hacknet攻略005

热门文章

  1. 融合最优邻域扰动和反向学习策略的蝴蝶优化算法
  2. vue实现全选和反选
  3. 基于bp神经网络的pid算法,基于单神经元的pid控制
  4. 《西方经济学》笔记1-需求曲线
  5. 第51次全国计算机等级考试,第51次全国计算机等级考试(NCRE)在我校顺利举行...
  6. c语言怎样画坐标轴,c语言 用小星星画各种图形(菜鸟学C语言)
  7. linux英文字典,linux终端下的英文字典--SDCV(转)
  8. CANoe.DiVa操作指南-运行环境搭建
  9. 力扣 1539. 第 k 个缺失的正整数
  10. 【web前端开发】数据库MySQL在开发环境的操作