WGCLOUD的告警方式,除邮件外,都采用告警脚本方式来实现,如短信、电话等,因此比较灵活,比如微信告警,钉钉告警等都基于脚本实现的
那么短信告警如何实现呢,我们这里给一个参考脚本发送短信(调用短信http接口post方式发送短信),大家基于此来实现自己的处理逻辑
比如我们在server/config/application.yml中的配置的告警脚本为/home/smsMsg.sh
#告警脚本绝对路径(若配置脚本,无论是否配置过邮件,都会执行该脚本),可以为空,参考模板:server/template/sendMsg.sh
warnScript: /home/smsMsg.sh
#是否将告警内容转为unicode(针对告警脚本生效),yes是,no否,钉钉微信等告警建议设置为yes,windows部署server需设置为yes,否则接受到会是乱码
warnToUnicode: yes
/home/smsMsg.sh内容如下(记得给脚本赋加可执行权限),我们获取到告警内容$content后,我们将其发送给短信接口,同时输出到文件server/warn.log中
#!/bin/sh
content=$1
currTime=$(date +"%Y-%m-%d %T")
echo "$currTime warn content is : $content" >> ./warn.log
#下面是发送短信的逻辑,到时候改成自己的实现脚本
#webhook是短信接口
webhook='http://xxxxxxxxxxxx'
account="短信账号"
password="短信密码"
#接受手机号
phone="15800000000"
#我们把这些参数拼接成一个完整的url
urlStr="$webhook?Account=$account&Password=$password&Phone=$phone&Content=$content"
echo "$currTime warn content is : $urlStr" >> ./warn.log
curl -X POST $urlStr -H 'Content-Type: multipart/form-data'
提示,warn.log会生成到server/目录下,即程序运行的目录下,而不是脚本所在目录
以上配置好后,需要重启下server生效
到这里,我们已经把告警内容发送给短信平台了,然后就可以自由发挥处理了