Files
Nexus/docs/changelog/2026-06-07-ops-patrol-layer3-telegram.md
2026-07-08 22:31:31 +08:00

1.7 KiB

Changelog — Layer 3 宿主机巡检完美实现

日期: 2026-06-07

摘要

打通设置页 Telegram 配置与 Layer-3 宿主机巡检(health_monitor.sh + cron):保存时自动同步 .env、脚本支持从 MySQL 回退读取、设置页展示巡检状态与手动同步、部署时自动安装 cron。

动机

用户在设置页配置 Telegram 后,应用内告警与测试发送可用,但宿主机 cron 巡检仅读 docker/.env.prod / 容器 /app/.env,导致 Layer-3 重启告警 Telegram 可能静默失败。

涉及文件

文件 变更
server/infrastructure/env_file.py 新增 .env upsert/read 工具
server/application/services/ops_patrol_sync.py Telegram → /app/.env、persist 卷、host .env.prod
server/api/settings.py set_setting 钩子;GET/POST ops-patrol/*
deploy/health_monitor.sh load_telegram_from_db MySQL 回退
deploy/deploy-production.sh 部署成功时自动 install_ops_cron.sh
deploy/nexus-1panel.sh sync_env_prod_to_volume 含 Telegram 键
frontend/src/pages/SettingsPage.vue Layer 3 巡检状态与同步 UI
frontend/src/types/api.ts OpsPatrol 类型
tests/test_ops_patrol_sync.py 单元测试

迁移 / 重启

  • 无需 DB 迁移
  • 后端需重启/重新部署容器;前端需 vite build
  • 生产需确保 cron 已安装(部署脚本现自动尝试)

验证方式

pytest tests/test_ops_patrol_sync.py -q
bash scripts/local_verify.sh
# 设置页保存 Telegram → 刷新 Layer 3 状态 → 「同步巡检 Telegram」
# 生产: crontab -l | grep nexus-health-monitor; tail /var/log/nexus_health.log