分布式监控系统wgcloud实现钉钉机器人告警——shell脚本

wgcloud下载

本文是在Linux系统用shell脚本实现钉钉机器人告警windows实现钉钉告警点击此处

1、将需要接收信息的人员拉入一个钉钉群,自己取一个高大上的群名哈,然后点击群机器人 -> 添加机器人 -> 选择自定义机器人 -> 根据提示完成机器人创建。如果需要的话,可以为机器人设置一个头像。点击“完成添加”,完成后会生成webhook地址,最后安全设置一定要选择一种,这里选择第一种自定义关键字,输入WGCLOUD即可,如下图:

 

 

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

#!/bin/sh
content=$1
content=${content//\ /}
time3=$(date "+%H:%M:%S")
content="$time3,$content"
echo "warn content is : $content"
 
webhook='https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
 
function SendMsgToDingding() {
    curl $webhook -H 'Content-Type: application/json' -d "
    {
        'msgtype': 'text',
        'text': {
            'content': 'WGCLOUD告警:$1'
        },
        'at': {
            'isAtAll': true
        }
    }"
}
 
SendMsgToDingding $content

 

 如果不想@所有人,只发给指定用户,可以把'at'部分改造为如下,atMobiles为被@人手机号

'at': {
        'atMobiles': [
            '182XXXXXXXX'
        ], 
        'isAtAll': false
    }

 

记得给testmsg.sh文件添加可执行权限

chmod +x testmsg.sh

 

测试过程中,将xxxxxxxx替换为真实access_token

sh /home/testmsg.sh "测试钉钉告警"

 

 或者

bash /home/testmsg.sh "测试钉钉告警"

 

3、然后在/server/config/application.yml里,修改配置项

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

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

有些系统得用bash才能运行,可以这样,配置脚本前面加个bash

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

 

4、好了,重启server,这样就可以在钉钉收到告警消息了

 

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

 

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

运行如下命令即可

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

6、ubuntu可能运行脚本出现"Bad substitution"错误信息

处理办法,将头部#!/bin/sh改为#/bin/bash

 

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

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

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

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

修改完后,重启下server即可

 
 
posted @ 2020-11-11 10:19  沧海1980  阅读(3495)  评论(2编辑  收藏  举报