# Monitor **Repository Path**: litinyana/monitor ## Basic Information - **Project Name**: Monitor - **Description**: 服务器资源监控器,sprinbgoot包含html做的,加了echarts来显示 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2025-08-18 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, java-util ## README # 服务器监控系统 一个基于 Spring Boot 的轻量级、实时服务器性能监控系统,通过可视化图表展示 CPU、内存和磁盘使用情况,支持 RESTful API 获取系统指标数据。 ## ✨ 功能特性 - **实时监控**:动态采集并展示服务器关键性能指标 - CPU 使用率(%) - 内存使用率(%) - 磁盘使用率(%) - **数据可视化**:使用 ECharts 构建直观的仪表盘和趋势图表 - **RESTful API**:提供标准化的 JSON 数据接口,便于集成和扩展 - **轻量高效**:低资源消耗,响应迅速 - **跨平台支持**:支持 Windows、Linux、macOS 等主流操作系统 ## 🛠 技术栈 | 技术 | 用途 | 版本 | |------|------|------| | Spring Boot | 后端框架 | 2.7.x / 3.x | | Thymeleaf | 模板引擎 | 3.0+ | | ECharts | 数据可视化 | 5.4+ | | OSHI | 系统信息采集 | 6.4+ | | Maven | 项目构建 | 3.6+ | ## 📁 项目结构 ``` monitor/ ├── src/main/java/com/xiran/monitor/ │ ├── controller/ # 控制器层 │ │ ├── MonitorController.java # 页面控制器 │ │ └── ApiController.java # API接口控制器 │ ├── model/ # 数据模型 │ │ └── SystemMetrics.java # 系统指标模型 │ ├── service/ # 业务逻辑层 │ │ └── SystemMonitorService.java # 系统监控服务 │ └── ServerMonitorApplication.java # 应用启动类 │ ├── src/main/resources/ │ ├── application.yml # 配置文件 │ ├── static/ # 静态资源 │ │ ├── css/ # 样式表 │ │ ├── js/ # JavaScript文件 │ │ └── lib/ # 第三方库(ECharts) │ └── templates/ # 模板文件 │ └── monitor.html # 监控页面 │ ├── pom.xml # Maven依赖配置 ├── README.md # 项目说明文档 └── LICENSE # 许可证文件 ``` ## 🚀 快速开始 ### 环境要求 - JDK 8 或更高版本 - Maven 3.6+ - 现代浏览器(Chrome 90+、Firefox 88+、Edge 90+) ### 方式一:使用预编译 JAR 包(推荐) 1. **下载最新版本** ```bash # 从 Releases 页面下载或使用以下命令 wget https://gitee.com/litinyana/monitor/releases/latest/download/monitor-1.0.0.jar ``` 2. **运行应用** ```bash java -jar monitor-1.0.0.jar ``` 3. **访问监控面板** 打开浏览器,访问:`http://localhost:9094/monitor` ### 方式二:从源码构建 1. **克隆项目** ```bash git clone https://gitee.com/litinyana/monitor.git cd monitor ``` 2. **构建项目** ```bash # 使用 Maven 打包 mvn clean package -DskipTests ``` 3. **运行项目** ```bash # 运行 JAR 包 java -jar target/monitor-*.jar # 或使用 Maven 直接运行 mvn spring-boot:run ``` ### 配置说明 默认配置(`application.yml`): ```yaml server: port: 9094 servlet: context-path: / spring: thymeleaf: cache: false # 开发模式关闭缓存 mode: HTML mvc: static-path-pattern: /static/** monitor: refresh-interval: 3000 # 数据刷新间隔(毫秒) history-size: 60 # 历史数据保留点数 ``` 如需修改端口或配置,可创建 `application-local.yml` 或通过命令行参数: ```bash java -jar monitor-1.0.0.jar --server.port=8080 ``` ## 📊 监控界面 系统提供直观的 Web 监控面板,包含: - **实时仪表盘**:显示当前系统资源使用率 - **趋势图表**:展示近期的性能变化趋势 - **数据刷新**:支持手动/自动刷新(默认 3 秒) - **响应式设计**:适配桌面和移动设备 界面预览: ![img.png](img.png) ## 🔌 API 文档 ### 1. 获取系统指标 ```http GET /api/metrics ``` **响应示例**: ```json { "status": "success", "data": { "cpuUsage": 25.5, "memoryUsage": 65.3, "diskUsage": 45.1, "timestamp": 1625648937000, "systemInfo": { "os": "Windows 10 10.0", "arch": "amd64", "processorCount": 8 } }, "message": "Metrics retrieved successfully" } ``` **字段说明**: | 字段 | 类型 | 说明 | |------|------|------| | cpuUsage | number | CPU 使用率(百分比) | | memoryUsage | number | 内存使用率(百分比) | | diskUsage | number | 磁盘使用率(百分比) | | timestamp | number | 数据时间戳(毫秒) | | systemInfo.os | string | 操作系统信息 | | systemInfo.arch | string | 系统架构 | | systemInfo.processorCount | number | 处理器核心数 | ### 2. 健康检查 ```http GET /actuator/health ``` **响应示例**: ```json { "status": "UP", "components": { "diskSpace": { "status": "UP", "details": { "total": 500107862016, "free": 250056712192, "threshold": 10485760 } } } } ``` ## 🔧 扩展与定制 ### 添加新的监控指标 1. 在 `SystemMetrics` 类中添加新字段 2. 在 `SystemMonitorService` 中实现数据采集逻辑 3. 更新前端页面显示新指标 ## 🐛 故障排除 ### 常见问题 1. **端口被占用** ``` 错误:Web server failed to start. Port 9094 was already in use. ``` **解决方案**:修改端口号 ```bash java -jar monitor-1.0.0.jar --server.port=9095 ``` 2. **权限不足** ``` 错误:Unable to obtain system information ``` **解决方案**:使用管理员/root权限运行 3. **磁盘信息不准确** **解决方案**:检查系统磁盘挂载点,可能需要调整磁盘路径配置 ### 日志查看 应用日志默认输出到控制台,可通过以下方式查看: ```bash # 查看实时日志 tail -f logs/monitor.log # 查看错误日志 grep ERROR logs/monitor.log ``` ## 📈 性能优化建议 1. **生产环境配置**: ```yaml spring: thymeleaf: cache: true # 启用模板缓存 monitor: refresh-interval: 5000 # 延长刷新间隔减少负载 ``` 2. **增加数据持久化**: - 集成数据库(MySQL/PostgreSQL)存储历史数据 - 添加数据清理策略,定期清理旧数据 3. **增强安全性**: - 添加身份验证 - 启用 HTTPS - 配置 API 访问限制 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request 来帮助改进项目。 1. Fork 本仓库 2. 创建功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 开启 Pull Request ## 📄 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。 **注意**:本项目仅用于学习和演示目的。在生产环境中使用时,请确保进行充分测试并添加必要的安全措施。 ## 🌟 后续计划 - [ ] 添加进程监控功能 - [ ] 支持多服务器监控 - [ ] 实现数据告警机制 - [ ] 增加数据导出功能 - [ ] 提供 Docker 容器化部署 ---