Files
Nexus/docs/changelog/2026-06-30-offline-daily-preflight-health-check.md
2026-07-08 22:31:31 +08:00

1.7 KiB
Raw Permalink Blame History

每日离线巡检:发报前 SSH 复检 + 备注优先显示

日期2026-06-30

变更摘要

定时「每日离线巡检」Telegram 日报在统计与推送前,先对当前离线子机批量执行 SSH 健康检查并刷新 Redis 心跳,再二次扫描得到最终在线/离线数;日报正文增加「巡检前 SSH 复检」一行。离线列表与离线告警的显示名与批量任务一致:备注 description → name → domain

动机

Agent 心跳滞后或短暂网络抖动会导致误报离线;日报发送前应主动 SSH 探测确认。离线名单在 Telegram 中应优先展示运维备注,便于识别机器。

涉及文件

  • server/application/server_connectivity.pyhealth_check_server_ids()scan_monitored_connectivitybatch_server_display_name
  • server/application/services/offline_daily_report_schedule.py — 日报前 preflight 健康检查
  • server/config.pyOFFLINE_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 流程单测

配置

OFFLINE_DAILY_REPORT_HEALTH_CHECK=true   # false 可跳过复检

迁移 / 重启

无 DB 迁移;部署后 Docker 重建 API 容器即可,background loop 随进程启动。

验证方式

.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 应含复检行且离线名单显示备注。