server主机不能访问外网,如何发送微信、钉钉、邮件、飞书等告警,按照如下步骤操作

可以部署wgcloud-msg(告警消息推送助手)来实现发送告警消息
如果我们server主机不能访问外网,但是网络环境中有能访问外网的主机(暂称为B主机,假设它的IP为192.168.1.9),那么我们就把告警内容发到B主机,由B主机访问微信、钉钉接口发送告警消息
如果我们有上网的HTTP代理也可以,这样wgcloud-msg就可以部署到任何主机,只要这个主机能访问到HTTP代理即可
1、我们首先在B主机部署wgcloud-msg(告警消息推送助手)
Linux平台(amd64或x86_64)下载:wgcloud-msg-v1.4.tar.gz,windows平台(amd64或x86_64)下载:wgcloud-msg-v1.4.zip
我们下载wgcloud-msg-v1.4.tar.gz后,解压,并启动运行,默认端口是10000,也可以在config/application.properties中修改端口
Linux启动程序用脚本start.sh,停止用脚本stop.sh
如果是windows,直接右键管理员身份运行wgcloud-msg-release.exe,也可以注册为系统服务,隐藏窗口运行
2、如果我们的server主机是Linux,我们首先在server主机新建告警脚本weixin.sh(此脚本文件名只是测试,我们可以修改为其他名称),内容如下,记得给weixin.sh赋加可执行权限
ding_url是wgcloud-msg-release的访问地址,需要改为自己实际部署wgcloud-msg-release的主机IP和端口
测试下脚本
记得先给weixin.sh添加可执行权限
测试发送
3、如果我们的server主机是Windows,我们在server主机新建告警脚本weixin.bat,内容如下
提示:需要安装curl工具,在【常用工具】里可以下载
测试发送
4、修改server/config/application.yml如下配置项warnScript,注意是配置告警脚本的完全路径,然后重启server生效
建议将warnToUnicode也设置为yes
wgcloud-msg的日志文件在log/目录下
5、修改wgcloud-msg的配置文件config/application.properties,根据需要修改配置,修改后重启wgcloud-msg生效
只配置自己需要的告警方式的选项值,不需要的告警方式默认为空即可
serverUrl尽量填写为自己的server主机IP和端口,如果不填写也可以,wgcloud-msg启动时候报请求不到serverUrl的错误也没有关系,忽略即可
6、如上就配置完成了,我们可以手动测试下脚本,能否发送告警消息
7、如果想动态给指定用户发送告警消息,也可以的,目前支持企业微信应用和邮件方式
其他方式我们可以在暂时变通下,把要发送的指定用户ID加到告警内容里,这样我们看到告警内容就知道是给谁发的了
我们只需要在告警脚本的最后一行,添加参数toUser,toUser就是我们要发给的用户ID,格式要求分别等同于上面第[5]条的userID和smtpToUser
当告警脚本传递toUser参数时候,且不为空,wgcloud-msg工具就会发送给toUser用户,否则发送给上面第[5]条中的userID或smtpToUser的配置值