HummerRisk 入门3:开发手册
本文是 HummerRisk 的开发手册,介绍项目的结构及如何配置 HummerRisk 的开发环境和开发中的注意事项,快速参与到 HummerRisk 项目的开发中来。
一、项目结构
二、配置开发环境
1、环境准备
后端
HummerRisk 后端使用了 Java 语言的 Spring Boot 框架,并使用 Maven 作为项目管理工具。开发者需要先在开发环境中安装 JDK 11 及 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, 选择相应的安装包进行安装即可。
2、初始化配置
数据库初始化
HummerRisk 使用 MySQL 数据库,推荐使用 MySQL 5.7 版本。同时 hummerrisk 对数据库部分配置项有要求,请参考下附的数据库配置,修改开发环境中的数据库配置文件
[mysqld]
default-storage-engine=INNODB
lower_case_table_names=1
table_open_cache=128
max_connections=2000
max_connect_errors=6000
innodb_file_per_table=1
innodb_buffer_pool_size=1G
max_allowed_packet=1G
slave_max_allowed_packet=1G
transaction_isolation=READ-COMMITTED
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800
innodb_flush_log_at_trx_commit=0
sync_binlog=0 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
skip-name-resolve
注意:Windows 系统数据库初始化配置应删除 innodb_flush_method 参数,请参考文章[1]。
请参考文档中的建库语句创建 HummerRisk 使用的数据库,HummerRisk 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。
CREATE DATABASE `hummerrisk` /*!40100 DEFAULT CHARACTER SET utf8mb4 */
配置文件
HummerRisk 会默认加载该路径下的配置文件 /opt/hummerrisk/conf/hummerrisk.properties,请参考下列配置创建对应目录及配置文件,请参考下面配置创建对应目录及配置文件。
提示:请自行将 MYSQL_HOST 配置为自己的 MySQL 地址。
三、代码运行
1、IDEA 方式运行
注意:在 Windows 环境下对配置文件的路径会有所要求,一般可以采用下面配置方案,非 Windows 环境以下方案可跳过。
Windows 下环境配置方案
将配置文件放置到工程源码的所在盘的指定路径下,以 hummerrisk.properties 配置文件举例,如源码工程在 D 盘下,则配置文件存放路径为 d:\opt\hummerrisk\conf\hummerrisk.properties。其他配置文件类似。
配置文件可以随意放置在任意路径下,但需要修改工程源码中配置文件的路径信息。以 hummerrisk.properties 配置文件举例,如该配置文件存放在 D 盘根目录下,则需要按下图修改两个地方的配置路径。
新建项目
新建一个 git 项目 输入主工程 git 地址: git@github.com:HummerRisk/HummerRisk.git
配置 maven
配置 maven 并引入 pom.xml。
启动项目
在启动配置中添加 Spring Boot 启动项,直接启动 Spring Boot 项目即可。
启动后端,两种启动方式:
可以使用 io.hummerrisk.Application 入口方法直接启动
可以使用 maven 插件中的 backend>spring-boot>spring-boot:start 启动
运行后端服务
后端服务成功运行如下所示。
配置前端
进入 hummerrisk/frontend/ 目录,执行以下命令安装相关前端组件。
npm install
进入到 hummerrisk/frontend/ 目录,执行以下命令启动前端服务。
npm run serve
或者使用 yarn 启动
# 项目设置
yarn install# 编译并最小化生产
yarn build# 编译和热重装以进行开发
yarn serve
运行前端服务
前端服务成功运行如下所示。
四、本地安装引擎组件
1、准备运行环境
注意:若需要调试相应的检测功能,需要安装相应的组件引擎
Cloud Custodian 作为云平台检测引擎,详细的相关操作,请参考 Cloud Custodian [2]
Prowler 作为 AWS 检测引擎,详细的相关操作,请参考 Prowler [3]
Nuclei 作为漏洞检测引擎,详细的相关操作,请参考 Nuclei [4]
Xray 作为漏洞检测引擎,详细的相关操作,请参考 Xray [5]
Trivy 作为云原生检测引擎 ,详细的相关操作,请参考 Trivy [6]
配置本地目录和配置文件
下载 installer 工程:
git clone https://github.com/HummerRisk/installer
初始化目录:
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
准备配置文件:
cd installer/hummerrisk/config_init/hummerrisk
cp hummerrisk.properties /opt/hummerrisk/conf/hummerrisk.properties
注意:以下组件引擎的安装可以按需进行,这里仅列举 Custodian 和 Trivy ,其他的请参考对应的链接。
安装 Custodian
$ python3 -m venv custodian
$ source custodian/bin/activate(custodian)
$ pip install c7n(custodian)
$ pip install -e tools/c7n_aliyun(custodian)
$ pip install -e tools/c7n_huawei(custodian)
$ pip install -e tools/c7n_tencent(custodian)
$ pip install -e tools/c7n_baidu……
安装 Trivy
Yum 源方式安装
$ sudo vim /etc/yum.repos.d/trivy.repo
[trivy]name=Trivy
repositorybaseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/$releasever/$basearch/
gpgcheck=0
enabled=1
$ sudo yum -y update
$ sudo yum -y install trivy
rpm 方式安装
rpm -ivh https://github.com/aquasecurity/trivy/releases/download/v0.19.2/trivy_0.19.2_Linux-64bit.rpm
二进制方式安装
mkdir -p $GOPATH/src/github.com/aquasecurity
cd $GOPATH/src/github.com/aquasecurity
git clone --depth 1 --branch v0.19.2 https://github.com/aquasecurity/trivy
cd trivy/cmd/trivy/
export GO111MODULE=on
go install
五、镜像打包
源码中包含 Dockerfile 文件,建议将项目打包成镜像运行,建议 Dockerfile_base 打包用官方版本即可, 用户可以替换自己的 Dockerfile 研发版本。
其他注意事项
内置示例数据以 flyway 的形式在 HummerRisk 启动时自动插入到了 MySQL 数据库中,在源码运行的情况下可自动初始化获取内置检测规则等数据;
参考资料
[1]https://bugs.mysql.com/bug.php?id=40757
[2]https://docs.hummerrisk.com/related/opensource-tool/custodian/
[3]https://docs.hummerrisk.com/related/opensource-tool/prowler/
[4]https://docs.hummerrisk.com/related/opensource-tool/nuclei/
[5]https://docs.hummerrisk.com/related/opensource-tool/xray/
[6]https://docs.hummerrisk.com/related/opensource-tool/trivy/
关于 HummerRisk
HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题。核心能力包括混合云的安全治理和 K8s 容器云安全检测。
GitHub 地址:https://github.com/HummerRisk/HummerRisk
Gitee 地址:https://gitee.com/hummercloud/HummerRisk
HummerRisk 入门3:开发手册相关推荐
- 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
摘要: 本文带大家简单理解阿里巴巴Java开发手册中的规约内容以及P3C项目,可以帮助开发者扫描出所有潜在的代码隐患.在中间也聊了一些对于不同语言设计的理解,如何去看待语言的设计,其实是我们去学习一个 ...
- 吹爆系列:教科书级别的Android音视频入门进阶学习手册,学完我成功“挤进”了抖音音视频开发岗
Android开发工作两年,真的是感觉Android应用层开发没什么前景了,于是打算在网络安全,智能硬件,音视频这几个方向发展,考虑了一段时间,最终决定选择音视频.理由就不说了,既然选择了就要好好深耕 ...
- 重磅首发!Jetpack Compose 完全开发手册,从入门到精通!
前 言 Jetpack 架构组件 及 标准化开发模式 的确立,意味着 Android 开发已步入成熟阶段.现在的Android岗招人的时候也非常看重应试者对 Jetpack 架构组件的理解程度. 今天 ...
- java string 占位符_驳《阿里「Java开发手册」中的1个bug》?
前两天写了一篇关于<阿里Java开发手册中的 1 个bug>的文章,评论区有点炸锅了,基本分为两派,支持老王的和质疑老王的. 首先来说,无论是那一方,我都真诚的感谢你们.特别是「二师兄」, ...
- 太强了!阿里技术团队重磅开放 《Java 开发手册》(附下载地址)!
<阿里巴巴 Java 开发手册>的愿景是码出高效,码出质量.它结合作者的开发经验和架构历程,提炼阿里巴巴集团技术团队的集体编程经验和软件设计智慧,浓缩成为立体的编程规范和最佳实践. 从严格 ...
- BATZ,一份《Android架构开发手册》就够,已offer
前言 今年的面试比往年要难得多,各个互联网企业对于Android岗位的要求越来越多,也越来越高,主要是初级岗位已经趋近饱和,但高级岗位又相对来说缺乏,这类的人才偏少,因此作为Android开发人员,我 ...
- 《码出高效:Java 开发手册》正式发布,83行代码计划启动
可爱的Java开发者们,让你们久等了! 9月22日杭州云栖大会,众所期待的新书<码出高效:Java 开发手册>正式发布,并宣布将所有图书收益捐赠于技术公益项目. 本次新书发布,邀请了来自阿 ...
- 让你久等了!《码出高效:Java 开发手册》正式发布
可爱的Java开发者们,让你们久等了! 9月22日杭州云栖大会,众所期待的新书<码出高效:Java 开发手册>正式发布,并宣布将所有图书收益捐赠于公益项目. 此书从立意到付梓,历时超过两年 ...
- 驳《阿里「Java开发手册」中的1个bug》?
这是我的第 211 期分享 作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 前两天写了一篇关于<阿里Java开发手册中的 1 ...
最新文章
- zstack快速安装文档
- php对提交数据的验证
- Java初级笔记-第五章
- java学习(38):数组排序(直接排序)
- 22岁印度大学生获谷歌天价offer,击败6000人年薪百万
- 2020“家”经济时代开启——中国到家服务行业研究报告
- PHP_小数/四舍五入/上进/下取等
- C++控制台输出中文时乱码的解决方案
- WordPress SEO插件,免费WordPress插件大全
- java网页保存成pdf_将网页转换为PDF
- rendered使用效果
- Java实体类(entity)作用
- 美食杰(个人主页编辑资料)
- SWD脱机下载器的简易实现(一)
- Luma推出分布式路由器,哪里有WIFI死角放哪里
- SqlConnection,SqlDataAdapter,SqlCommand,SqlParameter
- 杭电OJ1001 C
- 我爷爷都看的懂的《栈和队列》,学不会来打我
- 【BeautifulSoup】、【使用BeautifulSoup抓取QZZN论坛中每个帖子的标题、url及对应帖子的回复内容】
- 计算机管理中可移动磁盘无内容,u盘不显示可移动磁盘-电脑插入U盘后不显示可移动磁盘,磁盘管理打不开...