From 51911bf27237b3b52e3e5b8b1eade6e8c5e11fb6 Mon Sep 17 00:00:00 2001 From: shirenchuang Date: Tue, 1 Jun 2021 20:17:54 +0800 Subject: [PATCH] add distribution --- build.sh | 72 --- distribution/bin/shutdown.cmd | 24 - distribution/bin/shutdown.sh | 20 +- distribution/bin/startup.cmd | 95 ---- distribution/bin/startup.sh | 103 +--- distribution/conf/application.yml | 98 ---- distribution/conf/application.yml.example | 2 +- distribution/pom.xml | 8 + distribution/readme.md | 22 + distribution/release-km.xml | 13 +- distribution/upgrade_config.md | 43 ++ docs/install_guide/create_mysql_table.sql | 591 ---------------------- docs/install_guide/install_guide_cn.md | 51 +- kafka-manager-web/pom.xml | 3 + 14 files changed, 153 insertions(+), 992 deletions(-) delete mode 100644 build.sh delete mode 100755 distribution/bin/shutdown.cmd delete mode 100755 distribution/bin/startup.cmd delete mode 100644 distribution/conf/application.yml create mode 100644 distribution/readme.md create mode 100644 distribution/upgrade_config.md delete mode 100644 docs/install_guide/create_mysql_table.sql diff --git a/build.sh b/build.sh deleted file mode 100644 index b07c6623..00000000 --- a/build.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash -workspace=$(cd $(dirname $0) && pwd -P) -cd $workspace - -## constant -OUTPUT_DIR=./output -KM_VERSION=2.4.2 -APP_NAME=kafka-manager -APP_DIR=${APP_NAME}-${KM_VERSION} - -MYSQL_TABLE_SQL_FILE=./docs/install_guide/create_mysql_table.sql -CONFIG_FILE=./kafka-manager-web/src/main/resources/application.yml - -## function -function build() { - # 编译命令 - mvn -U clean package -Dmaven.test.skip=true - - local sc=$? - if [ $sc -ne 0 ];then - ## 编译失败, 退出码为 非0 - echo "$APP_NAME build error" - exit $sc - else - echo "$APP_NAME build ok" - fi -} - -function make_output() { - # 新建output目录 - rm -rf ${OUTPUT_DIR} &>/dev/null - mkdir -p ${OUTPUT_DIR}/${APP_DIR} &>/dev/null - - # 填充output目录, output内的内容 - ( - cp -rf ${MYSQL_TABLE_SQL_FILE} ${OUTPUT_DIR}/${APP_DIR} && # 拷贝 sql 初始化脚本 至output目录 - cp -rf ${CONFIG_FILE} ${OUTPUT_DIR}/${APP_DIR} && # 拷贝 application.yml 至output目录 - - # 拷贝程序包到output路径 - cp kafka-manager-web/target/kafka-manager-web-${KM_VERSION}-SNAPSHOT.jar ${OUTPUT_DIR}/${APP_DIR}/${APP_NAME}.jar - echo -e "make output ok." - ) || { echo -e "make output error"; exit 2; } # 填充output目录失败后, 退出码为 非0 -} - -function make_package() { - # 压缩output目录 - ( - cd ${OUTPUT_DIR} && tar cvzf ${APP_DIR}.tar.gz ${APP_DIR} - echo -e "make package ok." - ) || { echo -e "make package error"; exit 2; } # 压缩output目录失败后, 退出码为 非0 -} - -########################################## -## main -## 其中, -## 1.进行编译 -## 2.生成部署包output -## 3.生成tar.gz压缩包 -########################################## - -# 1.进行编译 -build - -# 2.生成部署包output -make_output - -# 3.生成tar.gz压缩包 -make_package - -# 编译成功 -echo -e "build done" -exit 0 \ No newline at end of file diff --git a/distribution/bin/shutdown.cmd b/distribution/bin/shutdown.cmd deleted file mode 100755 index e3ae899e..00000000 --- a/distribution/bin/shutdown.cmd +++ /dev/null @@ -1,24 +0,0 @@ -@echo off -rem Copyright 1999-2018 Alibaba Group Holding Ltd. -rem Licensed under the Apache License, Version 2.0 (the "License"); -rem you may not use this file except in compliance with the License. -rem You may obtain a copy of the License at -rem -rem http://www.apache.org/licenses/LICENSE-2.0 -rem -rem Unless required by applicable law or agreed to in writing, software -rem distributed under the License is distributed on an "AS IS" BASIS, -rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -rem See the License for the specific language governing permissions and -rem limitations under the License. -if not exist "%JAVA_HOME%\bin\jps.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! & EXIT /B 1 - -setlocal - -set "PATH=%JAVA_HOME%\bin;%PATH%" - -echo killing nacos server - -for /f "tokens=1" %%i in ('jps -m ^| find "nacos.nacos"') do ( taskkill /F /PID %%i ) - -echo Done! diff --git a/distribution/bin/shutdown.sh b/distribution/bin/shutdown.sh index e3e14fed..fdf2d01c 100644 --- a/distribution/bin/shutdown.sh +++ b/distribution/bin/shutdown.sh @@ -1,28 +1,16 @@ #!/bin/bash -# Copyright 1999-2018 Alibaba Group Holding Ltd. -# 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. cd `dirname $0`/../target target_dir=`pwd` -pid=`ps ax | grep -i 'nacos.nacos' | grep ${target_dir} | grep java | grep -v grep | awk '{print $1}'` +pid=`ps ax | grep -i 'kafka-manager' | grep ${target_dir} | grep java | grep -v grep | awk '{print $1}'` if [ -z "$pid" ] ; then - echo "No nacosServer running." + echo "No kafka-manager running." exit -1; fi -echo "The nacosServer(${pid}) is running..." +echo "The kafka-manager (${pid}) is running..." kill ${pid} -echo "Send shutdown request to nacosServer(${pid}) OK" +echo "Send shutdown request to kafka-manager (${pid}) OK" diff --git a/distribution/bin/startup.cmd b/distribution/bin/startup.cmd deleted file mode 100755 index c9910877..00000000 --- a/distribution/bin/startup.cmd +++ /dev/null @@ -1,95 +0,0 @@ -@echo off -rem Copyright 1999-2018 Alibaba Group Holding Ltd. -rem Licensed under the Apache License, Version 2.0 (the "License"); -rem you may not use this file except in compliance with the License. -rem You may obtain a copy of the License at -rem -rem http://www.apache.org/licenses/LICENSE-2.0 -rem -rem Unless required by applicable law or agreed to in writing, software -rem distributed under the License is distributed on an "AS IS" BASIS, -rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -rem See the License for the specific language governing permissions and -rem limitations under the License. -if not exist "%JAVA_HOME%\bin\java.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! & EXIT /B 1 -set "JAVA=%JAVA_HOME%\bin\java.exe" - -setlocal enabledelayedexpansion - -set BASE_DIR=%~dp0 -rem added double quotation marks to avoid the issue caused by the folder names containing spaces. -rem removed the last 5 chars(which means \bin\) to get the base DIR. -set BASE_DIR="%BASE_DIR:~0,-5%" - -set CUSTOM_SEARCH_LOCATIONS=file:%BASE_DIR%/conf/ - -set MODE="cluster" -set FUNCTION_MODE="all" -set SERVER=nacos-server -set MODE_INDEX=-1 -set FUNCTION_MODE_INDEX=-1 -set SERVER_INDEX=-1 -set EMBEDDED_STORAGE_INDEX=-1 -set EMBEDDED_STORAGE="" - - -set i=0 -for %%a in (%*) do ( - if "%%a" == "-m" ( set /a MODE_INDEX=!i!+1 ) - if "%%a" == "-f" ( set /a FUNCTION_MODE_INDEX=!i!+1 ) - if "%%a" == "-s" ( set /a SERVER_INDEX=!i!+1 ) - if "%%a" == "-p" ( set /a EMBEDDED_STORAGE_INDEX=!i!+1 ) - set /a i+=1 -) - -set i=0 -for %%a in (%*) do ( - if %MODE_INDEX% == !i! ( set MODE="%%a" ) - if %FUNCTION_MODE_INDEX% == !i! ( set FUNCTION_MODE="%%a" ) - if %SERVER_INDEX% == !i! (set SERVER="%%a") - if %EMBEDDED_STORAGE_INDEX% == !i! (set EMBEDDED_STORAGE="%%a") - set /a i+=1 -) - -rem if nacos startup mode is standalone -if %MODE% == "standalone" ( - echo "nacos is starting with standalone" - set "NACOS_OPTS=-Dnacos.standalone=true" - set "NACOS_JVM_OPTS=-Xms512m -Xmx512m -Xmn256m" -) - -rem if nacos startup mode is cluster -if %MODE% == "cluster" ( - echo "nacos is starting with cluster" - if %EMBEDDED_STORAGE% == "embedded" ( - set "NACOS_OPTS=-DembeddedStorage=true" - ) - - set "NACOS_JVM_OPTS=-server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof -XX:-UseLargePages" -) - -rem set nacos's functionMode -if %FUNCTION_MODE% == "config" ( - set "NACOS_OPTS=%NACOS_OPTS% -Dnacos.functionMode=config" -) - -if %FUNCTION_MODE% == "naming" ( - set "NACOS_OPTS=%NACOS_OPTS% -Dnacos.functionMode=naming" -) - -rem set nacos options -set "NACOS_OPTS=%NACOS_OPTS% -Dloader.path=%BASE_DIR%/plugins/health,%BASE_DIR%/plugins/cmdb" -set "NACOS_OPTS=%NACOS_OPTS% -Dnacos.home=%BASE_DIR%" -set "NACOS_OPTS=%NACOS_OPTS% -jar %BASE_DIR%\target\%SERVER%.jar" - -rem set nacos spring config location -set "NACOS_CONFIG_OPTS=--spring.config.additional-location=%CUSTOM_SEARCH_LOCATIONS%" - -rem set nacos log4j file location -set "NACOS_LOG4J_OPTS=--logging.config=%BASE_DIR%/conf/nacos-logback.xml" - - -set COMMAND="%JAVA%" %NACOS_JVM_OPTS% %NACOS_OPTS% %NACOS_CONFIG_OPTS% %NACOS_LOG4J_OPTS% nacos.nacos %* - -rem start nacos command -%COMMAND% diff --git a/distribution/bin/startup.sh b/distribution/bin/startup.sh index f16c5e6c..ead6cde9 100644 --- a/distribution/bin/startup.sh +++ b/distribution/bin/startup.sh @@ -1,34 +1,11 @@ -#!/bin/bash - -# Copyright 1999-2018 Alibaba Group Holding Ltd. -# 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. - -cygwin=false -darwin=false -os400=false -case "`uname`" in -CYGWIN*) cygwin=true;; -Darwin*) darwin=true;; -OS400*) os400=true;; -esac error_exit () { echo "ERROR: $1 !!" exit 1 } + [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java -[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java [ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME if [ -z "$JAVA_HOME" ]; then @@ -51,92 +28,54 @@ if [ -z "$JAVA_HOME" ]; then fi fi -export SERVER="nacos-server" -export MODE="cluster" -export FUNCTION_MODE="all" -export MEMBER_LIST="" -export EMBEDDED_STORAGE="" -while getopts ":m:f:s:c:p:" opt -do - case $opt in - m) - MODE=$OPTARG;; - f) - FUNCTION_MODE=$OPTARG;; - s) - SERVER=$OPTARG;; - c) - MEMBER_LIST=$OPTARG;; - p) - EMBEDDED_STORAGE=$OPTARG;; - ?) - echo "Unknown parameter" - exit 1;; - esac -done + + +export WEB_SERVER="kafka-manager" export JAVA_HOME export JAVA="$JAVA_HOME/bin/java" export BASE_DIR=`cd $(dirname $0)/..; pwd` export CUSTOM_SEARCH_LOCATIONS=file:${BASE_DIR}/conf/ + #=========================================================================================== # JVM Configuration #=========================================================================================== -if [[ "${MODE}" == "standalone" ]]; then - JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m" - JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true" -else - if [[ "${EMBEDDED_STORAGE}" == "embedded" ]]; then - JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true" - fi - JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" - JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof" - JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages" -fi - -if [[ "${FUNCTION_MODE}" == "config" ]]; then - JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=config" -elif [[ "${FUNCTION_MODE}" == "naming" ]]; then - JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=naming" -fi - -JAVA_OPT="${JAVA_OPT} -Dnacos.member.list=${MEMBER_LIST}" +JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" +JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof" +## jdk版本高的情况 有些 参数废弃了 JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p') if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then - JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${BASE_DIR}/logs/nacos_gc.log:time,tags:filecount=10,filesize=102400" + JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${BASE_DIR}/logs/km_gc.log:time,tags:filecount=10,filesize=102400" else JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext" - JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M" + JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/km_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M" + fi -JAVA_OPT="${JAVA_OPT} -Dloader.path=${BASE_DIR}/plugins/health,${BASE_DIR}/plugins/cmdb" -JAVA_OPT="${JAVA_OPT} -Dnacos.home=${BASE_DIR}" -JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/target/${SERVER}.jar" -JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}" +JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/target/${WEB_SERVER}.jar" JAVA_OPT="${JAVA_OPT} --spring.config.additional-location=${CUSTOM_SEARCH_LOCATIONS}" -JAVA_OPT="${JAVA_OPT} --logging.config=${BASE_DIR}/conf/nacos-logback.xml" +JAVA_OPT="${JAVA_OPT} --logging.config=${BASE_DIR}/conf/logback-spring.xml" JAVA_OPT="${JAVA_OPT} --server.max-http-header-size=524288" + + if [ ! -d "${BASE_DIR}/logs" ]; then mkdir ${BASE_DIR}/logs fi echo "$JAVA ${JAVA_OPT}" -if [[ "${MODE}" == "standalone" ]]; then - echo "nacos is starting with standalone" -else - echo "nacos is starting with cluster" -fi - # check the start.out log output file if [ ! -f "${BASE_DIR}/logs/start.out" ]; then touch "${BASE_DIR}/logs/start.out" fi # start -echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 & -nohup $JAVA ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 & -echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out" +echo -e "---- 启动脚本 ------\n $JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 & + + +nohup $JAVA ${JAVA_OPT} >> ${BASE_DIR}/logs/start.out 2>&1 & + +echo "${WEB_SERVER} is starting,you can check the ${BASE_DIR}/logs/start.out" diff --git a/distribution/conf/application.yml b/distribution/conf/application.yml deleted file mode 100644 index 1ca6a22e..00000000 --- a/distribution/conf/application.yml +++ /dev/null @@ -1,98 +0,0 @@ -server: - port: 8081 - tomcat: - accept-count: 1000 - max-connections: 10000 - max-threads: 800 - min-spare-threads: 100 - -spring: - application: - name: kafkamanager - datasource: - kafka-manager: - jdbc-url: jdbc:mysql://localhost:3306/logi_kafka_manager?characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8 - username: root - password: 123456 - driver-class-name: com.mysql.cj.jdbc.Driver - main: - allow-bean-definition-overriding: true - - profiles: - active: dev - servlet: - multipart: - max-file-size: 100MB - max-request-size: 100MB - -logging: - config: classpath:logback-spring.xml - -custom: - idc: cn - jmx: - max-conn: 10 # 2.3版本配置不在这个地方生效 - store-metrics-task: - community: - broker-metrics-enabled: true - topic-metrics-enabled: true - didi: - app-topic-metrics-enabled: false - topic-request-time-metrics-enabled: false - topic-throttled-metrics: false - save-days: 7 - -# 任务相关的开关 -task: - op: - sync-topic-enabled: false # 未落盘的Topic定期同步到DB中 - order-auto-exec: # 工单自动化审批线程的开关 - topic-enabled: false # Topic工单自动化审批开关, false:关闭自动化审批, true:开启 - app-enabled: false # App工单自动化审批开关, false:关闭自动化审批, true:开启 - -account: - ldap: - enabled: false - url: ldap://127.0.0.1:389/ - basedn: dc=tsign,dc=cn - factory: com.sun.jndi.ldap.LdapCtxFactory - filter: sAMAccountName - security: - authentication: simple - principal: cn=admin,dc=tsign,dc=cn - credentials: admin - auth-user-registration: true - auth-user-registration-role: normal - -kcm: - enabled: false - s3: - endpoint: s3.didiyunapi.com - access-key: 1234567890 - secret-key: 0987654321 - bucket: logi-kafka - n9e: - base-url: http://127.0.0.1:8004 - user-token: 12345678 - timeout: 300 - account: root - script-file: kcm_script.sh - -monitor: - enabled: false - n9e: - nid: 2 - user-token: 1234567890 - mon: - base-url: http://127.0.0.1:8032 - sink: - base-url: http://127.0.0.1:8006 - rdb: - base-url: http://127.0.0.1:80 - -notify: - kafka: - cluster-id: 95 - topic-name: didi-kafka-notify - order: - detail-url: http://127.0.0.1 diff --git a/distribution/conf/application.yml.example b/distribution/conf/application.yml.example index 1ca6a22e..12241f5c 100644 --- a/distribution/conf/application.yml.example +++ b/distribution/conf/application.yml.example @@ -1,5 +1,5 @@ server: - port: 8081 + port: 8080 tomcat: accept-count: 1000 max-connections: 10000 diff --git a/distribution/pom.xml b/distribution/pom.xml index 6a0d4f0c..6b61525c 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -16,6 +16,13 @@ distribution pom + + + ${project.groupId} + kafka-manager-web + ${kafka-manager.revision} + + @@ -25,6 +32,7 @@ ${project.groupId} kafka-manager-web + ${kafka-manager.revision} diff --git a/distribution/readme.md b/distribution/readme.md new file mode 100644 index 00000000..9d40efa4 --- /dev/null +++ b/distribution/readme.md @@ -0,0 +1,22 @@ +## 说明 + +### 1.创建mysql数据库文件 +> conf/create_mysql_table.sql + +### 2. 修改配置文件 +> conf/application.yml.example +> 请将application.yml.example 复制一份改名为application.yml; +> 并放在同级目录下(conf/); 并修改成自己的配置 +> 这里的优先级比jar包内配置文件的默认值高; +> + +### 3.启动/关闭kafka-manager +> sh bin/startup.sh 启动 +> +> sh shutdown.sh 关闭 +> + + +### 4.升级jar包 +> 如果是升级, 可以看看文件 `upgrade_config.md` 的配置变更历史; +> \ No newline at end of file diff --git a/distribution/release-km.xml b/distribution/release-km.xml index 1f7eeb55..d1b0db1c 100755 --- a/distribution/release-km.xml +++ b/distribution/release-km.xml @@ -1,7 +1,7 @@ - server-${project.version} + ${project.version} true dir @@ -24,9 +24,18 @@ + + + readme.md + readme.md + + + upgrade_config.md + upgrade_config.md + - ../kafka-manager-web/target/kafka-manager-web-${kafka-manager.revision}.jar + ../kafka-manager-web/target/kafka-manager.jar target/ diff --git a/distribution/upgrade_config.md b/distribution/upgrade_config.md new file mode 100644 index 00000000..65314cfb --- /dev/null +++ b/distribution/upgrade_config.md @@ -0,0 +1,43 @@ + +## 版本升级配置变更 +> 本文件 从 V2.2.0 开始记录; 如果配置有变更则会填写到下文中; 如果没有,则表示无变更; +> 当您从一个很低的版本升级时候,应该依次执行中间有过变更的sql脚本 + + +![kafka-manager-logo](../../assets/images/common/logo_name.png) + +**一站式`Apache Kafka`集群指标监控与运维管控平台** + +--- + +### 1.升级至`V2.2.0`版本 + +#### 1.mysql变更 + +`2.2.0`版本在`cluster`表及`logical_cluster`各增加了一个字段,因此需要执行下面的sql进行字段的增加。 + +```sql +# 往cluster表中增加jmx_properties字段, 这个字段会用于存储jmx相关的认证以及配置信息 +ALTER TABLE `cluster` ADD COLUMN `jmx_properties` TEXT NULL COMMENT 'JMX配置' AFTER `security_properties`; + +# 往logical_cluster中增加identification字段, 同时数据和原先name数据相同, 最后增加一个唯一键. +# 此后, name字段还是表示集群名称, 而identification字段表示的是集群标识, 只能是字母数字及下划线组成, +# 数据上报到监控系统时, 集群这个标识采用的字段就是identification字段, 之前使用的是name字段. +ALTER TABLE `logical_cluster` ADD COLUMN `identification` VARCHAR(192) NOT NULL DEFAULT '' COMMENT '逻辑集群标识' AFTER `name`; + +UPDATE `logical_cluster` SET `identification`=`name` WHERE id>=0; + +ALTER TABLE `logical_cluster` ADD INDEX `uniq_identification` (`identification` ASC); +``` + +### 升级至`2.3.0`版本 + +#### 1.mysql变更 +`2.3.0`版本在`gateway_config`表增加了一个描述说明的字段,因此需要执行下面的sql进行字段的增加。 + +```sql +ALTER TABLE `gateway_config` +ADD COLUMN `description` TEXT NULL COMMENT '描述信息' AFTER `version`; +``` + + diff --git a/docs/install_guide/create_mysql_table.sql b/docs/install_guide/create_mysql_table.sql deleted file mode 100644 index 12910ae1..00000000 --- a/docs/install_guide/create_mysql_table.sql +++ /dev/null @@ -1,591 +0,0 @@ --- create database -CREATE DATABASE logi_kafka_manager; - -USE logi_kafka_manager; - --- --- Table structure for table `account` --- - --- DROP TABLE IF EXISTS `account`; -CREATE TABLE `account` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `username` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户名', - `password` varchar(128) NOT NULL DEFAULT '' COMMENT '密码', - `role` tinyint(8) NOT NULL DEFAULT '0' COMMENT '角色类型, 0:普通用户 1:研发 2:运维', - `status` int(16) NOT NULL DEFAULT '0' COMMENT '0标识使用中,-1标识已废弃', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_username` (`username`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='账号表'; -INSERT INTO account(username, password, role) VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3', 2); - --- --- Table structure for table `app` --- - --- DROP TABLE IF EXISTS `app`; -CREATE TABLE `app` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `app_id` varchar(128) NOT NULL DEFAULT '' COMMENT '应用id', - `name` varchar(192) NOT NULL DEFAULT '' COMMENT '应用名称', - `password` varchar(256) NOT NULL DEFAULT '' COMMENT '应用密码', - `type` int(11) NOT NULL DEFAULT '0' COMMENT '类型, 0:普通用户, 1:超级用户', - `applicant` varchar(64) NOT NULL DEFAULT '' COMMENT '申请人', - `principals` text COMMENT '应用负责人', - `description` text COMMENT '应用描述', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_name` (`name`), - UNIQUE KEY `uniq_app_id` (`app_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='应用信息'; - - --- --- Table structure for table `authority` --- - --- DROP TABLE IF EXISTS `authority`; -CREATE TABLE `authority` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `app_id` varchar(128) NOT NULL DEFAULT '' COMMENT '应用id', - `cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id', - `topic_name` varchar(192) NOT NULL DEFAULT '' COMMENT 'topic名称', - `access` int(11) NOT NULL DEFAULT '0' COMMENT '0:无权限, 1:读, 2:写, 3:读写', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_app_id_cluster_id_topic_name` (`app_id`,`cluster_id`,`topic_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限信息(kafka-manager)'; - --- --- Table structure for table `broker` --- - --- DROP TABLE IF EXISTS `broker`; -CREATE TABLE `broker` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `broker_id` int(16) NOT NULL DEFAULT '-1' COMMENT 'brokerid', - `host` varchar(128) NOT NULL DEFAULT '' COMMENT 'broker主机名', - `port` int(16) NOT NULL DEFAULT '-1' COMMENT 'broker端口', - `timestamp` bigint(20) NOT NULL DEFAULT '-1' COMMENT '启动时间', - `max_avg_bytes_in` bigint(20) NOT NULL DEFAULT '-1' COMMENT '峰值的均值流量', - `version` varchar(128) NOT NULL DEFAULT '' COMMENT 'broker版本', - `status` int(16) NOT NULL DEFAULT '0' COMMENT '状态: 0有效,-1无效', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_cluster_id_broker_id` (`cluster_id`,`broker_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='broker信息表'; - --- --- Table structure for table `broker_metrics` --- - --- DROP TABLE IF EXISTS `broker_metrics`; -CREATE TABLE `broker_metrics` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `broker_id` int(16) NOT NULL DEFAULT '-1' COMMENT 'brokerid', - `metrics` text COMMENT '指标', - `messages_in` double(53,2) NOT NULL DEFAULT '0.00' COMMENT '每秒消息数流入', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`), - KEY `idx_cluster_id_broker_id_gmt_create` (`cluster_id`,`broker_id`,`gmt_create`), - KEY `idx_gmt_create` (`gmt_create`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='broker-metric信息表'; - --- --- Table structure for table `cluster` --- - --- DROP TABLE IF EXISTS `cluster`; -CREATE TABLE `cluster` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '集群id', - `cluster_name` varchar(128) NOT NULL DEFAULT '' COMMENT '集群名称', - `zookeeper` varchar(512) NOT NULL DEFAULT '' COMMENT 'zk地址', - `bootstrap_servers` varchar(512) NOT NULL DEFAULT '' COMMENT 'server地址', - `kafka_version` varchar(32) NOT NULL DEFAULT '' COMMENT 'kafka版本', - `security_properties` text COMMENT 'Kafka安全认证参数', - `jmx_properties` text COMMENT 'JMX配置', - `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT ' 监控标记, 0表示未监控, 1表示监控中', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_cluster_name` (`cluster_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='cluster信息表'; - --- --- Table structure for table `cluster_metrics` --- - --- DROP TABLE IF EXISTS `cluster_metrics`; -CREATE TABLE `cluster_metrics` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id', - `metrics` text COMMENT '指标', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`), - KEY `idx_cluster_id_gmt_create` (`cluster_id`,`gmt_create`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='clustermetrics信息'; - --- --- Table structure for table `cluster_tasks` --- - --- DROP TABLE IF EXISTS `cluster_tasks`; -CREATE TABLE `cluster_tasks` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `uuid` varchar(128) NOT NULL DEFAULT '' COMMENT '任务UUID', - `cluster_id` bigint(128) NOT NULL DEFAULT '-1' COMMENT '集群id', - `task_type` varchar(128) NOT NULL DEFAULT '' COMMENT '任务类型', - `kafka_package` text COMMENT 'kafka包', - `kafka_package_md5` varchar(128) NOT NULL DEFAULT '' COMMENT 'kafka包的md5', - `server_properties` text COMMENT 'kafkaserver配置', - `server_properties_md5` varchar(128) NOT NULL DEFAULT '' COMMENT '配置文件的md5', - `agent_task_id` bigint(128) NOT NULL DEFAULT '-1' COMMENT '任务id', - `agent_rollback_task_id` bigint(128) NOT NULL DEFAULT '-1' COMMENT '回滚任务id', - `host_list` text COMMENT '升级的主机', - `pause_host_list` text COMMENT '暂停点', - `rollback_host_list` text COMMENT '回滚机器列表', - `rollback_pause_host_list` text COMMENT '回滚暂停机器列表', - `operator` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人', - `task_status` int(11) NOT NULL DEFAULT '0' COMMENT '任务状态', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='集群任务(集群升级部署)'; - --- --- Table structure for table `config` --- - --- DROP TABLE IF EXISTS `config`; -CREATE TABLE `config` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `config_key` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '配置key', - `config_value` text COMMENT '配置value', - `config_description` text COMMENT '备注说明', - `status` int(16) NOT NULL DEFAULT '0' COMMENT '0标识使用中,-1标识已废弃', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_config_key` (`config_key`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='配置表'; - --- --- Table structure for table `controller` --- - --- DROP TABLE IF EXISTS `controller`; -CREATE TABLE `controller` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `broker_id` int(16) NOT NULL DEFAULT '-1' COMMENT 'brokerid', - `host` varchar(256) NOT NULL DEFAULT '' COMMENT '主机名', - `timestamp` bigint(20) NOT NULL DEFAULT '-1' COMMENT 'controller变更时间', - `version` int(16) NOT NULL DEFAULT '-1' COMMENT 'controller格式版本', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_cluster_id_broker_id_timestamp` (`cluster_id`,`broker_id`,`timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='controller记录表'; - --- --- Table structure for table `gateway_config` --- - --- DROP TABLE IF EXISTS `gateway_config`; -CREATE TABLE `gateway_config` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `type` varchar(128) NOT NULL DEFAULT '' COMMENT '配置类型', - `name` varchar(128) NOT NULL DEFAULT '' COMMENT '配置名称', - `value` text COMMENT '配置值', - `version` bigint(20) unsigned NOT NULL DEFAULT '1' COMMENT '版本信息', - `description` text COMMENT '描述信息', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_type_name` (`type`,`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='gateway配置'; -INSERT INTO gateway_config(type, name, value, `version`, `description`) values('SD_QUEUE_SIZE', 'SD_QUEUE_SIZE', 100000000, 1, '任意集群队列大小'); -INSERT INTO gateway_config(type, name, value, `version`, `description`) values('SD_APP_RATE', 'SD_APP_RATE', 100000000, 1, '任意一个App限速'); -INSERT INTO gateway_config(type, name, value, `version`, `description`) values('SD_IP_RATE', 'SD_IP_RATE', 100000000, 1, '任意一个IP限速'); -INSERT INTO gateway_config(type, name, value, `version`, `description`) values('SD_SP_RATE', 'app_01234567', 100000000, 1, '指定App限速'); -INSERT INTO gateway_config(type, name, value, `version`, `description`) values('SD_SP_RATE', '192.168.0.1', 100000000, 1, '指定IP限速'); - --- --- Table structure for table `heartbeat` --- - --- DROP TABLE IF EXISTS `heartbeat`; -CREATE TABLE `heartbeat` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `ip` varchar(128) NOT NULL DEFAULT '' COMMENT '主机ip', - `hostname` varchar(256) NOT NULL DEFAULT '' COMMENT '主机名', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_ip` (`ip`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='心跳信息'; - --- --- Table structure for table `kafka_acl` --- - --- DROP TABLE IF EXISTS `kafka_acl`; -CREATE TABLE `kafka_acl` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `app_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户id', - `cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称', - `access` int(11) NOT NULL DEFAULT '0' COMMENT '0:无权限, 1:读, 2:写, 3:读写', - `operation` int(11) NOT NULL DEFAULT '0' COMMENT '0:创建, 1:更新 2:删除, 以最新的一条数据为准', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限信息(kafka-broker)'; - --- --- Table structure for table `kafka_bill` --- - --- DROP TABLE IF EXISTS `kafka_bill`; -CREATE TABLE `kafka_bill` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称', - `principal` varchar(64) NOT NULL DEFAULT '' COMMENT '负责人', - `quota` double(53,2) NOT NULL DEFAULT '0.00' COMMENT '配额, 单位mb/s', - `cost` double(53,2) NOT NULL DEFAULT '0.00' COMMENT '成本, 单位元', - `cost_type` int(16) NOT NULL DEFAULT '0' COMMENT '成本类型, 0:共享集群, 1:独享集群, 2:独立集群', - `gmt_day` varchar(64) NOT NULL DEFAULT '' COMMENT '计价的日期, 例如2019-02-02的计价结果', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_cluster_id_topic_name_gmt_day` (`cluster_id`,`topic_name`,`gmt_day`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='kafka账单'; - --- --- Table structure for table `kafka_file` --- - --- DROP TABLE IF EXISTS `kafka_file`; -CREATE TABLE `kafka_file` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `storage_name` varchar(128) NOT NULL DEFAULT '' COMMENT '存储位置', - `file_name` varchar(128) NOT NULL DEFAULT '' COMMENT '文件名', - `file_md5` varchar(256) NOT NULL DEFAULT '' COMMENT '文件md5', - `file_type` int(16) NOT NULL DEFAULT '-1' COMMENT '0:kafka压缩包, 1:kafkaserver配置', - `description` text COMMENT '备注信息', - `operator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建用户', - `status` int(16) NOT NULL DEFAULT '0' COMMENT '状态, 0:正常, -1:删除', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_cluster_id_file_name_storage_name` (`cluster_id`,`file_name`,`storage_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件管理'; - --- --- Table structure for table `kafka_user` --- - --- DROP TABLE IF EXISTS `kafka_user`; -CREATE TABLE `kafka_user` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `app_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '应用id', - `password` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '密码', - `user_type` int(11) NOT NULL DEFAULT '0' COMMENT '0:普通用户, 1:超级用户', - `operation` int(11) NOT NULL DEFAULT '0' COMMENT '0:创建, 1:更新 2:删除, 以最新一条的记录为准', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='kafka用户表'; -INSERT INTO app(app_id, name, password, type, applicant, principals, description) VALUES ('dkm_admin', 'KM管理员', 'km_kMl4N8as1Kp0CCY', 1, 'admin', 'admin', 'KM管理员应用-谨慎对外提供'); -INSERT INTO kafka_user(app_id, password, user_type, operation) VALUES ('dkm_admin', 'km_kMl4N8as1Kp0CCY', 1, 0); - - --- --- Table structure for table `logical_cluster` --- - -CREATE TABLE `logical_cluster` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `name` varchar(192) NOT NULL DEFAULT '' COMMENT '逻辑集群名称', - `identification` varchar(192) NOT NULL DEFAULT '' COMMENT '逻辑集群标识', - `mode` int(16) NOT NULL DEFAULT '0' COMMENT '逻辑集群类型, 0:共享集群, 1:独享集群, 2:独立集群', - `app_id` varchar(64) NOT NULL DEFAULT '' COMMENT '所属应用', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `region_list` varchar(256) NOT NULL DEFAULT '' COMMENT 'regionid列表', - `description` text COMMENT '备注说明', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_name` (`name`), - UNIQUE KEY `uniq_identification` (`identification`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='逻辑集群信息表'; - - --- --- Table structure for table `monitor_rule` --- - --- DROP TABLE IF EXISTS `monitor_rule`; -CREATE TABLE `monitor_rule` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `name` varchar(192) NOT NULL DEFAULT '' COMMENT '告警名称', - `strategy_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '监控id', - `app_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'appid', - `operator` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='监控规则'; - --- --- Table structure for table `operate_record` --- - --- DROP TABLE IF EXISTS `operate_record`; -CREATE TABLE `operate_record` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `module_id` int(16) NOT NULL DEFAULT '-1' COMMENT '模块类型, 0:topic, 1:应用, 2:配额, 3:权限, 4:集群, -1:未知', - `operate_id` int(16) NOT NULL DEFAULT '-1' COMMENT '操作类型, 0:新增, 1:删除, 2:修改', - `resource` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称、app名称', - `content` text COMMENT '操作内容', - `operator` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - KEY `idx_module_id_operate_id_operator` (`module_id`,`operate_id`,`operator`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='操作记录'; - --- --- Table structure for table `reassign_task` --- - --- DROP TABLE IF EXISTS `reassign_task`; -CREATE TABLE `reassign_task` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `task_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '任务ID', - `name` varchar(256) NOT NULL DEFAULT '' COMMENT '任务名称', - `cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id', - `topic_name` varchar(192) NOT NULL DEFAULT '' COMMENT 'Topic名称', - `partitions` text COMMENT '分区', - `reassignment_json` text COMMENT '任务参数', - `real_throttle` bigint(20) NOT NULL DEFAULT '0' COMMENT '限流值', - `max_throttle` bigint(20) NOT NULL DEFAULT '0' COMMENT '限流上限', - `min_throttle` bigint(20) NOT NULL DEFAULT '0' COMMENT '限流下限', - `begin_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '开始时间', - `operator` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人', - `description` varchar(256) NOT NULL DEFAULT '' COMMENT '备注说明', - `status` int(16) NOT NULL DEFAULT '0' COMMENT '任务状态', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '任务创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '任务修改时间', - `original_retention_time` bigint(20) NOT NULL DEFAULT '86400000' COMMENT 'Topic存储时间', - `reassign_retention_time` bigint(20) NOT NULL DEFAULT '86400000' COMMENT '迁移时的存储时间', - `src_brokers` text COMMENT '源Broker', - `dest_brokers` text COMMENT '目标Broker', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic迁移信息'; - --- --- Table structure for table `region` --- - --- DROP TABLE IF EXISTS `region`; -CREATE TABLE `region` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `name` varchar(192) NOT NULL DEFAULT '' COMMENT 'region名称', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `broker_list` varchar(256) NOT NULL DEFAULT '' COMMENT 'broker列表', - `capacity` bigint(20) NOT NULL DEFAULT '0' COMMENT '容量(B/s)', - `real_used` bigint(20) NOT NULL DEFAULT '0' COMMENT '实际使用量(B/s)', - `estimate_used` bigint(20) NOT NULL DEFAULT '0' COMMENT '预估使用量(B/s)', - `description` text COMMENT '备注说明', - `status` int(16) NOT NULL DEFAULT '0' COMMENT '状态,0正常,1已满', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='region信息表'; - --- --- Table structure for table `topic` --- - --- DROP TABLE IF EXISTS `topic`; -CREATE TABLE `topic` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称', - `app_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'topic所属appid', - `peak_bytes_in` bigint(20) NOT NULL DEFAULT '0' COMMENT '峰值流量', - `description` text COMMENT '备注信息', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_cluster_id_topic_name` (`cluster_id`,`topic_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic信息表'; - --- --- Table structure for table `topic_app_metrics` --- - --- DROP TABLE IF EXISTS `topic_app_metrics`; -CREATE TABLE `topic_app_metrics` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称', - `app_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'appid', - `metrics` text COMMENT '指标', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`), - KEY `idx_cluster_id_topic_name_app_id_gmt_create` (`cluster_id`,`topic_name`,`app_id`,`gmt_create`), - KEY `idx_gmt_create` (`gmt_create`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic app metrics'; - --- --- Table structure for table `topic_connections` --- - --- DROP TABLE IF EXISTS `topic_connections`; -CREATE TABLE `topic_connections` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `app_id` varchar(64) NOT NULL DEFAULT '' COMMENT '应用id', - `cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称', - `type` varchar(16) NOT NULL DEFAULT '' COMMENT 'producer or consumer', - `ip` varchar(32) NOT NULL DEFAULT '' COMMENT 'ip地址', - `client_version` varchar(8) NOT NULL DEFAULT '' COMMENT '客户端版本', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_app_id_cluster_id_topic_name_type_ip_client_version` (`app_id`,`cluster_id`,`topic_name`,`type`,`ip`,`client_version`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic连接信息表'; - --- --- Table structure for table `topic_expired` --- - --- DROP TABLE IF EXISTS `topic_expired`; -CREATE TABLE `topic_expired` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称', - `produce_connection_num` bigint(20) NOT NULL DEFAULT '0' COMMENT '发送连接数', - `fetch_connection_num` bigint(20) NOT NULL DEFAULT '0' COMMENT '消费连接数', - `expired_day` bigint(20) NOT NULL DEFAULT '0' COMMENT '过期天数', - `gmt_retain` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '保留截止时间', - `status` int(16) NOT NULL DEFAULT '0' COMMENT '-1:可下线, 0:过期待通知, 1+:已通知待反馈', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_cluster_id_topic_name` (`cluster_id`,`topic_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic过期信息表'; - --- --- Table structure for table `topic_metrics` --- - --- DROP TABLE IF EXISTS `topic_metrics`; -CREATE TABLE `topic_metrics` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `topic_name` varchar(192) NOT NULL DEFAULT '' COMMENT 'topic名称', - `metrics` text COMMENT '指标数据JSON', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`), - KEY `idx_cluster_id_topic_name_gmt_create` (`cluster_id`,`topic_name`,`gmt_create`), - KEY `idx_gmt_create` (`gmt_create`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topicmetrics表'; - --- --- Table structure for table `topic_report` --- - --- DROP TABLE IF EXISTS `topic_report`; -CREATE TABLE `topic_report` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `cluster_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称', - `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '开始上报时间', - `end_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '结束上报时间', - `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_cluster_id_topic_name` (`cluster_id`,`topic_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='开启jmx采集的topic'; - --- --- Table structure for table `topic_request_time_metrics` --- - --- DROP TABLE IF EXISTS `topic_request_time_metrics`; -CREATE TABLE `topic_request_time_metrics` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称', - `metrics` text COMMENT '指标', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`), - KEY `idx_cluster_id_topic_name_gmt_create` (`cluster_id`,`topic_name`,`gmt_create`), - KEY `idx_gmt_create` (`gmt_create`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic请求耗时信息'; - --- --- Table structure for table `topic_statistics` --- - --- DROP TABLE IF EXISTS `topic_statistics`; -CREATE TABLE `topic_statistics` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic名称', - `offset_sum` bigint(20) NOT NULL DEFAULT '-1' COMMENT 'offset和', - `max_avg_bytes_in` double(53,2) NOT NULL DEFAULT '-1.00' COMMENT '峰值的均值流量', - `gmt_day` varchar(64) NOT NULL DEFAULT '' COMMENT '日期2020-03-30的形式', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `max_avg_messages_in` double(53,2) NOT NULL DEFAULT '-1.00' COMMENT '峰值的均值消息条数', - PRIMARY KEY (`id`), - UNIQUE KEY `uniq_cluster_id_topic_name_gmt_day` (`cluster_id`,`topic_name`,`gmt_day`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic统计信息表'; - --- --- Table structure for table `topic_throttled_metrics` --- - --- DROP TABLE IF EXISTS `topic_throttled_metrics`; -CREATE TABLE `topic_throttled_metrics` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `cluster_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '集群id', - `topic_name` varchar(192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'topic name', - `app_id` varchar(64) NOT NULL DEFAULT '' COMMENT 'app', - `produce_throttled` tinyint(8) NOT NULL DEFAULT '0' COMMENT '是否是生产耗时', - `fetch_throttled` tinyint(8) NOT NULL DEFAULT '0' COMMENT '是否是消费耗时', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`), - KEY `idx_cluster_id_topic_name_app_id` (`cluster_id`,`topic_name`,`app_id`), - KEY `idx_gmt_create` (`gmt_create`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='topic限流信息'; - --- --- Table structure for table `work_order` --- - --- DROP TABLE IF EXISTS `work_order`; -CREATE TABLE `work_order` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `type` int(16) NOT NULL DEFAULT '-1' COMMENT '工单类型', - `title` varchar(512) NOT NULL DEFAULT '' COMMENT '工单标题', - `applicant` varchar(64) NOT NULL DEFAULT '' COMMENT '申请人', - `description` text COMMENT '备注信息', - `approver` varchar(64) NOT NULL DEFAULT '' COMMENT '审批人', - `gmt_handle` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '审批时间', - `opinion` varchar(256) NOT NULL DEFAULT '' COMMENT '审批信息', - `extensions` text COMMENT '扩展信息', - `status` int(16) NOT NULL DEFAULT '0' COMMENT '工单状态, 0:待审批, 1:通过, 2:拒绝, 3:取消', - `gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `gmt_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工单表'; \ No newline at end of file diff --git a/docs/install_guide/install_guide_cn.md b/docs/install_guide/install_guide_cn.md index 9a4a415b..0130bd55 100644 --- a/docs/install_guide/install_guide_cn.md +++ b/docs/install_guide/install_guide_cn.md @@ -31,17 +31,23 @@ **2、源代码进行打包** -下载好代码之后,进入`Logi-KafkaManager`的主目录,执行`sh build.sh`命令即可,执行完成之后会在`output/kafka-manager-xxx`目录下面生成一个jar包。 +下载好代码之后,进入`Logi-KafkaManager`的主目录,执行`mvn -Prelease-kafka-manager -Dmaven.test.skip=true clean install -U `命令即可, +执行完成之后会在`distribution/target`目录下面生成一个`kafka-manager-*.tar.gz`。 +和一个`kafka-manager-*.zip` 文件,随便任意一个压缩包都可以; +当然此时同级目录有一个已经解压好的文件夹; -对于`windows`环境的用户,估计执行不了`sh build.sh`命令,因此可以直接执行`mvn install`,然后在`kafka-manager-web/target`目录下生成一个kafka-manager-web-xxx.jar的包。 -获取到jar包之后,我们继续下面的步骤。 --- -## 3、MySQL-DB初始化 +## 3. 解压安装包 +解压完成后; 在文件目录中可以看到有`kafka-manager/conf/create_mysql_table.sql` 有个mysql初始化文件 +先初始化DB -执行[create_mysql_table.sql](create_mysql_table.sql)中的SQL命令,从而创建所需的MySQL库及表,默认创建的库名是`logi_kafka_manager`。 + +## 4、MySQL-DB初始化 + +执行[create_mysql_table.sql](../../distribution/conf/create_mysql_table.sql)中的SQL命令,从而创建所需的MySQL库及表,默认创建的库名是`logi_kafka_manager`。 ``` # 示例: @@ -50,15 +56,38 @@ mysql -uXXXX -pXXX -h XXX.XXX.XXX.XXX -PXXXX < ./create_mysql_table.sql --- -## 4、启动 +## 5.修该配置 +请将`conf/application.yml.example` 文件复制一份出来命名为`application.yml` 放在同级目录:conf/application.yml ; +并且修改配置; 当然不修改的话 就会用默认的配置; +至少 mysql配置成自己的吧 -``` -# application.yml 是配置文件,最简单的是仅修改MySQL相关的配置即可启动 -nohup java -jar kafka-manager.jar --spring.config.location=./application.yml > /dev/null 2>&1 & -``` +## 6、启动/关闭 +解压包中有启动和关闭脚本 +`kafka-manager/bin/shutdown.sh` +`kafka-manager/bin/startup.sh` -### 5、使用 +执行 sh startup.sh 启动 +执行 sh shutdown.sh 关闭 + + + +### 6、使用 本地启动的话,访问`http://localhost:8080`,输入帐号及密码(默认`admin/admin`)进行登录。更多参考:[kafka-manager 用户使用手册](../user_guide/user_guide_cn.md) +### 7. 升级 + +如果是升级版本,请查看文件 [kafka-manager 升级手册](../../distribution/upgrade_config.md) + 在您下载的启动包(V2.5及其后)中也有记录,在 kafka-manager/upgrade_config.md 中 + + +### 8. 在IDE中启动 +> 如果想参与开发或者想在IDE中启动的话 +> 先执行 `mvn -Dmaven.test.skip=true clean install -U ` +> +> 然后这个时候可以选择去 [pom.xml](../../pom.xml) 中将`kafka-manager-console`模块注释掉; +> 注释是因为每次install的时候都会把前端文件`kafka-manager-console`重新打包进`kafka-manager-web` +> +> 完事之后,只需要直接用IDE启动运行`kafka-manager-web`模块中的 +> com.xiaojukeji.kafka.manager.web.MainApplication main方法就行了 \ No newline at end of file diff --git a/kafka-manager-web/pom.xml b/kafka-manager-web/pom.xml index 17504ca7..b3fd5b91 100644 --- a/kafka-manager-web/pom.xml +++ b/kafka-manager-web/pom.xml @@ -109,8 +109,10 @@ + kafka-manager + org.springframework.boot spring-boot-maven-plugin ${springframework.boot.version} @@ -121,6 +123,7 @@ +