告警报警配置说明 / server主机不能访问外网怎么发送告警通知
有时候我们运行server程序的主机,不能访问公网,那么如何发送企业微信、钉钉、邮件、飞书等告警消息呢,按照如下步骤操作
可以部署wgcloud-msg(告警消息推送助手)来实现发送告警消息,wgcloud-msg也可以监控wgcloud-server的进程是否存活
如果我们server主机不能访问外网,但是网络环境中有能访问外网的主机(暂称为B主机,假设它的IP为192.168.1.9),那么我们就把告警内容发到B主机,由B主机访问微信、钉钉接口发送告警消息
如果我们有上网的HTTP代理也可以,这样wgcloud-msg就可以部署到任何主机,只要这个主机能访问到HTTP代理即可
1、我们首先在B主机部署wgcloud-msg(告警消息推送助手)
点击下载告警消息推送助手wgcloud-msg
我们下载wgcloud-msg-v1.5.2.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添加可执行权限
测试发送
我们计划在v3.6.4版本开始,在server程序中集成功能,直接给告警消息推送助手wgcloud-msg推送通知,不用再写如上的推送脚本了。当然如果想写的话也可以的,如上方式依然兼容
3、如果我们的server主机是Windows,我们在server主机新建告警脚本weixin.bat,内容如下
提示:如果需要安装curl工具,在【常用工具】 里可以下载
测试发送
我们计划在v3.6.4版本开始,在server程序中集成功能,直接给告警消息推送助手wgcloud-msg推送通知,不用再写如上的推送脚本了。当然如果想写的话也可以的,如上方式依然兼容
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的配置值
提示:仿照【2】和【3】中content的替换双引号为空,把参数toUser的值里面的双引号也替换为空,不然可能报json格式错误
8、怎么根据标签名称、告警级别或者给指定用户发送告警消息
也可以的,使用告警脚本实现,就是修改下上面【5】中的配置项warnScript
我们只需要在告警脚本的最后一行,添加参数toUser,toUser就是我们要发给的用户ID,格式要求分别等同于上面第[5]条中的userID和smtpToUser
参数groups,就是标签名称,多个标签名称会使用英文逗号隔开
参数warnLevel,就是告警级别分别为:重要,一般,信息
当告警脚本传递toUser、groups、warnLevel参数时候,且不为空,warnScript告警脚本就可以使用这些参数
提示:仿照【2】和【3】中content的替换双引号为空,把参数toUser、groups、warnLevel的值里面的双引号也替换为空,不然可能报json格式错误
查看如何书写warnScript告警脚本
9、wgcloud-msg也可以监控wgcloud-server的进程是否存活
有时候我们想监控wgcloud的server服务是否在正常运行,那么wgcloud-msg可以胜任这个工作,我们可以把wgcloud-msg部署到任何主机,只要它能访问通wgcloud-server即可
然后我们只需要配置上面【5】中的配置文件中的参数serverUrl即可,只要wgcloud-msg能访问通serverUrl即可
如果wgcloud-msg访问不到serverUrl,那么就会发送告警通知(配置了什么告警方式就会发送什么方式的通知),默认每5分钟检测一次serverUrl
监控wgcloud-server的进程是否存活的告警通知,有静默机制,默认2小时内不会重复发送,2小时后如果还是访问不到wgcloud-server,那么会继续发送通知
如果不想监控wgcloud-server的服务,如何关闭呢,我们只需要修改下配置文件config/application.properties中的参数serverCheckTask=no,改为no即可,然后重启下wgcloud-msg程序就生效了