39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
# 每日离线巡检:发报前 SSH 复检 + 备注优先显示
|
||
|
||
**日期**:2026-06-30
|
||
|
||
## 变更摘要
|
||
|
||
定时「每日离线巡检」Telegram 日报在统计与推送前,先对当前离线子机批量执行 SSH 健康检查并刷新 Redis 心跳,再二次扫描得到最终在线/离线数;日报正文增加「巡检前 SSH 复检」一行。离线列表与离线告警的显示名与批量任务一致:**备注 description → name → domain**。
|
||
|
||
## 动机
|
||
|
||
Agent 心跳滞后或短暂网络抖动会导致误报离线;日报发送前应主动 SSH 探测确认。离线名单在 Telegram 中应优先展示运维备注,便于识别机器。
|
||
|
||
## 涉及文件
|
||
|
||
- `server/application/server_connectivity.py` — `health_check_server_ids()`;`scan_monitored_connectivity` 用 `batch_server_display_name`
|
||
- `server/application/services/offline_daily_report_schedule.py` — 日报前 preflight 健康检查
|
||
- `server/config.py` — `OFFLINE_DAILY_REPORT_HEALTH_CHECK`(默认 true)
|
||
- `server/infrastructure/telegram/__init__.py` — 日报增加 preflight 统计行
|
||
- `server/background/server_offline_monitor.py` — 离线告警显示名备注优先
|
||
- `tests/test_offline_daily_report_schedule.py` — preflight 流程单测
|
||
|
||
## 配置
|
||
|
||
```env
|
||
OFFLINE_DAILY_REPORT_HEALTH_CHECK=true # false 可跳过复检
|
||
```
|
||
|
||
## 迁移 / 重启
|
||
|
||
无 DB 迁移;部署后 Docker 重建 API 容器即可,background loop 随进程启动。
|
||
|
||
## 验证方式
|
||
|
||
```bash
|
||
.venv/bin/pytest tests/test_offline_daily_report_schedule.py tests/test_batch_server_display_name.py -q
|
||
```
|
||
|
||
生产:手动触发 `run_scheduled_offline_daily_report(force=True)` 或等到 11:50 北京时间;Telegram 应含复检行且离线名单显示备注。
|