美文网首页
open-falcon 微信报警45009 优化

open-falcon 微信报警45009 优化

作者: jojo1313 | 来源:发表于2022-10-07 18:01 被阅读0次

组件:falcon-wechat

现象:告警消息发送失败,错误状态码45009


image.png

原因:每发一次告警都去获取 access_token,腾讯对access_token获取频率有限制

解决方法: 使用redis缓存access_token 2小时,不要每次发告警都取access_token

我的方案:
1.自己写微信告警消息发送api,falcon-wechat把消息发给自己api, api发到微信
2.也可直接改falcon-wechat源码,实现redis读写功能也可修复此问题

我的示例:


image.png

falcon-wechat源码修改后,go build 重新编译即可使用

API部分代码示例:

func SendMs(datas Warndata)(rep string){
        var token string
        var tkstr  interface{}
        idstr := strconv.Itoa(datas.Agentid)
        //发送告警前,先redis取access_token,redis没有就去腾讯api拿,拿完存redis
        tokenofcache,_ :=gredis.GetLocal(idstr)
        if tokenofcache != nil {
            err := json.Unmarshal(tokenofcache,&tkstr)
            if err!=nil{
              fmt.Println(err)
            }
            token = tkstr.(string)
        }else{
            //请求腾讯api拿access_token, 拿完再存redis
            token=Token(datas.Agentid)
            if len(token)>20{
                gredis.SetLocal(idstr,token,7100) //缓存tonken近2小时
            }
        }
        url:= fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s", token)
        jsonStr, _ := json.Marshal(datas)
        req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
        if err != nil {
                panic(err)
        }
        defer req.Body.Close()
        client := &http.Client{Timeout: 5 * time.Second}
        resp, error := client.Do(req)
        if error != nil {
                panic(error)
        }
        defer resp.Body.Close()
        result, _ := ioutil.ReadAll(resp.Body)
        rep = string(result)
        return rep
}

相关文章

  • open-falcon 微信报警45009 优化

    组件:falcon-wechat 现象:告警消息发送失败,错误状态码45009 原因:每发一次告警都去获取 acc...

  • open-falcon之发送微信报警消息

    参考原文:https://www.cactifans.org/open-falcon/1788.html官方参考:...

  • 微信报警

    企业微信准备:Agentld + Secret + 企业ID号 + 部门ID python监控脚本: 有...

  • Prometheus部署

    Prometheus部署+邮箱报警+企业微信报警+钉钉报警 1 部署Prometheus server 1.1 下...

  • 2018-11-26

    一,企业微信报警步骤

  • zabbix 5系列之微信实时告警

    1. 微信报警: Zabbix除了可以使用邮件报警和钉钉告警之外,还可以通过微信报警,或者只要有api,你能想到的...

  • 获取小程序的openid与unionid

    重要的事情说三遍:微信登录能力优化;微信登录能力优化;微信登录能力优化昨天(4.24)下午微信发布了文章 微信登录...

  • zabbix监控

    监控服务概述 1、实时查看服务状态2、可以发送报警信息(邮件报警、短信报警、电话报警、微信报警、值班(大屏幕)报警...

  • zabbix 微信报警

    简单 说一下 微信报警: 微信报警和 邮件区别不大 , 主要是 发送脚本不同 脚本来源 git clone htt...

  • 微信报警脚本

    vim /usr/lib/zabbix/alertscripts/wechat.py 加粗字体需修改,写完后更...

网友评论

      本文标题:open-falcon 微信报警45009 优化

      本文链接:https://www.haomeiwen.com/subject/sblwartx.html