mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-07 02:09:06 +00:00
101f416268
Use noise protocol on handshake. Check peer's public key if needed. Also support rekey and replay attack prevention. E2EE and temporary password will be implemented based on this.
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 或联系开发团队。