环境信息
openEuler 22.03 LTS X86
jdk:java-11-openjdk-devel
服务器配置
1、关闭SELinux
SELinux(Security-Enhanced Linux)是一个由美国国家安全局(NSA)和其他合作伙伴开发的 Linux 内核安全模块。它提供了一种强制访问控制(MAC)机制,用于增强 Linux 系统的安全性。简单来说,SELinux 通过控制应用程序和系统组件的访问权限,确保系统的安全性,防止恶意软件或攻击者利用系统漏洞进行非法操作。
我们这边直接关闭SELinux
检查是否有关闭
sestatus
这样子就是已经关掉了
关闭方式:
1- 临时关闭
setenforce 0
这将把 SELinux 的状态设置为 Permissive
,即 SELinux 会允许所有操作,但会记录任何违反策略的行为。
2- 永久关闭SELinux
vim /etc/selinux/config
找到 SELINUX=
这一行,将其修改为:
SELINUX=disabled
修改后重启一下服务器即可
reboot
2、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
3、创建 OPS 用户(DataKit运行用户)
groupadd ops
useradd -m -g ops ops
设置ops密码
passwd ops
修改 sudoers 文件给 ops 权限
visudo
在root ALL=(ALL) ALL 下面添加一行
ops ALL=(ALL) ALL
部署DataKit
1、DataKit简介
openGauss官方文档:Data Kit (osinfra.cn)
DataKit使用文档和开发文档:content/zh/docs/ToolandCommandReference/DataKit.md · openGauss/docs - Gitee.com
(1)功能介绍
openGauss的开发运维涉及到很多复杂操作,DataKit提供了一个可视化操作的运维界面,可以帮助用户管理,安装,监控运维自己的openGauss数据库以及对应的物理机资源。
DataKit是一个以资源(物理机,数据库)为底座的开发运维工具,将上层的开发运维工具插件化,各插件之间相互独立,方便用户按需引入。各插件围绕DataKit的资源中心进行扩展开,完成数据库的运维,监控,迁移,开发,建模等复杂的操作。
(2)原理简介
DataKit是基于spring-brick开发的插件化的工具,前台使用vue,后台使用spring-boot技术栈。DataKit基座提供资源管理,安全中心,日志中心等基础的公共能力,具体的数据库安装,运维,监控,数据迁移等能力是基于spring-brick开发的插件工具,可以灵活的在基座上面安装卸载,方便客户按需使用。
(3)特性优势
本项目是基于Web的openGauss的可视化的一体化工具:DataKit,目的是方便客户使用和管理openGauss可视化工具,可以为客户降低openGauss数据库安装使用门槛,做到安全中心管理,插件管理,以及其它功能包括一键化部署、卸载、组件化安装、多版本升级和日常运维。
2、下载Jar包
jar包下载有以下两种方式
通过openGauss官网下载:openGauss软件 | openGauss下载 | openGauss软件包 | openGauss社区
通过opengauss官方gitee仓库下载:openGauss/openGauss-workbench
datakit版本需要和迁移套件有版本依赖关系
本文档采用opengauss官网下载最新版本的安装包:https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.0/tools/Datakit/Datakit-6.0.0.tar.gz
和opengauss官网下载迁移套件:https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.0/tools/openEuler22.03/PortalControl-6.0.0-x86_64.tar.gz
3、上传Jar包到服务器
mkdir -p /opt/soft/datakit && cd /opt/soft/datakit
上传到这个目录
解压
tar -zxvf Datakit-6.0.0.tar.gz
4、创建DataKit工作目录
mkdir -p /ops/server/openGauss-visualtool/logs /ops/server/openGauss-visualtool/config/visualtool-plugin /ops/ssl /ops/files
把Jar包跟插件拷贝到 /ops/server/openGauss-visualtool/
cd /opt/soft/datakit
cp openGauss-datakit-6.0.0.jar /ops/server/openGauss-visualtool/
cd /opt/soft/datakit && cp -r ./visualtool-plugin /ops/server/openGauss-visualtool/
5、修改配置文件 application-temp.yml
cd /opt/soft/datakit
cp application-temp.yml /ops/server/openGauss-visualtool/config
cd /ops/server/openGauss-visualtool/config && vim ./application-temp.yml
修改文件中的数据库ip、port、database、dbuser、dbpassword,test-while-idle配置为false
6、生成SSL文件(需要在root用户下操作)
yum install -y java-11-openjdk
su root
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
ps:
storepass与配置文件application-temp.yml中的key-store-password保持一致
keystore路径与配置文件application-temp.yml中的key-store路径保持一致
7、创建run.sh
cd /ops/server/openGauss-visualtool/ && vim ./run.sh
#!/in/bash
APP_PATH=/ops/server/openGauss-visualtool/
APP_NAME=openGauss-datakit-6.0.0.jar
usage() {
echo "case: sh run.sh [start|stop|restart|status]"
echo "请类似这样执行 ./*.sh start or ./*sh restart"pwd
exit 1
}
# 判断当前服务是否已经启动的函数
is_exist(){
echo "执行 is_exist 方法"
pid=`ps -ef|grep ${APP_PATH}$APP_NAME|grep -v grep|awk '{print $2}' ` #根据ps 命令查询当前服务的进程号 赋值给pid"
if [ -z "${pid}" ]; then #判断pid是否为空
echo "pid 等于null,应用不在运行"
return 1
else
echo "pid 不等于null,${APP_NAME}正在${pid}运行"
return 0
fi
}
start(){
is_exist
if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
echo "${APP_NAME} running. pid=${pid}"
else
nohup java -Xms2048m -Xmx4096m -jar ${APP_PATH}${APP_NAME} --spring.profiles.active=temp --server.port=9494 >/ops/server/openGauss-visualtool/logs/datakit.out 2>&1 &
# nohup java -jar ../lib/$APP_NAME > log.file 2>log.error & # 说明pid为空 执行java -jar 命令启动服务
echo "${APP_PATH}${APP_NAME} started"
fi
}
stop(){
echo "执行 stop 方法"
is_exist
if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
kill -9 $pid
echo "${APP_NAME}:${pid} stopped"
else
echo "${APP_NAME} not running"
fi
}
status(){
echo "执行 status 方法"
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} running. Pid is ${pid}"
else
echo "${APP_NAME} not running"
fi
}
# 重启命令其实就是先执行关闭命令 再执行重启命令
restart(){
stop
start
}
# 这里的$1 取的是当前输入命令 的第二个参数 ./start.sh start
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
chmod 777 ./run.sh
8、启动DataKit
DataKit在root用户下是启动不了的
所以我们需要切换到ops
在切换之前需要先把 /ops 所有人 换成ops
chown -R ops:ops /ops
然后切换到ops
su ops
启动脚本
sudo ./run.sh start
查看日志
tail -f ./logs/datakit.out
9、访问平台
启动成功后,可通过浏览器界面访问datakit平台
登录地址:https://192.168.1.149:9494/,其中192.168.1.149为实际ip
初始用户:admin
初始密码:admin123
首次登录需修改初始密码