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:监控目标和实例 IDstatic/:前端页面scripts/:启停、自启安装、前台运行脚本systemd/:systemd unitops/: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
SERVICE_BUILD_CACHE_ROOT=/opt/deploy/build-cache
JAVA_MAVEN_THREADS=1C
JAVA_IMAGE_BUILD_MAX_WORKERS=3
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
默认会:
- 解析
deploy机器安全组 - 通过
TAT放开机器内防火墙 - 通过腾讯云 API 放开安全组 TCP
2026
通过 TAT 远端部署
python3 ops/deploy_via_tat.py
默认会:
- 拉取或更新
/opt/hy-app-monitor - 把本地项目
.env同步到远端项目.env - 创建远端
.venv - 安装
requirements-ops.txt - 安装并启用
systemd - 重启服务并检查
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 被裁剪成子集。
服务更新
页面里的“服务更新”会直接在当前机器上执行这条链路:
- Java 服务会在
SERVICE_BUILD_CACHE_ROOT/<repo>/<git-ref>下复用固定构建工作区;Golang 仍按临时git worktree构建 - 本地构建镜像并推送到 Harbor
- 取回 Harbor
digest - 用新
digest更新本地完整 compose 模板 - 把完整 compose 下发到目标宿主机
- 先在目标机
docker pull新镜像 - 最后只对你选中的服务执行
docker compose up -d --force-recreate --no-deps <service>
说明:
other现在也按 Harbor 业务镜像更新,不再继续依赖本地./other/service.jar挂载- Java Maven 默认走增量
package,并支持通过JAVA_MAVEN_THREADS开启 reactor 并行 - 多个 Java 服务会按
JAVA_IMAGE_BUILD_MAX_WORKERS受限并行执行docker build + push - 页面里的“滚动重启”仍然保留,适合只想让配置生效、不涉及代码构建的场景
- 这条链路默认假设
hy-app-monitor就运行在打包机 / deploy 机上,并且本机已经能访问业务仓、Docker 和 Harbor
页面内容
- 主机:
CPU / 内存 / 磁盘 / 进程数,带阈值颜色分级 - 服务:Java / Golang 健康检查和耗时
- Nacos:命名空间、服务、注册实例、健康状态
- Nacos 配置:读取当前 namespace 下的配置列表,支持格式校验、在线编辑保存
- Golang 配置:读取 app 节点当前运行中的
service.env,展示chatapp3-golang实际消费的环境变量并支持保存 - 服务更新:本地构建选中服务、推送 Harbor、更新完整 compose,并只重建选中的服务
- 滚动重启:可按服务选择 Java / Golang 节点,逐台重启并等待健康恢复
- MongoDB:连接、内存、网络、操作计数、复制集、数据库统计
- 自动刷新:前端可切换刷新间隔,并保存在浏览器本地
Description
Languages
Python
48.1%
HTML
18.2%
JavaScript
17.8%
CSS
8.5%
Shell
7.3%