mirror of
https://github.com/EasyTier/EasyTier.git
synced 2025-09-26 20:51:17 +08:00
5.8 KiB
5.8 KiB
EasyTier Uptime Monitor
一个用于监控 EasyTier 实例健康状态和运行时间的系统。
功能特性
- 🏥 健康监控: 实时监控 EasyTier 节点的健康状态
- 📊 数据统计: 提供详细的运行时间和响应时间统计
- 🔧 实例管理: 管理多个 EasyTier 实例
- 🌐 Web界面: 直观的 Web 管理界面
- 🚨 告警系统: 支持健康状态异常告警
- 📈 图表展示: 可视化展示监控数据
系统架构
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Database │
│ (Vue.js) │◄──►│ (Rust/Axum) │◄──►│ (SQLite) │
│ │ │ │ │ │
│ ┌─────────────┐ │ │ ┌─────────────┐ │ │ ┌─────────────┐ │
│ │ Dashboard │ │ │ │ API Routes │ │ │ │ Nodes │ │
│ │ Health View │ │ │ │ Health │ │ │ │ Health │ │
│ │ Node Mgmt │ │ │ │ Instances │ │ │ │ Instances │ │
│ │ Charts │ │ │ │ Scheduler │ │ │ │ Stats │ │
│ └─────────────┘ │ │ └─────────────┘ │ │ └─────────────┘ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
快速开始
环境要求
- Rust: 1.70+
- Node.js: 16+
- npm: 8+
开发环境
-
克隆项目
git clone <repository-url> cd easytier-uptime
-
启动开发环境
./start-dev.sh
-
访问应用
- 前端界面: http://localhost:3000
- 后端API: http://localhost:8080
- 健康检查: http://localhost:8080/health
生产环境
-
启动生产环境
./start-prod.sh
-
停止生产环境
./stop-prod.sh
配置说明
环境变量
后端配置 (.env)
变量名 | 默认值 | 说明 |
---|---|---|
SERVER_HOST |
127.0.0.1 |
服务器监听地址 |
SERVER_PORT |
8080 |
服务器端口 |
DATABASE_PATH |
uptime.db |
数据库文件路径 |
DATABASE_MAX_CONNECTIONS |
10 |
数据库最大连接数 |
HEALTH_CHECK_INTERVAL |
30 |
健康检查间隔(秒) |
HEALTH_CHECK_TIMEOUT |
10 |
健康检查超时(秒) |
HEALTH_CHECK_RETRIES |
3 |
健康检查重试次数 |
RUST_LOG |
info |
日志级别 |
CORS_ALLOWED_ORIGINS |
http://localhost:3000 |
允许的跨域来源 |
ENABLE_CORS |
true |
是否启用CORS |
ENABLE_COMPRESSION |
true |
是否启用压缩 |
前端配置 (frontend/.env)
变量名 | 默认值 | 说明 |
---|---|---|
VITE_APP_TITLE |
EasyTier Uptime Monitor |
应用标题 |
VITE_API_BASE_URL |
/api |
API基础URL |
VITE_APP_ENV |
development |
应用环境 |
VITE_ENABLE_DEV_TOOLS |
true |
是否启用开发工具 |
VITE_API_TIMEOUT |
10000 |
API超时时间(毫秒) |
API 文档
健康检查
GET /health
节点管理
# 获取节点列表
GET /api/nodes
# 创建节点
POST /api/nodes
# 获取节点详情
GET /api/nodes/{id}
# 更新节点
PUT /api/nodes/{id}
# 删除节点
DELETE /api/nodes/{id}
健康记录
# 获取节点健康历史
GET /api/nodes/{id}/health
# 获取节点健康统计
GET /api/nodes/{id}/health/stats
实例管理
# 获取实例列表
GET /api/instances
# 创建实例
POST /api/instances
# 停止实例
DELETE /api/instances/{id}
测试
运行集成测试
./test-integration.sh
运行单元测试
cargo test
测试覆盖率
cargo tarpaulin
部署
Docker 部署
# 构建镜像
docker build -t easytier-uptime .
# 运行容器
docker run -d -p 8080:8080 easytier-uptime
手动部署
-
构建后端
cargo build --release
-
构建前端
cd frontend npm install npm run build cd ..
-
配置环境
cp .env.production .env # 编辑 .env 文件
-
启动服务
./start-prod.sh
监控和日志
日志文件
- 后端日志:
logs/backend.log
- 前端日志:
logs/frontend.log
- 测试日志:
test-results/
健康检查
系统提供以下健康检查端点:
/health
- 基本健康检查/api/health/stats
- 健康统计信息/api/health/scheduler/status
- 调度器状态
故障排除
常见问题
-
后端启动失败
- 检查端口是否被占用
- 确认数据库文件权限
- 查看日志文件
logs/backend.log
-
前端连接失败
- 检查后端服务是否运行
- 确认API地址配置
- 检查CORS配置
-
健康检查失败
- 确认目标节点可访问
- 检查防火墙设置
- 验证健康检查配置
性能优化
-
数据库优化
- 定期清理过期数据
- 配置适当的连接池大小
- 使用索引优化查询
-
前端优化
- 启用代码分割
- 配置缓存策略
- 优化图片和资源
-
网络优化
- 启用压缩
- 配置CDN
- 优化API响应时间
贡献指南
- Fork 项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request
许可证
MIT License
支持
如有问题或建议,请提交 Issue 或联系开发团队。