## 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、容器部署 **环境依赖** - 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.3.tgz # 获取KnowStreaming前端ui的service. 默认nodeport方式. # (http://nodeIP:nodeport,默认用户名密码:admin/admin2022_) # `v3.0.0-beta.2`版本开始,默认账号密码为`admin` / `admin`; # 添加仓库 helm repo add knowstreaming http://download.knowstreaming.com/charts # 拉取最新版本 helm pull knowstreaming/knowstreaming-manager ```   ### 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 ```