企业微信群机器人发送告警通知shell脚本实现 - WGCLOUD

wgcloud下载

本文是在Linux系统实现企业微信群机器人告警windows系统用bat方式实现企业微信群机器人告警点击此处

1、首先我们在企业微信群中添加机器人,这个需要管理员来操作,如下

 

第一次没有机器人,如下添加右上角的【添加】按钮

 

 

点击【新建】

输入机器人名字

 

 

 

 2、如上就添加完成了群机器人,我们需要机器人的WebHook地址,把复制出来,等一会用

 

 

 

 3、新建shell脚本:/home/weixin.sh,内容如下,记得把webHookUrl替换为自己的实际Webhook地址

#!/bin/bash
content=$1
content=${content//\ /}
content=${content//\"/}
date=$(date +%Y-%m-%d)
time=$(date "+%H:%M:%S")
content="
**WGCLOUD**
    >time:$date.$time
    >info:$content

"
webHookUrl="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
content='{"msgtype": "markdown","markdown": {"content": "'$content'","mentioned_list":"@all"},}'
echo "content : $content"
curl --data-ascii "$content" $webHookUrl
echo "over!"

 

4、cli 测试

记得先给weixin.sh添加可执行权限

chmod +x weixin.sh

然后测试下微信能否收到测试消息

/home/weixin.sh "测试"

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

#告警脚本文件完整路径,注意是完整的路径,可以为空,参考:/server/template/sendMsg.sh
warnScript: /home/weixin.sh

注意告警脚本文件需要填写完整的路径

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

 

 

 

 7、如果我们想发给指定群里的指定人员

可以把shell脚本:/home/weixin.sh中的

"mentioned_list":"@all"

替换改为如下(#这个是企业微信机器人自动艾特群里成员,修改为群成员手机号即可)

 "mentioned_mobile_list":["13800000000","13800000001"]

 注意,msgtype为markdown时候,不支持@用户,不过我们把用户附加到告警消息后面,作为消息一部分来推送即可

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

 

 

 

 

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

运行如下命令即可

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

 

9、关于告警内容没有空格的说明(空格后内容被截断的情况)

因为微信发送的消息,如果有空格,会截断,空格后内容不会发送显示,因此将空格替换为空,shell脚本中的content=${content//\ /}就是将空格替换为空,

如果想显示空格或空格后内容被截断的情况,可以将content=${content//\ /}这行注释掉,然后修改server/config/application.yml文件中的配置项warnToUnicode改为yes,如下

 #是否将告警内容转为unicode,yes是,no否,在windows执行告警脚本时,一般需要转码,否则接受到会是乱码
  warnToUnicode: yes

修改完后,重启下server即可

posted @ 2022-07-03 10:25  沧海1980  阅读(3803)  评论(0编辑  收藏  举报