From 71ee8e4731c7ca0e23c813c29f32aac7e75aeff7 Mon Sep 17 00:00:00 2001 From: tomsun28 Date: Thu, 3 Feb 2022 12:23:16 +0800 Subject: [PATCH] =?UTF-8?q?[home,script]=E5=AE=98=E7=BD=91=E6=9B=B4?= =?UTF-8?q?=E6=96=B0,=20=E6=B7=BB=E5=8A=A0SQL=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- home/docs/start/docker-deploy.md | 69 +++++++++++------- home/docs/start/mysql-init.md | 2 +- home/docs/start/package-deploy.md | 50 +++++++------ home/docs/start/quickstart.md | 2 +- home/docusaurus.config.js | 24 ++++--- manager/pom.xml | 1 - manager/src/main/resources/db/data.sql | 71 ------------------- script/application.yml | 59 +++++++++++++++ .../resources/db => script/sql}/schema.sql | 2 +- web-app/README.md | 8 +++ 10 files changed, 153 insertions(+), 135 deletions(-) delete mode 100644 manager/src/main/resources/db/data.sql create mode 100644 script/application.yml rename {manager/src/main/resources/db => script/sql}/schema.sql (99%) diff --git a/home/docs/start/docker-deploy.md b/home/docs/start/docker-deploy.md index 97a7cca..8aa684a 100644 --- a/home/docs/start/docker-deploy.md +++ b/home/docs/start/docker-deploy.md @@ -4,32 +4,53 @@ title: 通过Docker方式安装HertzBeat sidebar_label: Docker方式部署 --- -### 🐕 开始使用 +> 推荐使用docker部署HertzBeat -- 如果您不想部署而是直接使用,我们提供SAAS监控云-[TanCloud探云](https://console.tancloud.cn),即刻[登陆注册](https://console.tancloud.cn)免费使用。 -- 如果您是想将HertzBeat部署到内网环境搭建监控系统,请参考下面的部署文档进行操作。 +1. 下载安装Docker环境 + Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 + 安装完毕后终端查看Docker版本是否正常输出。 + ``` + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` -### 🐵 依赖服务部署 +2. 拉取HertzBeat Docker镜像 + ``` + $ docker pull tancloud/hertzbeat:latest + ``` +3. 配置HertzBeat的配置文件 + 在主机目录下创建application.yml,eg:/opt/application.yml + 配置文件内容参考 项目仓库/script/application.yml,需要替换里面的MYSQL服务和TDengine服务参数,IP端口账户密码(若使用邮件告警,需替换里面的邮件服务器参数) + 具体替换参数如下: + ``` + spring.datasource.url + spring.datasource.username + spring.datasource.password + + warehouse.store.td-engine.url + warehouse.store.td-engine.username + warehouse.store.td-engine.password + + spring.mail.host + spring.mail.port + spring.mail.username + spring.mail.password + + ``` -> HertzBeat最少依赖于 关系型数据库[MYSQL8+](https://www.mysql.com/) 和 时序性数据库[TDengine2+](https://www.taosdata.com/getting-started) - -##### 安装MYSQL -1. docker安装MYSQl -`docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql` -2. 创建名称为hertzBeat的数据库 -3. 执行位于项目仓库script目录下的数据库脚本 schema.sql - -##### 安装TDengine -1. docker安装TDengine -`docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp --name tdengine tdengine/tdengine` -2. 创建名称为hertzBeat的数据库 - -### 🍞 HertzBeat安装 -> HertzBeat支持通过源码安装启动,Docker容器运行和安装包方式安装部署。 - -#### Docker方式快速安装 -`docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat:latest` -#### 通过安装包安装 -todo +5. 启动HertzBeat Docker容器 + ``` + $ docker run -d -p 1157:1157 -v /opt/application.yml:/opt/hertz-beat/config/application.yml --name hertzbeat tancloud/hertzbeat:latest + 526aa188da767ae94b244226a2b2eec2b5f17dd8eff592893d9ec0cd0f3a1ccd + ``` + 这条命令启动一个运行HertzBeat的Docker容器,并且将容器的1157端口映射到宿主机的1157端口上。若宿主机已有进程占用该端口,则需要修改主机映射端口。 + - docker run -d : 通过Docker运行一个容器,使其在后台运行 + - -p 1157:1157 : 映射容器端口到主机端口 + - -v /opt/application.yml:/opt/hertz-beat/config/application.yml : 挂载上一步修改的本地配置文件到容器中,即使用本地配置文件覆盖容器配置文件。我们需要修改此配置文件的MYSQL,TDengine配置信息来连接外部服务。 + - --name hertzbeat : 命名容器名称 hertzbeat + - tancloud/hertzbeat:latest : 使用拉取的HertzBeat官方发布的应用镜像来启动容器 + +6. 开始探索HertzBeat + 浏览器访问 http://ip:1157 开始使用HertzBeat进行监控告警。 **HAVE FUN** diff --git a/home/docs/start/mysql-init.md b/home/docs/start/mysql-init.md index 5254ba8..ee79a76 100644 --- a/home/docs/start/mysql-init.md +++ b/home/docs/start/mysql-init.md @@ -25,6 +25,6 @@ MYSQL是一款值得信赖的关系型数据库,HertzBeat使用其存储监控 ### SQL脚本执行 1. 进入MYSQL或使用客户端连接MYSQL服务 2. 创建名称为hertzbeat的数据库 -3. 执行位于项目仓库script目录下的数据库建表初始化脚本 schema.sql +3. 执行位于项目仓库/script/sql/目录下的数据库建表初始化脚本 schema.sql 4. 查看hertzbeat数据库是否成功建表 diff --git a/home/docs/start/package-deploy.md b/home/docs/start/package-deploy.md index 12cf9af..0c7a501 100644 --- a/home/docs/start/package-deploy.md +++ b/home/docs/start/package-deploy.md @@ -3,33 +3,31 @@ id: package-deploy title: 通过安装包安装HertzBeat sidebar_label: 安装包方式部署 --- +> HertzBeat支持在Linux Windows Mac系统安装运行,CPU支持X64/ARM64。由于安装包自身不包含JAVA运行环境,需您提前准备JAVA运行环境。 -### 🐕 开始使用 +1. 安装JAVA运行环境-可参考[官方网站](http://www.oracle.com/technetwork/java/javase/downloads/index.html) + 要求:JDK8+(已验证JDK8) + 下载JAVA安装包: [镜像站](https://repo.huaweicloud.com/java/jdk/) + 安装后命令行检查是否成功安装 + ``` + $ java -version + openjdk version "1.8.0_312" + OpenJDK Runtime Environment (Zulu 8.58.0.13-CA-macos-aarch64) (build 1.8.0_312-b07) + OpenJDK 64-Bit Server VM (Zulu 8.58.0.13-CA-macos-aarch64) (build 25.312-b07, mixed mode) + ``` +2. 下载HertzBeat安装包 + 下载您系统环境对应的安装包 + - 从[GITEE Release](https://gitee.com/usthe/hertzbeat/releases) 仓库下载 + - 从[GITHUB Release](https://github.com/usthe/hertzbeat/releases) 仓库下载 -- 如果您不想部署而是直接使用,我们提供SAAS监控云-[TanCloud探云](https://console.tancloud.cn),即刻[登陆注册](https://console.tancloud.cn)免费使用。 -- 如果您是想将HertzBeat部署到内网环境搭建监控系统,请参考下面的部署文档进行操作。 - -### 🐵 依赖服务部署 - -> HertzBeat最少依赖于 关系型数据库[MYSQL8+](https://www.mysql.com/) 和 时序性数据库[TDengine2+](https://www.taosdata.com/getting-started) - -##### 安装MYSQL -1. docker安装MYSQl -`docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql` -2. 创建名称为hertzBeat的数据库 -3. 执行位于项目仓库script目录下的数据库脚本 schema.sql - -##### 安装TDengine -1. docker安装TDengine -`docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp --name tdengine tdengine/tdengine` -2. 创建名称为hertzBeat的数据库 - -### 🍞 HertzBeat安装 -> HertzBeat支持通过源码安装启动,Docker容器运行和安装包方式安装部署。 - -#### Docker方式快速安装 -`docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat:latest` -#### 通过安装包安装 -todo +3. 部署启动 + 解压安装包到主机 eg: /opt/hertz-beat + ``` + $ tar zxvf hertz-beat-1.0.tar.gz + ``` + 执行位于安装目录/bin/下的启动脚本 startup.sh + ``` + $ ./startup.sh + ``` **HAVE FUN** diff --git a/home/docs/start/quickstart.md b/home/docs/start/quickstart.md index 8e8ea47..5f1b46e 100644 --- a/home/docs/start/quickstart.md +++ b/home/docs/start/quickstart.md @@ -17,7 +17,7 @@ sidebar_label: 快速开始 1. docker安装MYSQl `docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql` 2. 创建名称为hertzbeat的数据库 -3. 执行位于项目仓库script目录下的数据库脚本 schema.sql +3. 执行位于项目仓库/script/sql/目录下的数据库脚本 schema.sql 详细步骤参考 [依赖服务MYSQL安装初始化](mysql-init.md) diff --git a/home/docusaurus.config.js b/home/docusaurus.config.js index 3660252..2f3acbe 100644 --- a/home/docusaurus.config.js +++ b/home/docusaurus.config.js @@ -148,12 +148,12 @@ module.exports = { title: '产品介绍', items: [ { - label: 'Github', - href: 'https://github.com/dromara/sureness', + label: '使用介绍', + to: 'docs/introduce', }, { - label: 'Gitee', - href: 'https://gitee.com/dromara/sureness', + label: '安装文档', + to: 'docs/start/quickstart', }, { label: 'High Performance', @@ -190,16 +190,20 @@ module.exports = { title: '相关资源', items: [ { - label: 'Tom Blog', - to: 'https://blog.usthe.com', + label: 'Github仓库', + href: 'https://github.com/usthe/hertzbeat', }, { - label: 'USTHE', - href: 'https://github.com/usthe', + label: 'Gitee仓库', + href: 'https://gitee.com/usthe/hertzbeat', }, { - label: 'Tom', - href: 'https://github.com/tomsun28', + label: 'HertzBeat赫兹节拍', + href: 'https://hertzbeat.com', + }, + { + label: 'TanCloud探云', + href: 'https://tancloud.cn', }, ], }, diff --git a/manager/pom.xml b/manager/pom.xml index c18bc26..11f0e9c 100644 --- a/manager/pom.xml +++ b/manager/pom.xml @@ -107,7 +107,6 @@ application.yml sureness.yml banner.txt - db/** define/** diff --git a/manager/src/main/resources/db/data.sql b/manager/src/main/resources/db/data.sql deleted file mode 100644 index 170d7db..0000000 --- a/manager/src/main/resources/db/data.sql +++ /dev/null @@ -1,71 +0,0 @@ -use usthe ; --- ---------------------------- --- Records of auth_resource --- ---------------------------- -insert into auth_resource (id, name, code, uri, type, method, status, description) values (101, 'User get token', 'ACCOUNT_TOKEN', '/auth/token', 'account', 'POST', 9, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (102, 'User register', 'ACCOUNT_REGISTER', '/auth/register', 'account', 'POST', 9, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (103, 'Add resource', 'ADD_RESOURCE', '/resource', 'resource', 'POST', 1, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (104, 'Update resource', 'UPDATE_RESOURCE', '/resource', 'resource', 'PUT', 1, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (105, 'Delete resource', 'DELETE_RESOURCE', '/resource/*', 'resource', 'DELETE', 1, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (106, 'Get resource', 'GET_RESOURCES', '/resource/*/*', 'resource', 'GET', 1, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (107, 'Add role', 'ADD_ROLE', '/role', 'role', 'POST', 1, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (108, 'Update role', 'UPDATE_ROLE', '/role', 'role', 'PUT', 1, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (109, 'Delete role', 'DELETE_ROLE', '/role/*', 'role', 'DELETE', 1, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (110, 'Get role', 'GET_ROLES', '/role/*/*', 'role', 'GET', 1, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (111, 'User get custom token', 'ACCOUNT_CUSTOM_TOKEN', '/auth/custom/token', 'account', 'POST', 9, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (112, 'Static Resource', 'Static Resource', '/**/*.html', 'static', 'GET', 9, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (113, 'Static Resource', 'Static Resource', '/**/*.js', 'static', 'GET', 9, null); -insert into auth_resource (id, name, code, uri, type, method, status, description) values (114, 'Static Resource', 'Static Resource', '/**/*.css', 'static', 'GET', 9, null); - --- ---------------------------- --- Records of auth_role --- ---------------------------- -insert into auth_role (id, name, code, status, description) values (100, 'admin role', 'role_admin', 1, null); -insert into auth_role (id, name, code, status, description) values (102, 'user role', 'role_user', 1, null); -insert into auth_role (id, name, code, status, description) values (103, 'guest role', 'role_guest', 1, null); - --- ---------------------------- --- Records of auth_role_resource_bind --- ---------------------------- --- role_admin has these resource -insert into auth_role_resource_bind (id, role_id, resource_id) values (1, 100, 101); -insert into auth_role_resource_bind (id, role_id, resource_id) values (2, 100, 102); -insert into auth_role_resource_bind (id, role_id, resource_id) values (3, 100, 103); -insert into auth_role_resource_bind (id, role_id, resource_id) values (4, 100, 104); -insert into auth_role_resource_bind (id, role_id, resource_id) values (5, 100, 105); -insert into auth_role_resource_bind (id, role_id, resource_id) values (6, 100, 106); -insert into auth_role_resource_bind (id, role_id, resource_id) values (7, 100, 107); -insert into auth_role_resource_bind (id, role_id, resource_id) values (8, 100, 108); -insert into auth_role_resource_bind (id, role_id, resource_id) values (9, 100, 109); -insert into auth_role_resource_bind (id, role_id, resource_id) values (10, 100, 110); - --- role_user has "get,add,update" related resources, do not have "delete" related resources -insert into auth_role_resource_bind (id, role_id, resource_id) values (11, 102, 103); -insert into auth_role_resource_bind (id, role_id, resource_id) values (12, 102, 104); -insert into auth_role_resource_bind (id, role_id, resource_id) values (13, 102, 106); -insert into auth_role_resource_bind (id, role_id, resource_id) values (14, 102, 107); -insert into auth_role_resource_bind (id, role_id, resource_id) values (15, 102, 108); -insert into auth_role_resource_bind (id, role_id, resource_id) values (16, 102, 110); - --- role_guest has "get" related resources -insert into auth_role_resource_bind (id, role_id, resource_id) values (17, 103, 106); -insert into auth_role_resource_bind (id, role_id, resource_id) values (18, 103, 110); - - --- ---------------------------- --- Records of auth_user --- ---------------------------- -insert into auth_user (id, username, password, salt, avatar, phone, email, sex, status, create_where) values (111, 'admin', 'admin', null, null, null, null, null, 1, 1); -insert into auth_user (id, username, password, salt, avatar, phone, email, sex, status, create_where) values (112, 'user', 'user', null, null, null, null, null, 1, 1); -insert into auth_user (id, username, password, salt, avatar, phone, email, sex, status, create_where) values (113, 'guest', 'guest', null, null, null, null, null, 1, 1); -insert into auth_user (id, username, password, salt, avatar, phone, email, sex, status, create_where) values (114, 'noRole', 'noRole', null, null, null, null, null, 1, 1); - - - --- ---------------------------- --- Records of auth_user_role_bind --- ---------------------------- -insert into auth_user_role_bind (id, user_id, role_id) values (12, 111, 100); -insert into auth_user_role_bind (id, user_id, role_id) values (13, 111, 102); -insert into auth_user_role_bind (id, user_id, role_id) values (14, 112, 102); -insert into auth_user_role_bind (id, user_id, role_id) values (15, 113, 103); \ No newline at end of file diff --git a/script/application.yml b/script/application.yml new file mode 100644 index 0000000..eeef04a --- /dev/null +++ b/script/application.yml @@ -0,0 +1,59 @@ +server: + port: 1157 +spring: + application: + name: ${HOSTNAME:@hertzbeat@}${PID} + profiles: + active: prod + mvc: + static-path-pattern: /console/** + resources: + static-locations: + - classpath:/dist/ + - classpath:../dist/ + jackson: + default-property-inclusion: NON_EMPTY + +sureness: + auths: + - digest + - basic + - jwt + +--- +spring: + config: + activate: + on-profile: prod + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: admin + password: admin + url: jdbc:mysql://localhost:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false + platform: mysql + hikari: + max-lifetime: 120000 + jpa: + database: mysql + + mail: + host: smtp.exmail.qq.com + username: example@qq.com + password: example + port: 465 + default-encoding: UTF-8 + properties: + mail: + smtp: + socketFactoryClass: javax.net.ssl.SSLSocketFactory + ssl: + enable: true + +warehouse: + store: + td-engine: + enabled: true + driver-class-name: com.taosdata.jdbc.rs.RestfulDriver + url: jdbc:TAOS-RS://localhost:6041/hertzbeat + username: root + password: taosdata \ No newline at end of file diff --git a/manager/src/main/resources/db/schema.sql b/script/sql/schema.sql similarity index 99% rename from manager/src/main/resources/db/schema.sql rename to script/sql/schema.sql index a43bcdd..1eae7e5 100644 --- a/manager/src/main/resources/db/schema.sql +++ b/script/sql/schema.sql @@ -12,7 +12,7 @@ CREATE TABLE monitor app varchar(100) not null comment '监控的类型:linux,mysql,jvm...', host varchar(100) not null comment '监控的对端host:ipv4,ipv6,域名', intervals int not null default 600 comment '监控的采集间隔时间,单位秒', - status tinyint not null default 1 comment '监控状态 0:未监控,1:可用,2:不可用,3:不可达,4:挂起', + status tinyint not null default 1 comment '监控状态 0:未监控,1:可用,2:不可用,3:不可达', description varchar(255) comment '描述备注信息', creator varchar(100) comment '创建者', modifier varchar(100) comment '最新修改者', diff --git a/web-app/README.md b/web-app/README.md index bd40f03..97d4fbc 100644 --- a/web-app/README.md +++ b/web-app/README.md @@ -7,4 +7,12 @@ ## 编译打包 +web-app目录下执行 + ```ng build --prod --base-href /console/``` + +manager目录下执行 + +```mvn package``` + +生成的安装包在 manager/target/hertz-beta-1.0.tar.gz