RouterOS Queue Monitor
🚀 现代化的 RouterOS 队列监控系统
实时监控 • 数据可视化 • 科技感UI • 高性能
功能特性 • 快速开始 • 部署方式 • 配置说明 • 故障排除

📋 项目简介
RouterOS Queue Monitor 是一个专为 MikroTik RouterOS 设计的现代化队列监控系统。它提供实时的队列状态监控、数据可视化和告警功能,帮助网络管理员更好地监控和管理网络流量。
✨ 核心特性
🔄 实时监控: WebSocket 实时数据更新,无需手动刷新
📊 数据可视化: 直观的图表和进度条显示队列状态
🎨 科技感UI: 现代化的深色主题界面设计
📱 响应式设计: 完美适配桌面、平板和手机设备
⚡ 高性能: Go 语言后端,快速响应和低资源占用
🔍 智能过滤: 支持队列搜索、分类和排序
📈 多视图模式: 网格视图和列表视图自由切换
💾 数据导出: 支持 JSON 格式数据导出
🔔 状态告警: 高负载队列自动告警提醒
⌨️ 快捷键支持: 提高操作效率的键盘快捷键
🎯 功能特性
📊 监控功能
队列状态监控: 实时显示所有队列的当前状态
流量统计: 上行/下行流量统计和趋势分析
利用率监控: 队列利用率实时计算和告警
历史数据: 保存历史监控数据用于趋势分析
🎨 用户界面
现代化设计: 科技感十足的深色主题界面
数据可视化: 进度条、状态指示器、统计卡片
交互体验: 流畅的动画效果和悬停反馈
自定义控件: 美化的下拉选择框和搜索框
🔧 管理功能
智能过滤: 按队列类型、状态、名称过滤
多种排序: 支持按名称、利用率、速率排序
实时搜索: 队列名称实时搜索功能
数据导出: 一键导出监控数据
🚀 技术特性
WebSocket 通信: 实时双向数据传输
RESTful API: 标准的 REST API 接口
并发安全: Go 协程安全的并发处理
错误处理: 完善的错误处理和恢复机制
🛠 系统要求
服务器端
操作系统: Linux Windows macOS
Go 版本: 1.21 或更高版本
内存: 最小 512MB RAM
存储: 最小 100MB 可用空间
网络: 能够访问 RouterOS 设备的网络连接
RouterOS 设备
RouterOS 版本: 6.40 或更高版本
API 访问: 启用 API 服务(默认端口 8728)
用户权限: 具有读取队列信息权限的用户账户
客户端浏览器
现代浏览器: Chrome 80+, Firefox 75+, Safari 13+, Edge 80+
JavaScript: 启用 JavaScript 支持
WebSocket: 支持 WebSocket 协议
🚀 快速开始
方式一:直接运行
克隆项目
安装依赖
配置文件
运行程序
访问界面
方式二:编译运行
编译程序
运行程序
⚙️ 配置说明
配置文件 (config.json)
环境变量
可以通过环境变量覆盖配置文件设置:
RouterOS 配置
启用 API 服务
创建监控用户(推荐)
防火墙规则(如需要)
📱 使用说明
界面概览
顶部导航栏
连接状态指示器
刷新按钮
全屏切换按钮
统计概览区域
活跃队列数量
总上行/下行流量
高负载队列数量
控制面板
队列筛选:全部/上行/下行/高负载/正常
排序方式:名称/利用率/速率/流量
搜索框:实时搜索队列名称
视图切换:网格视图/列表视图
导出按钮:导出当前数据
队列监控区域
队列卡片显示详细信息
实时利用率进度条
状态颜色指示(绿色/黄色/红色)
快捷键
Ctrl + R: 刷新数据Ctrl + F: 聚焦搜索框F11: 全屏切换Esc: 关闭弹窗
状态说明
| 状态 | 颜色 | 利用率范围 | 说明 |
|---|---|---|---|
| 正常 | 🟢 绿色 | 0% - 69% | 队列运行正常 |
| 警告 | 🟡 黄色 | 70% - 89% | 队列负载较高,需要关注 |
| 危险 | 🔴 红色 | 90% - 100% | 队列负载过高,需要立即处理 |
🐳 部署方式
Docker 部署
创建 Dockerfile
构建镜像
运行容器
Docker Compose 部署
系统服务部署
创建服务文件
启用并启动服务
查看服务状态
🔧 API 文档
REST API 端点
获取队列统计
响应示例:
WebSocket API
连接端点
消息格式
队列更新消息:
错误消息:
心跳消息:
🔍 故障排除
常见问题
1. 无法连接到 RouterOS
问题: 显示"连接RouterOS失败"
解决方案:
检查 RouterOS IP 地址是否正确
确认 API 服务已启用:
/ip service print检查防火墙规则是否允许 8728 端口
验证用户名和密码是否正确
确认网络连通性:
ping RouterOS_IP
2. 页面加载缓慢或卡顿
问题: 界面响应缓慢
解决方案:
检查网络延迟到 RouterOS 设备
调整配置文件中的
monitor.interval参数减少
monitor.max_history历史数据点数量检查服务器资源使用情况
3. WebSocket 连接失败
问题: 实时更新不工作
解决方案:
检查浏览器是否支持 WebSocket
确认防火墙没有阻止 WebSocket 连接
查看浏览器开发者工具的网络标签页
尝试刷新页面重新建立连接
4. 数据显示不准确
问题: 队列数据显示异常
解决方案:
检查 RouterOS 队列配置是否正确
确认监控用户有足够的权限读取队列信息
查看应用日志文件获取详细错误信息
重启监控服务
启用调试模式
🤝 贡献指南
我们欢迎所有形式的贡献!
如何贡献
Fork 项目
创建功能分支 (
git checkout -b feature/AmazingFeature)提交更改 (
git commit -m 'Add some AmazingFeature')推送到分支 (
git push origin feature/AmazingFeature)创建 Pull Request
开发环境设置
克隆项目
安装依赖
运行测试
启动开发服务器
代码规范
遵循 Go 官方代码规范
使用
gofmt格式化代码添加适当的注释和文档
编写单元测试
报告问题
如果你发现了 bug 或有功能建议,请:
检查是否已有相关 issue
创建新的 issue 并提供详细信息
包含复现步骤和环境信息
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🙏 致谢
MikroTik - RouterOS 操作系统
Gin - Go Web 框架
Gorilla WebSocket - WebSocket 库
Font Awesome - 图标库
Chart.js - 图表库
📞 联系方式
项目主页: GitHub Repository
问题反馈: GitHub Issues
邮箱: hrinvay@gmail.com
🔄 更新日志
v1.0.0 (2024-01-15)
🎉 初始版本发布
📊 基础队列监控功能
🔌 RouterOS API 集成
🌐 Web 界面
✨ 科技感 UI 设计
🚀 WebSocket 实时数据更新
📊 增强的数据可视化
📱 完全响应式设计
🔍 智能搜索和过滤功能
💾 数据导出功能
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
MIT 许可证说明
MIT 许可证是一个宽松的开源许可证,允许你:
✅ 商业使用 - 可以用于商业项目
✅ 修改 - 可以修改源代码
✅ 分发 - 可以分发原始或修改后的代码
✅ 私人使用 - 可以私人使用
✅ 专利使用 - 提供专利使用权
唯一要求:在所有副本中包含原始许可证和版权声明
免责声明:软件按"原样"提供,不提供任何形式的保证
⭐ 如果这个项目对你有帮助,请给它一个星标!
Made with ❤️ by [Rinvay]
评论