【项目实战经验】基于openEuler22.03搭建openGauss Datakit 5.1.1
前言 目前最新版本 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
注意: 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 登录管理界面 在浏览器中打开如下地址
因为浏览器有安全保护,这里点击【高级】——选择继续前往即可进入登录界面。
平台默认的登录账号密码:admin/admin123,首次登录会提示时重置默认密码。
进入主界面
至此,通过jar包方式已成功部署openGauss Datakit。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
macOS 终端工具 iTerm2 发布重大更新 3.5.0:集成 ChatGPT、让 AI 帮你写命令
iTerm2 是 macOS 上最流行的开源终端工具之一,它源自并基本上取代了早期的“iTerm”应用程序。iTerm2 支持操作系统功能,如窗口透明度、全屏模式、分割窗格、Exposé 标签、Growl 通知和标准键盘快捷键。其他功能包括可定制的配置文件和终端输入 / 输出的即时回放。 近日iTerm2 正式发布 3.5.0 稳定版,开发团队称这是一个重大更新版本,开发了两年多,包含许多改动。 其中值得关注的变化是原生集成了 ChatGPT。用户只需在 iTerm2 中配置好 OpenAI 的 ChatGPT API,就可以用 AI 来写命令、解释命令输出,并引导实现目标。 下载地址 & 发布说明 https://iterm2.com/downloads.html https://iterm2.com/downloads/stable/iTerm2-3_5_0.changelog
- 下一篇
2024 年 5 个 GO REST API 框架
什么是API? API是一个软件解决方案,作为中介,使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值: 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。 API不仅仅是几行代码;这些是为移动开发人员等特定受众创建的。 这些有清晰的文档和版本,以满足用户的期望。 更好的治理和安全性,以及监控以管理性能和可扩展性。 如今,基本每家企业都会使用许多API类型,如支付处理API、开发者服务API、智能识别API、网站运营API等,以丰富企业的服务能力。 也出现了很多以销售API产品为主的企业,如聚合数据、易宝支付、极速数据、悦享数据等,帮助客户解决某一方面的问题。 Go(又称 Golang)是一种流行的编程语言,以其高性能和易于学习的特点而著称。Go 语言尤其擅长构建可扩展且高性能的网络应用程序。其中一个关键领域是构建REST API,这对于在网络中实现不同系统和设备之间的通信至关重要。 如何选择API框架 选择正确的 Golang API 框架是一个重要的决策,可以对项目的成功产生重大影响。以下是关于如何根据您的需求选择正确的API框架的一些提示: 审视项...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6