宝塔面板需配置微信公众号告警功能,包括公众号开发权限对接、面板通道绑定、负载告警任务创建、链路验证及Webhook替代方案五步。

当宝塔面板监测到服务器负载超过预设阈值时,若未配置有效的通知通道,则无法主动向管理员推送告警。微信公众号作为高到达率的告警接收方式,需完成公众号参数对接、面板通道绑定与告警任务触发三阶段配置。以下是实现该功能的具体操作步骤:
一、配置微信公众号开发权限与接口验证
微信公众号需启用服务器配置并开放消息接口权限,确保宝塔可调用其模板消息能力发送结构化告警。此步骤是建立可信通信链路的前提。
1、登录微信公众平台,进入“开发”→“基本配置”页面。
2、记录页面显示的AppID与AppSecret,二者后续将填入宝塔面板。
3、在“IP白名单”中点击“修改”,添加宝塔服务器的公网IPv4地址(非内网或127.0.0.1)。
4、进入“开发”→“基本配置”→“服务器配置”,点击“启用”按钮;URL填写格式为:https://your-server-ip:8888/wechat/verify(需提前部署验证接口脚本,端口以实际面板端口为准);Token、EncodingAESKey按提示生成并保存。
二、在宝塔面板启用微信通知通道
宝塔需通过内置的消息通道模块加载微信公众号凭证,并完成用户级绑定,使告警可定向推送至指定微信账号。
1、登录宝塔面板,在左侧菜单栏点击设置→面板设置→消息通道。
2、在“微信通知”区域,点击启用开关。
3、依次填入步骤一中获取的AppID、AppSecret及Token(与公众号后台一致)。
4、点击扫码绑定按钮,使用管理员微信扫描弹出二维码并关注公众号。
5、若需向多个账号发送,须在公众号后台开通“模板消息”权限,并在宝塔中手动填入各接收者的OpenID(可通过公众号菜单跳转网页获取)。
三、创建负载过高告警任务
告警任务定义了触发条件与响应动作,必须明确指定监控指标(如负载)、阈值及所用通知通道,否则即使通道就绪也无法自动推送。
1、在宝塔面板左侧菜单栏点击设置→告警设置→添加任务。
2、任务类型选择系统负载,在“负载平均值(1分钟)”字段输入阈值,例如90(单位为百分比,对应图表中90%以上状态)。
3、勾选启用,在“告警方式”中仅保留微信通知(取消邮箱、钉钉等其他通道勾选)。
4、设置“发送上限”为每日5次,避免高频告警刷屏;“告警间隔”建议设为300秒(5分钟),防止重复触发。
5、点击确定完成保存。
四、验证负载告警是否生效
真实模拟高负载场景可验证整条链路是否通畅,包括监控采集、阈值判断、消息组装与微信投递四个环节。
1、在服务器终端执行命令人为抬升负载:stress-ng --cpu 4 --timeout 60s(需先安装stress-ng工具)。
2、等待约30秒,观察首页“负载状态”卡片数值是否持续高于设定阈值(如90%)。
3、查看已绑定的微信公众号是否收到标题为【宝塔告警】服务器负载过高的模板消息,内容应包含服务器IP、当前负载值、触发时间。
4、若未收到,立即检查宝塔面板日志:/www/wwwlogs/panel_error.log中是否有wechat相关报错;同时确认公众号后台“模板消息”发送记录是否存在失败条目。
五、替代方案:通过自定义Webhook转发至微信
若公众号配置受阻(如未认证订阅号不支持模板消息),可绕过官方接口,改用企业微信或第三方聚合服务中转,降低接入门槛。
1、在宝塔“告警设置”→“添加任务”中,任务类型仍选“系统负载”,但“告警方式”切换为自定义Webhook。
2、Webhook URL填写一个中间服务地址,例如:https://your-webhook-proxy.com/wechat-alert(该服务需自行部署,负责接收JSON并调用微信API)。
3、在“请求体”中粘贴标准告警JSON模板,确保包含load_avg、server_ip、trigger_time字段。
4、中间服务接收到请求后,调用微信公众号客服消息接口(无需模板ID,但需用户已发起过会话),向指定OpenID发送文本告警。











