hy-app-monitor

部署在 deploy 机器上的轻量监控面板。

  • 页面端口:2026
  • 页面入口:http://43.164.75.199:2026/
  • 服务健康:直接探测各业务服务健康接口
  • 主机资源:通过 TAT 批量采集 CPU / 内存 / 磁盘 / 进程数
  • Nacos直连 Nacos OpenAPI列出命名空间、服务和注册实例
  • MongoDB直连 Mongo采集 serverStatus / listDatabases / replSetGetStatus

目录

  • server.py:后端入口
  • monitor/Python 模块实现
  • config/targets.json:监控目标和实例 ID
  • static/:前端页面
  • scripts/:启停、自启安装、前台运行脚本
  • systemd/systemd unit
  • ops/TAT 放行和远端部署脚本
  • .env.example:运行配置模板

运行配置

项目根目录 .env 是唯一运行配置源,不入库。

最少需要:

APP_BIND=0.0.0.0
APP_PORT=2026
DEFAULT_REFRESH_INTERVAL_SECONDS=10
REFRESH_INTERVAL_OPTIONS=5,10,15,30,60
NACOS_BASE_URL=http://10.2.1.17:8848
NACOS_NAMESPACE_ID=...
MONGO_URI=mongodb://...
DEPLOY_REGION=me-saudi-arabia
TENCENT_SECRET_ID=***
TENCENT_SECRET_KEY=***

如果你要直接在页面里做“构建镜像 -> 推 Harbor -> 更新服务”,还需要补这几项:

HARBOR_REGISTRY=10.2.1.3:18082
HARBOR_PROJECT=likei
HARBOR_USERNAME=***
HARBOR_PASSWORD=***
JAVA_REPO_ROOT=/opt/deploy/sources/chatapp3-java
GOLANG_REPO_ROOT=/opt/deploy/sources/chatapp3-golang
UPDATE_DEFAULT_JAVA_GIT_REF=main
UPDATE_DEFAULT_GO_GIT_REF=main

可以直接复制模板:

cp .env.example .env

本地运行

bash scripts/start.sh
bash scripts/status.sh

访问:

http://127.0.0.1:2026/

systemd 开机自启

在远端项目目录执行:

bash scripts/install_systemd.sh

常用命令:

bash scripts/restart.sh
bash scripts/status.sh
bash scripts/uninstall_systemd.sh

通过 TAT 放行端口

python3 ops/open_port_via_tat.py

默认会:

  1. 解析 deploy 机器安全组
  2. 通过 TAT 放开机器内防火墙
  3. 通过腾讯云 API 放开安全组 TCP 2026

通过 TAT 远端部署

python3 ops/deploy_via_tat.py

默认会:

  1. 拉取或更新 /opt/hy-app-monitor
  2. 把本地项目 .env 同步到远端项目 .env
  3. 创建远端 .venv
  4. 安装 requirements-ops.txt
  5. 安装并启用 systemd
  6. 重启服务并检查 2026 监听

维护完整 Compose

默认只刷新本地完整模板:

python3 ops/sync_runtime_compose.py

如果要把完整模板同步到远端业务主机:

python3 ops/sync_runtime_compose.py --sync-remote

模板文件会写到本地 run/compose_templates/
滚动重启在真正执行 docker compose up -d --force-recreate --no-deps <service> 之前,也会先把对应宿主机的完整 docker-compose.yml 同步到远端,避免线上 compose 被裁剪成子集。

服务更新

页面里的“服务更新”会直接在当前机器上执行这条链路:

  1. JAVA_REPO_ROOT / GOLANG_REPO_ROOT 指向的业务仓按 git ref 创建临时 git worktree
  2. 本地构建镜像并推送到 Harbor
  3. 取回 Harbor digest
  4. 用新 digest 更新本地完整 compose 模板
  5. 把完整 compose 下发到目标宿主机
  6. 先在目标机 docker pull 新镜像
  7. 最后只对你选中的服务执行 docker compose up -d --force-recreate --no-deps <service>

说明:

  • other 现在也按 Harbor 业务镜像更新,不再继续依赖本地 ./other/service.jar 挂载
  • 页面里的“滚动重启”仍然保留,适合只想让配置生效、不涉及代码构建的场景
  • 这条链路默认假设 hy-app-monitor 就运行在打包机 / deploy 机上并且本机已经能访问业务仓、Docker 和 Harbor

页面内容

  • 主机:CPU / 内存 / 磁盘 / 进程数,带阈值颜色分级
  • 服务Java / Golang 健康检查和耗时
  • Nacos命名空间、服务、注册实例、健康状态
  • Nacos 配置:读取当前 namespace 下的配置列表,支持格式校验、在线编辑保存
  • Golang 配置:读取 app 节点当前运行中的 service.env,展示 chatapp3-golang 实际消费的环境变量并支持保存
  • 服务更新:本地构建选中服务、推送 Harbor、更新完整 compose并只重建选中的服务
  • 滚动重启:可按服务选择 Java / Golang 节点,逐台重启并等待健康恢复
  • MongoDB连接、内存、网络、操作计数、复制集、数据库统计
  • 自动刷新:前端可切换刷新间隔,并保存在浏览器本地
Description
No description provided
Readme 2.8 MiB
Languages
Python 48.1%
HTML 18.2%
JavaScript 17.8%
CSS 8.5%
Shell 7.3%