美文网首页wgcloud运维监控工具
Linux用shell脚本实现微信告警信息推送——WGCLOUD

Linux用shell脚本实现微信告警信息推送——WGCLOUD

作者: 王逅逅_f6c0 | 来源:发表于2021-09-01 19:19 被阅读0次

    wgcloud下载

    本文是在linux系统用shell方式实现微信告警,windows系统用bat方式实现微信告警请点击此处查看

    1.首先我们要去注册企业微信了,然后创建一个应用,记得以下图片中的标红信息,企业ID,应用ID,应用Secret

    image.png image.png

    2.新建一个/home/weixin.sh文件,此处目录和文件名称是为测试方便,自己可以根据实际场景自定义,内容如下

    #!/bin/bash
    # -*- coding: utf-8 -*-
    ###SCRIPT_NAME:weixin.sh###
    ###send message from weixin for monitoring###
    ###leo###
    content=${@:1}
    content=${content//\<font color=\'red\'\>/}
    content=${content//\<\/font\>\<\/br\>/}
    content=${content//\ /}
     
    echo "告警信息 : $content"
     
    #echo "warn content is : $content" >> ./warn.log
     
     CropID='微信企业ID'
     Secret='微信企业应用Secret'
     GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
     Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F \" '{print $10}')
     PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
     function body() {
       local int AppID=XXXXX           # 企业号中的应用id
       local UserID='XXXXXXX'            # 部门成员id,微信接收者,多个接收者用竖杠|隔开
       #local PartyID=$2            # 部门id,定义了范围,组内成员都可接收到消息
       
       local Msg="WGCLOUD告警:$1"
       Msg=${Msg//\"/}
       printf '{\n'
       printf '\t"touser": "'$UserID'",\n'
       #printf '\t"toparty": "$PartyID",\n'
       printf '\t"msgtype": "text",\n'
       printf '\t"agentid": "'$AppID'",\n'
       printf '\t"text": {\n'
       printf '\t\t"content": "'$Msg'"\n'
       printf '\t},\n'
       printf '\t"safe":"0"\n'
       printf '}\n'
     }
     #body $content
     curl --data-ascii "$(body $content)" $PURL
     printf '\n'
     echo "over!"
    

    部门成员ID查看方式如下图,鼠标放在成员名字上即可看到账号,即是成员ID

    image.png

    3.cli 测试

    /home/weixin.sh 测试
    

    4.测试完成,修改/server/config/application.yml

    #告警脚本文件,可以为空,参考:/server/template/sendMsg.sh
      warnScript: /home/weixin.sh
    

    5.好了,重启server,这样就可以在微信收到告警消息了

    image.png

    6.注意windows编辑shell脚本后,上传到linux下执行可能出现\r错误

    image.png
    image.png

    因为Windows系统中的换行符是\n\r,Linux系统中的换行符是\n,因此需要将\r替换为空白。

    运行如下命令即可

    sed -i 's/\r$//' /home/weixin.sh
    

    相关文章

      网友评论

        本文标题:Linux用shell脚本实现微信告警信息推送——WGCLOUD

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