Alertmanager 对接第三方服务 发送其他服务消息

Alertmanager 扩展

在运维监控中Prometheus能够监控主机状态、组件(DB、Redis等)、Docker、Docker容器,但是不能监控具体某个服务,例如服务中错误异常SQL异常、短信服务中账户欠费等,此类需要监控业务异常的情况则无能为了,虽然可以自己写代码实现,但是需要用同一套预警机制,那么此时就需要兼容,从Prometheus配置Alertmanager和抓包观察,猜测是通过API接口通信的,通过抓包没有发现报文,翻阅源码发现可以手动发送消息。

方法

向Alertmanager服务注册信息发送
POST /api/v1/alerts
请求json说明

[{
    //该信息从GET API中读出来的,可查询下方GET方法
    "labels": {
        "alertname": "短信服务",    //自定义主题  
        "instance": "192.168.1.1",  //实例名称,可以改为具体服务名
        "job": "无",   //没有改为无
        "severity": "1",//严重等级
        "team": "SMSService"   //服务名
    },
    "annotations": {
        "summary": "短信账号全部欠费了,无法切换可用服务,发不出短信"   //详细信息
    },
    "startsAt": "2020-08-25T07:54:52.898371829Z",   //开始时间
    "endsAt": "2020-08-25T12:58:52.898371829Z"       //结束时间,这个参数很重要
}]

注:提交的时候把注释都删掉,不然会报错“ invalid character '/' looking for beginning of object key string”在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解除预警

当添加预警信息,在处理之后需要主动告知Alertmanager已经解决请接触警报,不然会一直重复发送消息

方法

使用创建接口更改结束时间比当前时间小则可删除。当然开始时间和结束时间可以在第一次创建的时候就设定,开始时间小于当前时间,结束时间大于当前时间。如果不需要重复预警则使用方法不设置时间,当然预警就是需要处理,不管是自动修复还是人工修复,都需要在处理后才取消预警,看大家实际情况
Alertmanager添加预警源码
在这里插入图片描述
注:切记需要对比服务器时间,不同服务器时间不同

不设置时间

如果请求json不包含开始结束时间,那么结束时间会在当前时间推迟,代码显示是5min,实际上接口查询预警信息发现只有1分钟,并且1分钟后的确就查不到了
在这里插入图片描述

不设置时间的预警邮件示例
在这里插入图片描述

其他

获取所用预警信息

GET api/v1/alerts
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值