mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 03:42:07 +08:00
418 lines
12 KiB
Markdown
418 lines
12 KiB
Markdown
## 2.1、单机部署
|
||
|
||
**风险提示**
|
||
|
||
⚠️ 脚本全自动安装,会将所部署机器上的 MySQL、JDK、ES 等进行删除重装,请注意原有服务丢失风险。
|
||
|
||
### 2.1.1、安装说明
|
||
|
||
- 以 `v3.0.0-beta.1` 版本为例进行部署;
|
||
- 以 CentOS-7 为例,系统基础配置要求 4C-8G;
|
||
- 部署完成后,可通过浏览器:`IP:PORT` 进行访问,默认端口是 `8080`,系统默认账号密码: `admin` / `admin2022_`。
|
||
- `v3.0.0-beta.2`版本开始,默认账号密码为`admin` / `admin`;
|
||
- 本文为单机部署,如需分布式部署,[请联系我们](https://knowstreaming.com/support-center)
|
||
|
||
**软件依赖**
|
||
|
||
| 软件名 | 版本要求 | 默认端口 |
|
||
| ------------- | ------------ | -------- |
|
||
| MySQL | v5.7 或 v8.0 | 3306 |
|
||
| ElasticSearch | v7.6+ | 8060 |
|
||
| JDK | v8+ | - |
|
||
| CentOS | v6+ | - |
|
||
| Ubuntu | v16+ | - |
|
||
|
||
|
||
|
||
### 2.1.2、脚本部署
|
||
|
||
**在线安装**
|
||
|
||
```bash
|
||
# 在服务器中下载安装脚本, 该脚本中会在当前目录下,重新安装MySQL。重装后的mysql密码存放在当前目录的mysql.password文件中。
|
||
wget https://s3-gzpu.didistatic.com/pub/knowstreaming/deploy_KnowStreaming-3.0.0-beta.1.sh
|
||
|
||
# 执行脚本
|
||
sh deploy_KnowStreaming.sh
|
||
|
||
# 访问地址
|
||
127.0.0.1:8080
|
||
```
|
||
|
||
**离线安装**
|
||
|
||
```bash
|
||
# 将安装包下载到本地且传输到目标服务器
|
||
wget https://s3-gzpu.didistatic.com/pub/knowstreaming/KnowStreaming-3.0.0-beta.1-offline.tar.gz
|
||
|
||
# 解压安装包
|
||
tar -zxf KnowStreaming-3.0.0-beta.1-offline.tar.gz
|
||
|
||
# 执行安装脚本
|
||
sh deploy_KnowStreaming-offline.sh
|
||
|
||
# 访问地址
|
||
127.0.0.1:8080
|
||
```
|
||
|
||
|
||
|
||
### 2.1.3、容器部署
|
||
|
||
#### 2.1.3.1、Helm
|
||
|
||
**环境依赖**
|
||
|
||
- Kubernetes >= 1.14 ,Helm >= 2.17.0
|
||
|
||
- 默认依赖全部安装,ElasticSearch(3 节点集群模式) + MySQL(单机) + KnowStreaming-manager + KnowStreaming-ui
|
||
|
||
- 使用已有的 ElasticSearch(7.6.x) 和 MySQL(5.7) 只需调整 values.yaml 部分参数即可
|
||
|
||
**安装命令**
|
||
|
||
```bash
|
||
# 相关镜像在Docker Hub都可以下载
|
||
# 快速安装(NAMESPACE需要更改为已存在的,安装启动需要几分钟初始化请稍等~)
|
||
helm install -n [NAMESPACE] [NAME] http://download.knowstreaming.com/charts/knowstreaming-manager-0.1.5.tgz
|
||
|
||
# 获取KnowStreaming前端ui的service. 默认nodeport方式.
|
||
# (http://nodeIP:nodeport,默认用户名密码:admin/admin2022_)
|
||
# `v3.0.0-beta.2`版本开始(helm chart包版本0.1.4开始),默认账号密码为`admin` / `admin`;
|
||
|
||
# 添加仓库
|
||
helm repo add knowstreaming http://download.knowstreaming.com/charts
|
||
|
||
# 拉取最新版本
|
||
helm pull knowstreaming/knowstreaming-manager
|
||
```
|
||
|
||
|
||
|
||
#### 2.1.3.2、Docker Compose
|
||
**环境依赖**
|
||
|
||
- [Docker](https://docs.docker.com/engine/install/)
|
||
- [Docker Compose](https://docs.docker.com/compose/install/)
|
||
|
||
|
||
**安装命令**
|
||
```bash
|
||
# `v3.0.0-beta.2`版本开始(docker镜像为0.2.0版本开始),默认账号密码为`admin` / `admin`;
|
||
# https://hub.docker.com/u/knowstreaming 在此处寻找最新镜像版本
|
||
# mysql与es可以使用自己搭建的服务,调整对应配置即可
|
||
|
||
# 复制docker-compose.yml到指定位置后执行下方命令即可启动
|
||
docker-compose up -d
|
||
```
|
||
|
||
**验证安装**
|
||
```shell
|
||
docker-compose ps
|
||
# 验证启动 - 状态为 UP 则表示成功
|
||
Name Command State Ports
|
||
----------------------------------------------------------------------------------------------------
|
||
elasticsearch-single /usr/local/bin/docker-entr ... Up 9200/tcp, 9300/tcp
|
||
knowstreaming-init /bin/bash /es_template_cre ... Up
|
||
knowstreaming-manager /bin/sh /ks-start.sh Up 80/tcp
|
||
knowstreaming-mysql /entrypoint.sh mysqld Up (health: starting) 3306/tcp, 33060/tcp
|
||
knowstreaming-ui /docker-entrypoint.sh ngin ... Up 0.0.0.0:80->80/tcp
|
||
|
||
# 稍等一分钟左右 knowstreaming-init 会退出,表示es初始化完成,可以访问页面
|
||
Name Command State Ports
|
||
-------------------------------------------------------------------------------------------
|
||
knowstreaming-init /bin/bash /es_template_cre ... Exit 0
|
||
knowstreaming-mysql /entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp
|
||
```
|
||
|
||
**访问**
|
||
```http request
|
||
http://127.0.0.1:80/
|
||
```
|
||
|
||
|
||
**docker-compose.yml**
|
||
```yml
|
||
version: "2"
|
||
services:
|
||
# *不要调整knowstreaming-manager服务名称,ui中会用到
|
||
knowstreaming-manager:
|
||
image: knowstreaming/knowstreaming-manager:latest
|
||
container_name: knowstreaming-manager
|
||
privileged: true
|
||
restart: always
|
||
depends_on:
|
||
- elasticsearch-single
|
||
- knowstreaming-mysql
|
||
expose:
|
||
- 80
|
||
command:
|
||
- /bin/sh
|
||
- /ks-start.sh
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
# mysql服务地址
|
||
SERVER_MYSQL_ADDRESS: knowstreaming-mysql:3306
|
||
# mysql数据库名
|
||
SERVER_MYSQL_DB: know_streaming
|
||
# mysql用户名
|
||
SERVER_MYSQL_USER: root
|
||
# mysql用户密码
|
||
SERVER_MYSQL_PASSWORD: admin2022_
|
||
# es服务地址
|
||
SERVER_ES_ADDRESS: elasticsearch-single:9200
|
||
# 服务JVM参数
|
||
JAVA_OPTS: -Xmx1g -Xms1g
|
||
# 对于kafka中ADVERTISED_LISTENERS填写的hostname可以通过该方式完成
|
||
# extra_hosts:
|
||
# - "hostname:x.x.x.x"
|
||
# 服务日志路径
|
||
# volumes:
|
||
# - /ks/manage/log:/logs
|
||
knowstreaming-ui:
|
||
image: knowstreaming/knowstreaming-ui:latest
|
||
container_name: knowstreaming-ui
|
||
restart: always
|
||
ports:
|
||
- '80:80'
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
depends_on:
|
||
- knowstreaming-manager
|
||
# extra_hosts:
|
||
# - "hostname:x.x.x.x"
|
||
elasticsearch-single:
|
||
image: docker.io/library/elasticsearch:7.6.2
|
||
container_name: elasticsearch-single
|
||
restart: always
|
||
expose:
|
||
- 9200
|
||
- 9300
|
||
# ports:
|
||
# - '9200:9200'
|
||
# - '9300:9300'
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
# es的JVM参数
|
||
ES_JAVA_OPTS: -Xms512m -Xmx512m
|
||
# 单节点配置,多节点集群参考 https://www.elastic.co/guide/en/elasticsearch/reference/7.6/docker.html#docker-compose-file
|
||
discovery.type: single-node
|
||
# 数据持久化路径
|
||
# volumes:
|
||
# - /ks/es/data:/usr/share/elasticsearch/data
|
||
|
||
# es初始化服务,与manager使用同一镜像
|
||
# 首次启动es需初始化模版和索引,后续会自动创建
|
||
knowstreaming-init:
|
||
image: knowstreaming/knowstreaming-manager:latest
|
||
container_name: knowstreaming-init
|
||
depends_on:
|
||
- elasticsearch-single
|
||
command:
|
||
- /bin/bash
|
||
- /es_template_create.sh
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
# es服务地址
|
||
SERVER_ES_ADDRESS: elasticsearch-single:9200
|
||
|
||
knowstreaming-mysql:
|
||
image: knowstreaming/knowstreaming-mysql:latest
|
||
container_name: knowstreaming-mysql
|
||
restart: always
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
# root 用户密码
|
||
MYSQL_ROOT_PASSWORD: admin2022_
|
||
# 初始化时创建的数据库名称
|
||
MYSQL_DATABASE: know_streaming
|
||
# 通配所有host,可以访问远程
|
||
MYSQL_ROOT_HOST: '%'
|
||
expose:
|
||
- 3306
|
||
# ports:
|
||
# - '3306:3306'
|
||
# 数据持久化路径
|
||
# volumes:
|
||
# - /ks/mysql/data:/data/mysql
|
||
```
|
||
|
||
|
||
|
||
### 2.1.4、手动部署
|
||
|
||
**部署流程**
|
||
|
||
1. 安装 `JDK-11`、`MySQL`、`ElasticSearch` 等依赖服务
|
||
2. 安装 KnowStreaming
|
||
|
||
|
||
|
||
#### 2.1.4.1、安装 MySQL 服务
|
||
|
||
**yum 方式安装**
|
||
|
||
```bash
|
||
# 配置yum源
|
||
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
|
||
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
|
||
|
||
# 执行安装
|
||
yum -y install mysql-server mysql-client
|
||
|
||
# 服务启动
|
||
systemctl start mysqld
|
||
|
||
# 获取初始密码并修改
|
||
old_pass=`grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}' | tail -n 1`
|
||
|
||
mysql -NBe "alter user USER() identified by 'Didi_km_678';" --connect-expired-password -uroot -p$old_pass
|
||
```
|
||
|
||
**rpm 方式安装**
|
||
|
||
```bash
|
||
# 下载安装包
|
||
wget https://s3-gzpu.didistatic.com/knowsearch/mysql5.7.tar.gz
|
||
|
||
# 解压到指定目录
|
||
tar -zxf mysql5.7.tar.gz -C /tmp/
|
||
|
||
# 执行安装
|
||
yum -y localinstall /tmp/libaio-*.rpm /tmp/mysql-*.rpm
|
||
|
||
# 服务启动
|
||
systemctl start mysqld
|
||
|
||
|
||
# 获取初始密码并修改
|
||
old_pass=`grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}' | tail -n 1`
|
||
|
||
mysql -NBe "alter user USER() identified by 'Didi_km_678';" --connect-expired-password -uroot -p$old_pass
|
||
|
||
```
|
||
|
||
|
||
|
||
#### 2.1.4.2、配置 JDK 环境
|
||
|
||
```bash
|
||
# 下载安装包
|
||
wget https://s3-gzpu.didistatic.com/pub/jdk11.tar.gz
|
||
|
||
# 解压到指定目录
|
||
tar -zxf jdk11.tar.gz -C /usr/local/
|
||
|
||
# 更改目录名
|
||
mv /usr/local/jdk-11.0.2 /usr/local/java11
|
||
|
||
# 添加到环境变量
|
||
echo "export JAVA_HOME=/usr/local/java11" >> ~/.bashrc
|
||
echo "export CLASSPATH=/usr/java/java11/lib" >> ~/.bashrc
|
||
echo "export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin" >> ~/.bashrc
|
||
|
||
source ~/.bashrc
|
||
|
||
```
|
||
|
||
|
||
|
||
#### 2.1.4.3、ElasticSearch 实例搭建
|
||
|
||
- ElasticSearch 用于存储平台采集的 Kafka 指标;
|
||
- 以下安装示例为单节点模式,如需集群部署可以参考:[Elasticsearch 官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/7.6/elasticsearch-intro.html)
|
||
|
||
```bash
|
||
# 下载安装包
|
||
wget https://s3-gzpu.didistatic.com/pub/elasticsearch.tar.gz
|
||
|
||
# 创建ES数据存储目录
|
||
mkdir -p /data/es_data
|
||
|
||
# 创建ES所属用户
|
||
useradd arius
|
||
|
||
# 配置用户的打开文件数
|
||
echo "arius soft nofile 655350" >> /etc/security/limits.conf
|
||
echo "arius hard nofile 655350" >> /etc/security/limits.conf
|
||
echo "vm.max_map_count = 655360" >> /etc/sysctl.conf
|
||
sysctl -p
|
||
|
||
# 解压安装包
|
||
tar -zxf elasticsearch.tar.gz -C /data/
|
||
|
||
# 更改目录所属组
|
||
chown -R arius:arius /data/
|
||
|
||
# 修改配置文件(参考以下配置)
|
||
vim /data/elasticsearch/config/elasticsearch.yml
|
||
cluster.name: km_es
|
||
node.name: es-node1
|
||
node.master: true
|
||
node.data: true
|
||
path.data: /data/es_data
|
||
http.port: 8060
|
||
discovery.seed_hosts: ["127.0.0.1:9300"]
|
||
|
||
# 修改内存配置
|
||
vim /data/elasticsearch/config/jvm.options
|
||
-Xms2g
|
||
-Xmx2g
|
||
|
||
# 启动服务
|
||
su - arius
|
||
export JAVA_HOME=/usr/local/java11
|
||
sh /data/elasticsearch/control.sh start
|
||
|
||
# 确认状态
|
||
sh /data/elasticsearch/control.sh status
|
||
```
|
||
|
||
|
||
|
||
#### 2.1.4.4、KnowStreaming 实例搭建
|
||
|
||
```bash
|
||
# 下载安装包
|
||
wget https://s3-gzpu.didistatic.com/pub/knowstreaming/KnowStreaming-3.0.0-beta.1.tar.gz
|
||
|
||
# 解压安装包到指定目录
|
||
tar -zxf KnowStreaming-3.0.0-beta.1.tar.gz -C /data/
|
||
|
||
# 修改启动脚本并加入systemd管理
|
||
cd /data/KnowStreaming/
|
||
|
||
# 创建相应的库和导入初始化数据
|
||
mysql -uroot -pDidi_km_678 -e "create database know_streaming;"
|
||
mysql -uroot -pDidi_km_678 know_streaming < ./init/sql/ddl-ks-km.sql
|
||
mysql -uroot -pDidi_km_678 know_streaming < ./init/sql/ddl-logi-job.sql
|
||
mysql -uroot -pDidi_km_678 know_streaming < ./init/sql/ddl-logi-security.sql
|
||
mysql -uroot -pDidi_km_678 know_streaming < ./init/sql/dml-ks-km.sql
|
||
mysql -uroot -pDidi_km_678 know_streaming < ./init/sql/dml-logi.sql
|
||
|
||
# 创建elasticsearch初始化数据
|
||
sh ./bin/init_es_template.sh
|
||
|
||
# 修改配置文件
|
||
vim ./conf/application.yml
|
||
|
||
# 监听端口
|
||
server:
|
||
port: 8080 # web 服务端口
|
||
tomcat:
|
||
accept-count: 1000
|
||
max-connections: 10000
|
||
|
||
# ES地址
|
||
es.client.address: 127.0.0.1:8060
|
||
|
||
# 数据库配置(一共三处地方,修改正确的mysql地址和数据库名称以及用户名密码)
|
||
jdbc-url: jdbc:mariadb://127.0.0.1:3306/know_streaming?.....
|
||
username: root
|
||
password: Didi_km_678
|
||
|
||
# 启动服务
|
||
cd /data/KnowStreaming/bin/
|
||
sh startup.sh
|
||
```
|