HummerRisk V1.0 开发手册 (微服务版)
HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生环境的安全和治理问题。核心能力包括混合云的安全治理和容器云安全检测。
本文将介绍 HummerRisk 1.0 以后的开发准备工作。
v1.0.0 以后的版本,代码在 dev 分支。欢迎大家在 dev 开发分支提交 pr 。
项目结构
1. 系统模块
2. 系统需求
JDK >= 17 (推荐 17 版本)
Mysql >= 8.0 (推荐 8.0.32 版本)
Maven >= 3.6 (推荐 3.6.3 版本)
Node >= 16.1 (推荐 16.1.0 版本)
Redis >= 6.2 (推荐 6.2.10 版本)
nacos >= 2.2 (推荐 2.2.0 版本)
sentinel >= 1.6.0
3. 技术选型
1)系统环境
Java EE 17
Servlet 3.0
Apache Maven 3
2)主框架
Spring Boot 3.0.0
Spring Cloud 2022.0.1
Spring Framework 6.0.0
Spring Security 6.0.0
3)持久层
Apache MyBatis 3.5.x
Hibernate Validation 6.0.x
Alibaba Druid 1.2.x
4)视图层
Vue 2.6.x
Axios 0.21.0
Element 2.15.x
4. 系统端口
hmr-ui [80]
hmr-flyway [9000]
hmr-gateway [8080]
hmr-auth [9200]
hmr-system [9300, 9301, 8001]
hmr-cloud [9400, 9401, 8002]
hmr-k8s [9500, 9501, 8003]
hmr-monitor [9100]
hmr-mysql [3306]
hmr-nacos [8848, 9848]
hmr-redis [6379]
hmr-job [8084]
配置开发环境
1. 环境准备
后端
HummerRisk 后端使用了 Java 语言的 Spring Cloud 框架,并使用 Maven 作为项目管理工具。开发者需要先在开发环境中安装 JDK 17 及 Maven。
前端
HummerRisk 前端使用了 Vue.js 作为前端框架,ElementUI 作为 UI 框架,并使用 npm 或 yarn 作为包管理工具。开发者请先下载 Node.js 或 Yarn 作为运行环境,IDEA 用户建议安装 Vue.js 插件,便于开发。
安装 npm 或 yarn
进入网站https://nodejs.org/en/download
或https://yarn.bootcss.com/docs/install, 选择相应的安装包进行安装即可。
相关组件
nacos: https://nacos.io/zh-cn/docs/quick-start.html
redis: https://redis.io/
xxl-job: HummerRisk/xxl-job
2. 初始化配置
数据库初始化
HummerRisk 使用 MySQL 数据库,推荐使用 MySQL 8.0 版本。同时 hummerrisk 对数据库部分配置项有要求,请参考下附的数据库配置,修改开发环境中的数据库配置文件
注意:Windows 系统数据库初始化配置应删除 innodb_flush_method 参数,请参考文章。
https://bugs.mysql.com/bug.php?id=40757
请参考文档中的建库语句创建 HummerRisk 使用的数据库,HummerRisk 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。
3. 配置参数
HummerRisk 本地开发需要各种配置,请参考下面配置参数。
提示: 请自行将 HMR_MYSQL_HOST 等配置参数设置为自己的 MySQL 地址,以下每一项参数都可以在项目的 bootstrap.yml 配置文件或者 nacos 配置数据里找到。
hummer-flyway 如图所示,将各种配置信息拷贝到启动 IDEA 的环境变量中。(原理:因为首次启动项目,hummer-flyway 需要初始化 nacos 的数据,初始化之后 hummer-flyway 项目只要没有更新 flyway sql,就不再需要启动了)
hummer-auth、hummer-gateway、hummer-cloud、hummer-k8s、hummer-system、hummer-monitor 等项目如图所示,将各种配置信息拷贝到启动 IDEA 的环境变量中。
代码运行
IDEA 方式运行
启动顺序
启动 mysql、nacos、redis
启动 hummer-flyway (第一次初始化数据启动一次,后面 flyway 无变化时,跳过此步骤)
启动 hummer-auth、hummer-gateway
启动 xxl-job
启动 hummer-cloud、hummer-k8s、hummer-system、hummer-ui、hummer-monitor(监控,本地开发可以不启动)
先启动本地组件
本地启动 mysql 8.0 (本地如果已经有 mysql 5.7,可以用 docker 启动 mysql 8.0)
本地启动 nacos (sh startup.sh -m standalone)
本地启动 redis
1) 创建项目
新建一个 git 项目 输入主工程 git 地址: git@github.com:HummerRisk/HummerRisk.git。
配置 maven 并引入 pom.xml。
本地采用 jdk 17,打包镜像需要 tool.jar,但是本地开发不需要,所以注释这一段。
在 HummerRisk 目录下,执行 mvn clean install。将 common 等基础包打到项目里。
2) 启动 hummer-flyway 项目
1. 在启动配置中添加 Spring Boot 启动项,直接启动 Spring Boot 项目即可。
2. 后端服务成功运行如下所示。
3) 启动 hummer-auth 项目
在启动配置中添加 Spring Boot 启动项,直接启动 Spring Boot 项目即可。
后端服务成功运行如下所示。
4) 启动 xxl-job
本地启动 xxl-job(定时任务,执行检测用,在启动 hummerrisk 其他微服务之前启动)
新建一个 git 项目 输入主工程 git 地址: git@github.com:HummerRisk/xxl-job.git。
5) 启动其他项目
在启动配置中添加 Spring Boot 启动项,直接启动 Spring Boot 项目即可。
启动 hummer-gateway、hummer-cloud、hummer-k8s、hummer-system、hummer-monitor(监控,本地开发可以不启动)
服务成功运行如下所示。
6) 启动前端
进入 hummer-ui 目录,执行以下命令安装相关前端组件。
进入到 hummer-ui 目录,执行以下命令启动前端服务。
或者使用 yarn 启动
前端服务成功运行如下所示。
本地安装引擎组件
Cloud Custodian 作为云平台检测引擎,详细的相关操作,请参考 在线文档
Prowler 作为 AWS 检测引擎,详细的相关操作,请参考 在线文档
Trivy 作为云原生检测引擎 ,详细的相关操作,请参考 在线文档
1) 准备运行环境
初始化目录:
mkdir -p /opt/hummerrisk/conf
mkdir -p /opt/hummerrisk/image
mkdir -p /opt/hummerrisk/file
mkdir -p /opt/hummerrisk/trivy
mkdir -p /opt/hummerrisk/logs
2) 安装 Custodian
3) 安装 Prowler
4) 安装 Trivy
镜像打包(推荐)
源码中包含 Dockerfile 文件,建议将项目打包成镜像运行,进入 docker 目录,用户可以替换自己的 Dockerfile 研发版本。
其他注意事项
内置示例数据以 flyway 的形式在 HummerRisk 启动时自动插入到了 MySQL 数据库中,在源码运行的情况下可自动初始化获取内置检测规则等数据;
关于 HummerRisk
HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题。核心能力包括混合云的安全治理和 K8S 容器云安全检测。
GitHub 地址:https://github.com/HummerRisk/HummerRisk
Gitee 地址:https://gitee.com/hummercloud/HummerRisk
版权声明: 本文为 InfoQ 作者【HummerCloud】的原创文章。
原文链接:【http://xie.infoq.cn/article/48014daa4c76d98152691c8b6】。文章转载请联系作者。
评论