openGauss + Datakit

发布时间:2024年01月05日

1. 简介

1.1 openGauss

opengauss官网

openGauss 是一款全面友好开放,携手伙伴共同打造的企业级开源关系型数据库。openGauss采用木兰宽松许可证v2发行,提供面向多核架构的极致性能、全链路的业务、数据安全、基于AI的调优和高效运维的能力。openGauss深度融合华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。同时,openGauss也是一个开源、免费的数据库平台,鼓励社区贡献、合作。

openGauss是单机系统,支持一主多备,最多支持八个备机。详情请参见openGauss 架构图
在这里插入图片描述模块信息:

  • OM:Operation Manager运维管理模块,提供集群日常运维、配置管理的管理接口、工具。
  • CM:Cluster Manager集群管理模块,管理和监控分布式系统种的各个功能单元和物力资源的运行情况,确保整个系统的稳定运行。
  • GTM:Global Transaction Management,全局事务控制器。负责生成和维护全局事务ID、事务快照、时间戳、sequence信息等全局唯一的信息。
  • CN:Coordinator Node 协调节点, 负责接收来自应用的访问请求,并向客户端返回执行结果,负责分解任务,并调度任务分片在各个DN上并行执行。
  • DN:Data Node 数据节点,负责存储业务数据(支持行存储、列存储、混合存储),执行数据查询任务以及向CN返回执行结果。

1.2 Datakit

Datakit 官网
Datakit 是运行在用户本地机器上的一种基础数据采集工具,主要用于采集系统运行的各种指标、日志等数据,将它们汇总给观测云,在观测云中,用户可以查看并分析自己的各种指标、日志等数据。

DataKit 是观测云中至关重要的一个数据采集组件,几乎所有观测云中的数据都是来源于 DataKit。

DataKit 基础网络模型
DataKit 网络模型主要分为三层,可以简单概括为用户环境、DataWay 以及观测云中心,如下图所示:
在这里插入图片描述DataKit 主要通过定期采集的方式,采集各种不同的指标,然后定时、定量通过 HTTP(s) 将数据发送给 DataWay。每个 DataKit 都会配置对应的 token,用于标识不同的用户

  • DataWay 收到数据后,转发给观测云,在发给观测云的数据中,带有 API 签名
  • 观测云收到合法的数据后,根据不同的数据类型,分别写入不同的存储中

DataKit目的是方便客户使用和管理openGauss可视化工具

2. 环境准备

2.1 支持系统

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

2.2 安装包获取

官网中包括openGaussDatakit的安装包
在这里插入图片描述在这里插入图片描述

可根据不同的系统架构自行选择下载

2.3 注意事项

  • 当前平台运行依赖于openJDK11
  • 平台使用的数据库,当前仅支持openGauss数据库,并且需要提前创建database。
  • 需要将部署服务器IP配置在平台使用的数据库openGauss的白名单列表中。
  • 如果安装企业版,还需要安装python3

2.4 系统环境设置

  • 主机名
hostnamectl set-hostname node-138
  • IP地址解析
echo '192.168.17.138 node-138' >> /etc/hosts
  • 刷新主机名
[root@localhost ~]# su
[root@node-138 ~]# 
  • 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
  • 关闭selinux
setenforce 0

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

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

3. openGauss 安装

如果操作系统是openEuler 20.3LTS,则可以用联网方式安装

yum install opengauss -y

本文使用的操作系统是centos 7.9,所以需要用官网下载的安装包安装

3.1 创建用户和组

openGauss 不支持root操作,所以需要创建普通用户

groupadd dbgroup
useradd -g dbgroup omm
passwd omm
新密码:abcd@123456

3.2 创建工作目录

mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software
chown -R omm /opt/software/openGauss

3.3 关闭HISTORY记录/关闭交换内存

vim /etc/profile
HISTSIZE=0
source /etc/profile

swapoff -a

官网提示关闭HISTORY比较安全,可忽略

3.4 解压安装包

在官网下载极简版的安装包,并上传到服务器

切换到普通用户omm进行解压

su - omm
tar -jxvf openGauss-5.0.1-CentOS-64bit.tar.bz2 -C software/openGauss/
[omm@node-138 opt]$ ll software/openGauss/
total 16
drwxr-xr-x. 2 omm dbgrp 4096 Dec 15 20:31 bin
drwxr-xr-x. 3 omm dbgrp   22 Dec 15 20:31 etc
drwxr-xr-x. 3 omm dbgrp   24 Dec 15 20:31 include
drwxr-xr-x. 4 omm dbgrp   95 Dec 15 20:31 jre
drwxr-xr-x. 5 omm dbgrp 4096 Dec 15 20:31 lib
drwxr-xr-x. 5 omm dbgrp   53 Dec 15 20:31 share
drwxr-xr-x. 2 omm dbgrp   78 Dec 15 20:31 simpleInstall
-rw-r--r--. 1 omm dbgrp   32 Dec 15 20:31 version.cfg

切换回root执行,我们提前设置

执行时,如果出现报错“the maximum number of SEMMNI is not correct, the current SEMMNI is xxx. Please check it.”,请使用有root权限的用户执行如下命令。
bash sysctl -w kernel.sem="250 85000 250 330"

3.5 安装

sh install.sh -w Gauss$123456 && source ~/.bashrc

报错如下:

...
/home/omm/.bashrc: line 16: ulimit: open files: cannot modify limit: Operation not permitted
...

是因为.bashrc中ulimit -n 1000000没有执行权限,所以我们切回root

[root@node-138 simpleInstall]# ulimit -n 100000
[root@node-138 simpleInstall]# ulimit -n
100000
[root@node-138 simpleInstall]# tail -3 /etc/security/limits.conf
*               hard    nofile          100000
*               soft    nofile          100000
# End of file

二次安装

[omm@node-138 simpleInstall]$ sh install.sh -w Gauss$123456
[step 1]: check parameter
[step 2]: check install env and os setting
ERROR: the directory /opt/software/openGauss/data/single_node must be dir and empty
[omm@node-138 simpleInstall]$ rm -rf /opt/software/openGauss/data/single_node/*
[omm@node-138 simpleInstall]$ ll /opt/software/openGauss/data/single_node/
total 0
[omm@node-138 simpleInstall]$ sh install.sh -w Gauss$123456
...
[complete successfully]: You can start or stop the database server using:
    gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node
[omm@node-138 simpleInstall]$ ps ux | grep gaussdb
omm       32191  5.9  9.3 5978380 745656 ?      Ssl  23:52   0:05 /opt/software/openGauss/bin/gaussdb -D /opt/software/openGauss/data/single_node

3.6 启动数据库

gs_ctl start -D /opt/software/openGauss/data/single_node -Z single_node

[omm@node-138 ~]$ gs_ctl status -D /opt/software/openGauss/data/single_node -Z single_node
[2024-01-05 18:25:44.154][6649][][gs_ctl]: gs_ctl status,datadir is /opt/software/openGauss/data/single_node
gs_ctl: server is running (PID: 6079)
/opt/software/openGauss/bin/gaussdb "-D" "/opt/software/openGauss/data/single_node"

执行gs_ctl命令,查看进程是否正常,如果没有找到 gs_ctl

  • 解决方式1:配置环境变量即可 export PATH=/opt/software/openGauss/bin:$PATH,如果缺失lib则配置LD_LIBRARY_PATH
  • 解决方式2:
cd /opt/software/openGauss/bin
ll
 
#先切换到【root】用户,再切换到【omm】用户,再执行如下命令
gs_ctl query -D /opt/software/openGauss/data/single_node【ok】
gs_ctl query -D /opt/software/openGauss/data/single_node -Z single_node【ok】
/opt/software/openGauss/bin/gs_ctl query -D /opt/software/openGauss/data/single_node【ok】
 
#启动
gs_ctl start -D /opt/software/openGauss/data/single_node -Z single_node
 
#停止
gs_ctl stop -D /opt/software/openGauss/data/single_node -Z single_node
 
#重启
gs_ctl restart -D /opt/software/openGauss/data/single_node -Z single_node

3.7 连接数据库

[omm@node-138 simpleInstall]$ gsql -d postgres -p 5432
gsql ((openGauss 5.0.1 build 33b035fd) compiled at 2023-12-15 20:19:06 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

openGauss=#
openGauss=# \l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
 finance   | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 school    | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
 template1 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
(5 rows)

3.8 添加白名单

[omm@node-138 single_node]$ cat pg_hba.conf
...
host    all             all             0.0.0.0/0               md5

参数详解:

  • host:表示这个规则适用于TCP/IP连接。
  • all: 表示这个规则适用于所有数据库和所有用户。
  • 0.0.0.0/0: 是一个CIDR格式的IP地址范围,表示允许任何IP地址的客户端进行连接。
  • md5: 表示使用MD5加密方式对密码进行验证。

3.9 修改数据库参数

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

重启服务

3.10 创建用户

# 初次登录需要修改密码(sql命令)
openGauss=# alter role omm password 'Newm123@';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
ALTER ROLE
# 创建用户(sql命令)
openGauss=# create user opengauss identified by 'Newm123@';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
# 授权(sql命令)
openGauss=# alter user opengauss sysadmin;
ALTER ROLE
# 创建数据库(sql命令)
openGauss=# create database yurqdb;
CREATE DATABASE
openGauss=# \l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
 finance   | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 school    | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
 template1 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
 yurqdb    | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(6 rows)

4. Datakit 安装

4.1 解压Datakit

[root@node-138 opt]# mkdir -p /ops/server/openGauss-visualtool/logs /ops/server/openGauss-visualtool/config /ops/ssl /ops/files
[root@node-138 opt]# tar xf Datakit-5.0.0.tar.gz -C /ops/server/openGauss-visualtool/
[root@node-138 server]# cd /ops/server/openGauss-visualtool/
[root@node-138 openGauss-visualtool]# mkdir visualtool-plugin
[root@node-138 openGauss-visualtool]# mv *.jar visualtool-plugin/
[root@node-138 openGauss-visualtool]# mv visualtool-plugin/visualtool-main.jar .
[root@node-138 openGauss-visualtool]# ll
total 92088
-rw-r--r-- 1 root root      865 Mar 28  2023 application-temp.yml
-rw-r--r-- 1 root root     6746 Mar 28  2023 base-ops-README.md
drwxr-xr-x 2 root root        6 Jan  5 18:54 config
-rw-r--r-- 1 root root     3752 Mar 28  2023 data-migration-README.md
-rw-r--r-- 1 root root    48121 Mar 28  2023 data-studio-readme.md
drwxr-xr-x 2 root root        6 Jan  5 18:54 logs
-rw-r--r-- 1 root root    17164 Mar 28  2023 observability-instance-README.md
-rw-r--r-- 1 root root     8172 Mar 28  2023 observability-log-search-README.md
-rw-r--r-- 1 root root     8629 Mar 28  2023 observability-sql-diagnosis-README.md
-rw-r--r-- 1 root root 94180819 Mar 28  2023 visualtool-main.jar
drwxr-xr-x 2 root root      281 Jan  5 18:55 visualtool-plugin
-rw-r--r-- 1 root root     7245 Mar 28  2023 visualtool-README.md

4.2 修改配置文件

[root@node-138 openGauss-visualtool]# cp application-temp.yml application-temp.yml.bak
[root@node-138 openGauss-visualtool]# cat application-temp.yml
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/server/openGauss-visualtool/logs/
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: org.opengauss.Driver
    url: jdbc:opengauss://192.168.17.138:5432/yurqdb?currentSchema=public
    username: opengauss
    password: Newm123@
    druid:
      test-while-idle: false
      test-on-borrow: true
      validation-query: "select 1"
      validation-query-timeout: 10000
      connection-error-retry-attempts: 0
      break-after-acquire-failure: true
      max-wait: 3000
management:
  server:
    port: 9494

修改spring.datasource.url的ip,port,database、dbuser、dbpassword

4.3 创建密钥文件

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

请提前安装号JDK11

生成ssl文件示例(生成ssl的java必须跟运行DataKit是一个java版本):

keytool -genkey -noprompt \
    -dname "CN=opengauss, OU=opengauss, O=opengauss, L=Shenyang, S=Shenyang, 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路径保持一致

4.4 启动Datakit

切换到omm用户,进入/ops/server/openGauss-visualtool目录,执行启动命令(必须要进入到这个目录启动,否则会报错)

[root@node-138 openGauss-visualtool]# mkdir -p /ops/server/openGauss-visualtool/logs/
[root@node-138 openGauss-visualtool]# touch /ops/server/openGauss-visualtool/logs/visualtool-main.out
[root@node-138 openGauss-visualtool]# chown -R omm /ops/server/openGauss-visualtool/
[root@node-138 openGauss-visualtool]# ll /ops/server/openGauss-visualtool/logs/visualtool-main.out
-rw-r--r-- 1 omm root 0 Jan  5 21:17 /ops/server/openGauss-visualtool/logs/visualtool-main.out
[omm@node-138 ~]$ nohup java -Xms2048m -Xmx4096m -jar /ops/server/openGauss-visualtool/visualtool-main.jar --spring.profiles.active=temp >/ops/server/openGauss-visualtool/logs/visualtool-main.out 2>&1 &

注:第一次启动会显示插件初始化异常,加载完毕后kill掉这个进程然后再重新启动一遍就一切正常了。

5. 界面管理

访问URL https://192.168.17.138:9494就可以来到登录界面了
在这里插入图片描述登录账号:admin 密码:admin123

登录后,具体如何使用,请自行摸索吧!

文章来源:https://blog.csdn.net/u010230019/article/details/135388850
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。