# AssistOps **Repository Path**: chica_admin/assist-ops ## Basic Information - **Project Name**: AssistOps - **Description**: 监控数据库业务情况,每天省掉运维走查的时间 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-26 - **Last Updated**: 2026-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AssistOps - 一站式运维监控管理平台 ## 📖 项目简介 **AssistOps** 本项目是一款专注于数据库监控与自动化巡检的开源运维管理平台,旨在解决传统数据库人工巡检重复繁琐、效率低下、易出疏漏的问题,有效减轻运维压力,提升数据库运维效率与业务系统稳定性。 该工具最初来源于实际项目运维需求。此前为团队核心运维场景开发了数据库定时异常巡检能力,但早期版本基于客户专属脚手架开发,受合规与架构限制,无法开源对外共享。 因此,本项目基于若依开源框架对原有功能进行完整重构、梳理与优化,剥离受限代码,复刻并升级了定时巡检、数据异常校验等核心能力,标准化项目结构与使用逻辑,形成可公开使用、支持二次开发的开源版本。 平台聚焦数据库运维场景,支持常态化自动化巡检,可替代人工手动核查、重复走查工作,快速发现数据异常,降低人工运维成本与失误风险,帮助运维团队实现数据库巡检自动化、规范化运维。 核心功能包括: - 🔍 **服务器资源监控** - CPU、内存、磁盘、网络等关键指标实时监控 - 🗄️ **数据库统一管理** - 多数据库类型支持、连接配置管理、SQL 执行 - ⚡ **智能告警规则** - 灵活的告警策略配置、多渠道通知(邮件) - 📊 **可视化工作台** - 定制化仪表盘、告警记录查询、数据统计 - 👥 **权限管理体系** - 用户-角色-菜单三级权限控制、数据库用户关联 - 🔄 **资源回收站** - 数据恢复机制、操作审计日志 ## 🛠️ 技术栈 ### 后端技术 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.5.x | 核心框架 | | Java | 17+ | 开发语言 | | Shiro | 2.2.0 | 安全认证与授权 | | MyBatis | 3.0.x | ORM 框架 | | Thymeleaf | - | 模板引擎 | | Druid | 1.2.x | 数据库连接池 | | Bootstrap | 4.x | 前端 UI 框架 | | jQuery | 3.x | JavaScript 库 | ### 数据库 - 支持多种数据库类型(MySQL、PostgreSQL、Oracle、SQL Server 等) - 通过 `ops_db_config` 表实现动态数据库配置管理 ### 架构特点 - **模块化设计** - Maven 多模块项目管理 - `rainy-admin`: Web 应用入口 - `rainy-framework`: 核心框架(Shiro、切面、异常处理) - `rainy-system`: 系统管理(用户、角色、菜单) - `rainy-common`: 公共工具类 - `rainy-assistops`: 业务模块(监控、告警、模板) - `rainy-generator`: 代码生成器 - `rainy-quartz`: 定时任务调度 - **RBAC 权限模型** - 细粒度权限控制 - **RSA 加密传输** - 密码安全加密通信 - **多类型验证码** - 数学计算、字符校验、滑块验证、点选验证 ## 📁 项目结构 ``` assist-ops/ ├── rainy-admin/ # Web 应用主模块(启动入口、控制器、视图) ├── rainy-assistops/ # 业务模块(监控、告警、工单等) ├── rainy-framework/ # 框架核心(Shiro、AOP、异常处理) ├── rainy-system/ # 系统管理(用户、角色、菜单、部门) ├── rainy-common/ # 通用工具(注解、异常、工具类) ├── rainy-generator/ # 代码生成器 ├── rainy-quartz/ # 定时任务 ├── sql/ # 数据库脚本 └── bin/ # 启动脚本 ``` ## 🚀 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 5.7+ / PostgreSQL 12+ - Node.js 14+(可选,用于前端开发) ### 构建与运行 1. **克隆项目** ```bash git clone https://gitee.com/chica_admin/assist-ops.git cd assist-ops ``` 2. **导入数据库** ```bash # 初始化基础表结构 mysql -u root -p < sql/ry_20260319.sql # 初始化业务表结构 mysql -u root -p < sql/ops_alert.sql mysql -u root -p < sql/ops_email_config.sql mysql -u root -p < sql/ops_server_config_menu.sql mysql -u root -p < sql/ops_workbench.sql ``` 3. **修改配置** 编辑 `rainy-admin/src/main/resources/application.yml`: ```yaml spring: datasource: druid: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/assist_ops?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: your_username password: your_password ``` 4. **编译打包** ```bash mvn clean package -DskipTests ``` 5. **启动服务** ```bash # Windows bin\run.bat # Linux / Mac bin/run.sh ``` 访问 http://localhost:8080 即可登录系统(默认账号:admin/admin123) ## 📝 配置说明 ### 核心配置文件 - `application.yml` - 主配置文件(端口、数据源、Redis 等) - `shiroConfig.java` - Shiro 安全配置 - `ResourcesConfig.java` - 静态资源映射配置 ### 常用配置项 ```yaml rainy: name: AssistOps # 项目名称 version: 4.8.3 # 项目版本 demoEnabled: false # 示例数据开关 profile: D:/uploadPath # 文件上传路径 server: port: 8080 # 服务端口 servlet: context-path: / # 上下文路径 ``` ## 🔐 功能特性 ### 安全机制 - ✅ RSA 非对称加密传输密码 - ✅ Shiro 会话管理 + Remember Me - ✅ CSRF Token 防护 - ✅ 多次登录失败锁定账户 - ✅ 密码过期提醒 - ✅ 单点登录踢出(在线用户冲突检测) ### 权限控制 - ✅ 菜单级权限(一级~四级菜单) - ✅ 按钮级权限(`@DataScope`、`@Log` 等自定义注解) - ✅ 数据权限(本部门、全部、自定义) - ✅ 角色继承与互斥 ### 扩展能力 - ✅ 自定义注解(操作日志、重复提交、数据源切换) - ✅ AOP 切面(日志记录、数据权限、权限校验) - ✅ 插件化验证码(支持多种模式) - ✅ 动态数据源(主从切换、多数据源路由) ## 📊 业务模块说明 ### OpsAlertRuleController - 告警规则管理 定义 CPU、内存、磁盘等资源的告警阈值,支持阈值型、增长率型告警。 ### OpsServerConfigController - 服务器配置管理 监控节点配置、采集频率、健康检查策略。 ### OpsEmailConfigController - 邮件通知配置 SMTP 服务器配置、发件人信息、测试连通性。 ### OpsDbConfigController - 数据库连接配置 多数据库类型支持、加密存储连接凭证、连通性检测。 ### WorkbenchController - 可视化工作台 定制仪表盘、关键指标展示、快捷操作入口。 ## 🤝 贡献指南 欢迎参与项目开发!请遵循以下步骤: 1. **Fork 本仓库** 2. **创建特性分支** ```bash git checkout -b feature/YourFeature ``` 3. **提交更改** ```bash git commit -m 'feat: add some feature' ``` 4. **推送到分支** ```bash git push origin feature/YourFeature ``` 5. **提交 Pull Request** ### 开发规范 - 代码风格遵循阿里巴巴 Java 开发手册 - 提交信息使用 Conventional Commits 规范(feat/fix/docs/style/refactor/test/chore) - 每个功能应包含相应的单元测试 ## 📄 开源协议 本项目采用 [Apache License 2.0](LICENSE) 开源协议。 ``` Copyright 2026 RainyStudio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ``` **Apache License 2.0 允许:** - ✅ 商业使用 - ✅ 修改代码 - ✅ 分发代码 - ✅ 私有使用 **条件:** - 📝 保留版权声明和许可证文本 - 📝 注明修改内容 ## 🙏 致谢 感谢以下开源项目: - [RuoYi](https://www.ruoyi.vip) - 项目基座 - [Spring Boot](https://spring.io/projects/spring-boot) - 核心框架 - [Apache Shiro](https://shiro.apache.org/) - 安全框架 - [MyBatis](https://mybatis.org/) - ORM 框架 - [Bootstrap](https://getbootstrap.com/) - 前端框架 - [jQuery](https://jquery.com/) - JavaScript 库 ## 📞 联系方式 - **项目主页**: [http://www.rainy.net.cn](http://www.rainy.net.cn) - **问题反馈**: 请在 GitHub Issues 中描述您的问题 - **功能建议**: 欢迎提交 Feature Request --- > **AssistOps** - 高效 · 稳定 · 安全的一站式运维管理解决方案 > © 2026 RainyStudio. All Rights Reserved.