# 子机离线 Telegram 告警 **日期**: 2026-06-08 ## 变更摘要 新增后台任务 `server_offline_monitor`(30s):当已监控子机由在线变为离线时,推送 **一次** Telegram 告警,并写入 `alert_logs`、广播 WebSocket 刷新仪表盘。系统设置新增开关 `notify_alert_offline`。 ## 动机 运维需要在 Agent 心跳丢失时主动获知,而非仅依赖仪表盘刷新;与现有 CPU/内存/磁盘告警开关模式一致。 ## 涉及文件 - `server/background/server_offline_monitor.py`(新) - `server/application/server_connectivity.py` - `server/api/websocket.py` - `server/infrastructure/telegram/__init__.py` - `server/utils/notify_toggles.py` - `server/config.py` - `server/api/settings.py` - `server/main.py` - `frontend/src/types/api.ts` - `tests/test_server_offline_monitor.py` - `docs/design/specs/2026-06-08-server-offline-alert-design.md` - `docs/design/plans/2026-06-08-server-offline-alert.md` ## 迁移 / 重启 - 无需 DB 迁移(设置键首次写入时落库) - 需 **重启后端** 以启动新后台任务 ## 验证方式 ```bash pytest tests/test_server_offline_monitor.py tests/test_server_connectivity.py -q ``` 设置页关闭「子机离线告警」后,模拟在线→离线边沿应无 Telegram。