openGauss + Datakit
- 1. 简介
- 1.1 openGauss
- 1.2 Datakit
- 2. 环境准备
- 2.1 支持系统
- 2.2 安装包获取
- 2.3 注意事项
- 2.4 系统环境设置
- 3. openGauss 安装
- 3.1 创建用户和组
- 3.2 创建工作目录
- 3.3 关闭HISTORY记录/关闭交换内存
- 3.4 解压安装包
- 3.5 安装
- 3.6 启动数据库
- 3.7 连接数据库
- 3.8 添加白名单
- 3.9 修改数据库参数
- 3.10 创建用户
- 4. Datakit 安装
- 4.1 解压Datakit
- 4.2 修改配置文件
- 4.3 创建密钥文件
- 4.4 启动Datakit
- 5. 界面管理
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 安装包获取
官网中包括openGauss
和Datakit
的安装包
可根据不同的系统架构自行选择下载
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
登录后,具体如何使用,请自行摸索吧!