【项目实战经验】基于openEuler22.03搭建openGauss Datakit 5.1.1

举报
Gauss松鼠会小助手2 发表于 2024/04/24 09:25:29 2024/04/24
【摘要】 本文作者:霸王龙的日常目前最新版本 Datakit 5.1和 Datakit 5.0 版本相比有不小的差异,仓库结构已发生变化,之前的文档已不适用。本文将分享整理好的最新版的 Datakit 实践手册,以及个人使用经验,供广大openGauss爱好者参考。1 项目简介本项目是基于Web的openGauss的可视化的一体化工具:DataKit,目的是方便客户使用和管理openGauss可视化工...

本文作者:霸王龙的日常

目前最新版本 Datakit 5.1和 Datakit 5.0 版本相比有不小的差异,仓库结构已发生变化,之前的文档已不适用。本文将分享整理好的最新版的 Datakit 实践手册,以及个人使用经验,供广大openGauss爱好者参考。

1 项目简介


本项目是基于Web的openGauss的可视化的一体化工具:DataKit,目的是方便客户使用和管理openGauss可视化工具,可以为客户降低openGauss数据库安装使用门槛,做到安全中心管理,插件管理,将上层的开发运维工具插件化,各插件之间相互独立,方便用户按需引入。各插件围绕DataKit的资源中心进行扩展,提供一键化部署、卸载、组件化安装、多版本升级和日常运维、监控、迁移、开发、建模等复杂的操作。 


2 环境准备


2.1 注意事项


当前平台运行依赖于openJDK11

平台使用的数据库,当前仅支持openGauss数据库,并且需要提前创建database。

需要将部署服务器IP配置在平台使用的数据库openGauss的白名单列表中。

2.2 支持的服务器系统

openEuler 20.3LTS(x86_x64,ARM)
centos7.x(x86_x64) 

注:
经验证,在openEuler 22.03 LTS可以完美运行。

查看操作系统版本

[root@localhost ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31" 

2.3 环境概要

本文基于openEuler 22.03 LTS操作系统部署Datakit 5.1.1

2.4 文档汇总


openGauss官方文档

https://docs-opengauss.osinfra.cn/zh/docs/5.1.0/docs/ToolandCommandReference/DataKit.html

使用文档及开发文档

https://gitee.com/opengauss/openGauss-workbench/tree/master/openGauss-datakit/doc

2.5 软件包获取

这里我已经将用到的各种离线包整理到datakit-about.zip,在后台发送 datakit 即可获取。

你也可以联网安装或者下载对应的离线包进行安装。

2.5.1 Datakit软件包获取

有以下两种方式
  • 通过openGauss官网下载

    https://opengauss.org/zh/download/

    • 通过opengauss官方gitee仓库下载

    # 仓库地址
    https://gitee.com/opengauss/openGauss-workbench
    # 当前最新版本安装包地址
    https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/tools/Datakit/Datakit-5.1.1.tar.gz
    

    openGauss官方gitee仓库的安装包一般会比openGauss官网的安装包版本高,包含最新功能和基础修复。

    2.5.2 openGauss软件包获取

    从openEuler 22.03 LTS版本开始,操作系统镜像自带openGauss RPM包,可以通过rpm或yum方式安装,支持arm64和x86_64两种架构。
    openEuler22.03 LTS 的镜像地址为:
    https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS

    你可在上述地址中下载对应的RPM包。

    # opengauss安装包
    opengauss-2.1.0-5.oe2203.x86_64.rpm# 依赖包
    java-1.8.0-openjdk-1.8.0.352.b08-3.oe2203.x86_64.rpm
    java-1.8.0-openjdk-devel-1.8.0.352.b08-3.oe2203.x86_64.rpm
    java-1.8.0-openjdk-headless-1.8.0.352.b08-3.oe2203.x86_64.rpm
    

    2.5.3 openJDK11包获取

    # openjdk11安装包
    java-11-openjdk-11.0.20.8-0.oe2203.x86_64.rpm
    java-11-openjdk-devel-11.0.20.8-0.oe2203.x86_64.rpm
    java-11-openjdk-headless-11.0.20.8-0.oe2203.x86_64.rpm# 依赖包
    giflib-5.2.1-4.oe2203.x86_64.rpm
    

    2.6 上传 datakit-about.zip 到服务器

    # 创建安装包存放目录
    [root@localhost ~]# mkdir -p /soft/
    # 上传 datakit-about.zip 到 /soft 并解压
    [root@localhost ~]# cd /soft
    [root@localhost /soft]# unzip datakit-about.zip
    # 解压后的目录结构如下
    ├── datakit
    │   └── Datakit-5.1.1.tar.gz
    ├── opengaussrpm
    │   ├── java-1.8.0-openjdk-1.8.0.352.b08-3.oe2203.x86_64.rpm
    │   ├── java-1.8.0-openjdk-devel-1.8.0.352.b08-3.oe2203.x86_64.rpm
    │   ├── java-1.8.0-openjdk-headless-1.8.0.352.b08-3.oe2203.x86_64.rpm
    │   └── opengauss-2.1.0-5.oe2203.x86_64.rpm
    └── openjdk11
        ├── giflib-5.2.1-4.oe2203.x86_64.rpm
        ├── java-11-openjdk-11.0.20.8-0.oe2203.x86_64.rpm
        ├── java-11-openjdk-devel-11.0.20.8-0.oe2203.x86_64.rpm
        └── java-11-openjdk-headless-11.0.20.8-0.oe2203.x86_64.rpm
    
    3 directories, 9 files
    

    2.7 设置主机名和IP地址解析

    2.7.1 设置主机名

    [root@localhost ~]# hostnamectl set-hostname trex
    

    2.7.2 IP地址解析

    [root@localhost ~]# echo '192.168.7.100 trex' >> /etc/hosts
    

    2.7.3 刷新主机名

    [root@localhost ~]# su
    [root@trex ~]#
    

    可以看到主机名从默认的localhost变成了trex.

    2.8 关闭防火墙

    # 关闭防火墙
    [root@trex ~]# systemctl stop firewalld.service
    # 禁止开机自启
    [root@trex ~]# systemctl disable firewalld.service

    2.9 关闭selinux

    2.9.1 立即关闭

    [root@trex ~]# setenforce 0
    

    注:
    重启操作系统后失效。

    2.9.2 修改配置文件

    编辑/etc/sysconfig/selinux,将SELINUX=enforcing修改为SELINUX=disabled

    sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    

    注:
    需要重启操作系统,永久生效。


    2.10 安装Datakit平台使用的数据库

    如文章前面所说,该平台目前仅支持openGauss

    • 联网方式安装
    yum install opengauss -y
    
    • 离线方式安装

    # cd /soft/datakit-about/opengaussrpm/
    [root@trex opengaussrpm]# rpm -ivh *.rpm
    Verifying...                          ################################# [100%]
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:java-1.8.0-openjdk-headless-1:1.8################################# [ 25%]
       2:java-1.8.0-openjdk-1:1.8.0.352.b0################################# [ 50%]
       3:java-1.8.0-openjdk-devel-1:1.8.0.################################# [ 75%]
       4:opengauss-2.1.0-5.oe2203         ################################# [100%]
    Created symlink /etc/systemd/system/multi-user.target.wants/opengauss.service → /usr/lib/systemd/system/opengauss.service.
    Init openGauss database success.
    Start openGauss database success.
    

    2.11 opengauss数据库管理和配置

    2.11.1 查看启动状态

    # 切换到opengauss用户
    [root@trex ~]# su - opengauss
    # 查看opengauss启动状态
    [opengauss@trex ~]$ gs_ctl status
    # 打印信息如下
    [2023-12-06 11:50:31.604][69114][][gs_ctl]: gs_ctl status,datadir is /var/lib/opengauss/data 
    gs_ctl: server is running (PID: 61978)
    /usr/local/opengauss/bin/gaussdb "-D" "/var/lib/opengauss/data"
    

    显示server is running表示状态正常。

    注:
    openGauss服务管理常用命令如下

    • 启动 gs_ctl start

    • 关闭 gs_ctl stop

    • 重启 gs_ctl restart

    • 状态 gs_ctl status

    2.11.2 设置访问数据库的白名单

    这里设置为允许任何IP地址的客户端通过TCP/IP访问到openGauss数据库

    # 进入openGauss数据目录
    [opengauss@trex ~]$ cd $PGDATA
    # 在修改前先备份,避免异常情况
    [opengauss@trex data]$ cp pg_hba.conf pg_hba.conf.bak
    # 追加配置信息
    [opengauss@trex data]$ echo 'host    all             all             0.0.0.0/0               md5' >> pg_hba.conf
    

    参数详解:

    • host:表示这个规则适用于TCP/IP连接。

    • all:表示这个规则适用于所有数据库和所有用户。

    • 0.0.0.0/0:是一个CIDR格式的IP地址范围,表示允许任何IP地址的客户端进行连接。

    • md5:表示使用MD5加密方式对密码进行验证。

    2.11.3 修改数据库参数

    # 设置监听所有ip
    [opengauss@trex ~]$ sed -i "s/^listen_addresses = .*/listen_addresses = '*'/" postgresql.conf
    # 修改加密算法为0
    [opengauss@trex ~]$ sed -i "s/^#password_encryption_type = .*/password_encryption_type = 0/" postgresql.conf
    # 修改最大连接数为1000
    [opengauss@trex ~]$ sed -i "s/^max_connections = .*/max_connections = 1000/" postgresql.conf
    

    查看是否修改正确

    [opengauss@trex ~]$ grep -E 'listen_addresses|password_encryption_type|max_connections' postgresql.conf

    参数详解:
    listen_addresses = ‘*’ # 监听所有ip
    password_encryption_type = 0 # 加密算法
    max_connections = 1000 # 最大连接数

    2.11.4 重启openGauss服务并查看启动状态

    修改后参数后,需要重启 openGauss 服务方可生效
    [opengauss@trex ~]$ gs_ctl restart > /dev/null 2>&1
    # 查看启动状态
    [opengauss@trex ~]$ gs_ctl status
    

    2.11.5 创建用户

    # 登录数据库(操作系统命令)
    [opengauss@trex ~]$ gsql -d postgres -p 7654 -r
    # 初次登录需要修改密码(sql命令)
    openGauss=# ALTER ROLE opengauss PASSWORD 'Trex@123';
    # 创建用户(sql命令)
    openGauss=# CREATE USER trex IDENTIFIED BY 'Trex@123';
    # 授权(sql命令)
    openGauss=# ALTER USER trex SYSADMIN;
    # 创建数据库(sql命令)
    openGauss=# create database trexdb;
    # 退出sql(sql命令)
    openGauss=# \q

    2.12 安装openJDK11

    root用户执行

    • 联网方式安装

    [root@trex ~]# yum install -y java-11-openjdk
    
    • 离线方式安装

    [root@trex ~]# cd /soft/datakit-about/openjdk11/
    [root@trex openjdk]# rpm -ivh *.rpm

    细心的读者应该会发现,前面在使用 rpm 或 yum 命令安装 opengauss 时,安装了依赖包 openJDK8,而 Datakit 平台依赖 openJDK11,系统中当前存在两个版本的 JDK,不会冲突吧?

    咱们通过命令查一下

    [root@trex openjdk]# rpm -qa | grep openjdk
    

    结果如下图

    果然存在两个版本的 JDK,会冲突吗?

    答案是:两个版本的 openJDK 是可以共存的。后面会提到,这里不再赘述。

    3 安装部署 Datakit

    root用户执行

    3.1 Datakit 有两种部署方式:

    • jar 包方式部署

    • docker 方式部署

    下面先以 jar 包方式安装进行演示

    3.2 创建 datakit 工作目录

    [root@trex ~]# mkdir -p /ops/{logs,config,ssl,files}
    

    3.3 将 Datakit 安装包移动到 /ops 目录

    [root@trex ~]# cd /soft/datakit-about/datakit/
    [root@trex datakit]# mv Datakit-5.1.1.tar.gz /ops/
    

    3.4 解压安装包

    [root@trex datakit]# cd /ops
    [root@trex datakit]# tar -xf Datakit-5.1.1.tar.gz
    

    执行ls命令可以看到如下信息

    [root@trex ops]# ls
    application-temp.yml  Datakit-5.1.1.tar.gz  files  openGauss-datakit-5.1.1.jar  visualtool-plugin
    config                doc                   logs   ssl
    

    3.5 修改配置文件

    3.5.1 将配置文件移动到 /ops/config 目录下

    [root@trex ops]# mv /ops/application-temp.yml /ops/config/
    

    3.5.2 编辑配置文件

    [root@trex ops]# vi /ops/config/application-temp.yml
    

    修改application-temp.yml文件中的数据链接信息ip、port、database、dbuser、dbpassword
    按照你的实际环境进行修改,这里修改后的文件内容如下

    system:
      # File storage path
      defaultStoragePath: /ops/files
      # Whitelist control switch
      whitelist:
        enabled: false
    server:
      port: 9494
      ssl:
        key-store: /ops/ssl/keystore.p12
        key-store-password: 123456
        key-store-type: PKCS12
        enabled: true
      servlet:
        context-path: /
    logging:
      file:
        path: /ops/logs/
    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: org.opengauss.Driver
        url: jdbc:opengauss://192.168.7.100:7654/trexdb?currentSchema=public&batchMode=off
        username: trex
        password: Trex@123
        druid:
          test-while-idle: true
          test-on-borrow: true
          validation-query: "select 1"
          validation-query-timeout: 10000
          connection-error-retry-attempts: 0
          break-after-acquire-failure: true
          max-wait: 6000
          keep-alive: true
          max-active: 30
          min-evictable-idle-time-millis: 600000
    management:
      server:
        port: 9494
    

    3.6 创建密钥文件

    这里使用keytool工具生成密钥,需要注意的是keytool -genkey命令用于创建SSL文件(包括密钥对和证书),并且它与 JDK (Java Development Kit)是有关系的。keytool 是JDK提供的一个工具,用于管理密钥库和证书,用于加密和身份验证等安全通信。而我们前面提到该平台依赖JDK11环境,所以这里使用JDK11来创建密钥文件。

    3.6.1 切换到 openJDK11 环境,并查看 JDK 版本

    # 查看当前jdk版本[root@trex config]# java -version# 切换版本到jdk11
    [root@trex config]# alternatives --config java# 再次查看当前jdk版本
    [root@trex config]# java -version# 执行结果如下

    3.6.2 创建密钥文件

    keytool -genkey -noprompt \
        -dname "CN=opengauss, OU=opengauss, O=opengauss, L=Beijing, S=Beijing, C=CN"\
        -alias opengauss\
        -storetype PKCS12 \
        -keyalg RSA \
        -keysize 2048 \
        -keystore /ops/ssl/keystore.p12 \
        -validity 3650 \
        -storepass 123456
    

    执行完成后,会在/ops/ssl/下生成密钥文件keystore.p12

    注意:
    storepass与配置文件application-temp.yml中的key-store-password保持一致
    keystore路径与配置文件application-temp.yml中的key-store路径保持一致

    3.7 执行启动命令

    # 进入 /ops 目录
    cd /ops
    # 启动程序
    nohup java -Xms2048m -Xmx4096m -jar openGauss-datakit-5.1.1.jar --spring.profiles.active=temp >datakit.out 2>&1 &
    

    注:
    可以通过tail -20f datakit.out查看运行日志

    4 Datakit的使用

    4.1 登录管理界面

    在浏览器中打开如下地址
    https://192.168.7.100:9494

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。