环境 | 版本 |
---|---|
Java | Oracle JDK 8 至 14 |
MySQL | MySQL-5.6及以上 |
Python | Python3.6及以上 |
PyMySQL |
推荐使用CentOS 7.2+, Ubuntu 16.04及以上版本, 一键部署脚本将自动安装openssl, curl, wget, git, nginx, dos2unix
相关依赖项。
其余系统可能导致安装依赖失败,可自行安装openssl, curl, wget, git, nginx, dos2unix
依赖项后重试
推荐JDK8-JDK13版本:
java -version
注意:不要用sudo
执行安装脚本
附录
MySQL-5.6或以上版本:
mysql --version
附录
使用Python3.6或以上版本:
python --version
# python3时
python3 --version
如已安装python3,也可通过python3 --version
查看,在运行脚本时,使用python3
命令即可
附录
Python3.6及以上版本,需安装PyMySQL
依赖包
sudo yum -y install python36-pip
sudo pip3 install PyMySQL
CentOS不支持pip命令的话,可以使用以下方式:
git clone https://github.com/PyMySQL/PyMySQL
cd PyMySQL/
python3 setup.py install
如已安装PyMySQL,也可通过pip3 list | grep PyMySQ
查看
网络策略检查:
webPort
(默认为5000)在服务器的网络安全组中是否设置为开放。如,云服务厂商如腾讯云,查看安全组设置,为webase-web开放5000端口。若端口未开放,将导致浏览器无法访问WeBASE服务页面frontPort
(默认5002);由于节点前置直连节点,不建议对公网开放节点前置端口,建议按需开放获取部署安装包:
cd ~/fisco && wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.4/webase-deploy.zip
解压安装包:
unzip webase-deploy.zip
进入目录:
cd webase-deploy
① mysql数据库需提前安装,已安装直接配置即可,还未安装请参看附录
;
② 修改配置文件(vi common.properties
);
③ 一键部署支持使用已有链或者搭建新链。通过参数”if.exist.fisco”配置是否使用已有链,以下配置二选一即可:
fisco.dir
。路径下要存在sdk目录,sdk目录中包含ca.crt, sdk.crt, sdk.key及gm目录,gm目录中包含国密SSL所需证书,包含gmca.crt、gmsdk.crt、gmsdk.key、gmensdk.crt和gmensdk.key④ 服务端口不能小于1024
⑤ 部署时,修改 common.properties
配置文件
修改第74行参数if.exist.fisco为yes,同时修改86行链节点工作目录fisco.dir;
# 是否使用已有的链(yes/no)
if.exist.fisco=yes
# 路径下要存在sdk目录(sdk目录中包含了SSL所需的证书,即ca.crt、sdk.crt、sdk.key和gm目录(包含国密SSL证书,gmca.crt、gmsdk.crt、gmsdk.key、gmensdk.crt和gmensdk.key)
fisco.dir=/root/fisco/nodes/127.0.0.1
修改Mysql数据库连接信息,第25-36行中mysql和sign相关用户名、密码和数据库名;
默认mysql数据库root用户对应密码为ibwedu123;
# 节点管理子系统mysql数据库配置
mysql.ip=localhost
mysql.port=3306
mysql.user=root
mysql.password=123456
mysql.database=webasenodemanager
# 签名服务子系统mysql数据库配置sign.mysql.ip=localhost
sign.mysql.port=3306
sign.mysql.user=root
sign.mysql.password=123456
sign.mysql.database=webasesign
备注:
sudo python3 deploy.py installAll
(sudo会导致无法获取当前用户的环境变量如JAVA_HOME)# 部署并启动所有服务
python3 deploy.py installAll
部署完成后可以看到deploy has completed
的日志:
...
============================================================
_ _ ______ ___ _____ _____
| | | | | ___ \/ _ \/ ___| ___|
| | | | ___| |_/ / /_\ \ `--.| |__
| |/\| |/ _ | ___ | _ |`--. | __|
\ /\ | __| |_/ | | | /\__/ | |___
\/ \/ \___\____/\_| |_\____/\____/
...
...
============================================================
============== deploy has completed ==============
============================================================
============== webase-web version v1.5.4 ========
============== webase-node-mgr version v1.5.4 ========
============== webase-sign version v1.5.3 ========
============== webase-front version v1.5.4 ========
============================================================
# 一键部署
部署并启动所有服务 python3 deploy.py installAll
停止一键部署的所有服务 python3 deploy.py stopAll
启动一键部署的所有服务 python3 deploy.py startAll
# 各子服务启停
启动FISCO-BCOS节点: python3 deploy.py startNode
停止FISCO-BCOS节点: python3 deploy.py stopNode
启动WeBASE-Web: python3 deploy.py startWeb
停止WeBASE-Web: python3 deploy.py stopWeb
启动WeBASE-Node-Manager: python3 deploy.py startManager
停止WeBASE-Node-Manager: python3 deploy.py stopManager
启动WeBASE-Sign: python3 deploy.py startSign
停止WeBASE-Sign: python3 deploy.py stopSign
启动WeBASE-Front: python3 deploy.py startFront
停止WeBASE-Front: python3 deploy.py stopFront
# 可视化部署
部署并启动可视化部署的所有服务 python3 deploy.py installWeBASE
停止可视化部署的所有服务 python3 deploy.py stopWeBASE
启动可视化部署的所有服务 python3 deploy.py startWeBASE
成功部署后,可以根据以下步骤确认各个子服务是否启动成功
通过ps
命令,检查各子系统的进程是否存在
nodeXX
,节点前置进程webase.front
,节点管理服务进程webase.node.mgr
,节点管理平台webase-web
的nginx
进程,以及签名服务进程webase.sign
检查方法如下,若无输出,则代表进程未启动,需要到该子系统的日志中检查日志错误信息,并根据错误提示或本文档的常见问题进行排查
ps -ef | grep node
输出如下
root 12445 1 0 18:25 pts/0 00:00:22 /root/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
root 12447 1 0 18:25 pts/0 00:00:22 /root/fisco/nodes/127.0.0.1/node2/../fisco-bcos -c config.ini
root 12449 1 0 18:25 pts/0 00:00:22 /root/fisco/nodes/127.0.0.1/node3/../fisco-bcos -c config.ini
root 12451 1 0 18:25 pts/0 00:00:22 /root/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
ps -ef | grep webase.front
输出如下
root 14372 1 12 19:02 pts/1 00:00:22 /software/jdk/bin/java -Djdk.tls.namedGroups=secp256k1 ... conf/:apps/*:lib/* com.webank.webase.front.Application
ps -ef | grep webase.node.mgr
输出如下
root 14517 1 7 19:03 pts/1 00:00:15 /software/jdk/bin/java -Djdk.tls.namedGroups=secp256k1 ... conf/:apps/*:lib/* com.webank.webase.node.mgr.Application
ps -ef | grep nginx
输出如下
root 14587 1 0 19:03 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /root/fisco/webase-deploy/comm/nginx.conf
ps -ef | grep webase.sign
输出如下
root 14278 1 2 19:02 pts/1 00:00:11 /software/jdk/bin/java ... conf/:apps/*:lib/* com.webank.webase.sign.Application
通过netstat
命令,检查各子系统进程的端口监听情况。
检查方法如下,若无输出,则代表进程端口监听异常,需要到该子系统的日志中检查日志错误信息,并根据错误提示或本文档的常见问题进行排查
netstat -anlp | grep 20200
输出如下
tcp 0 0 0.0.0.0:20200 0.0.0.0:* LISTEN 12451/fisco-bcos
netstat -anlp | grep 5002
输出如下
tcp6 0 0 :::5002 :::* LISTEN 14372/java
netstat -anlp | grep 5001
输出如下
tcp6 0 0 :::5001 :::* LISTEN 14517/java
netstat -anlp | grep 5000
输出如下
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 14587/nginx: master
netstat -anlp | grep 5004
输出如下
tcp6 0 0 :::5004 :::* LISTEN 14278/java
|-- webase-deploy # 一键部署目录
|--|-- log # 部署日志目录
|--|-- webase-web # 管理平台目录
|--|--|-- log # 管理平台日志目录
|--|-- webase-node-mgr # 节点管理服务目录
|--|--|-- log # 节点管理服务日志目录
|--|-- webase-sign # 签名服务目录
|--|--|-- log # 签名服务日志目录
|--|-- webase-front # 节点前置服务目录
|--|--|-- log # 节点前置服务日志目录
|--|-- nodes # 一件部署搭链节点目录
|--|--|-- 127.0.0.1
|--|--|--|-- node0 # 具体节点目录
|--|--|--|--|-- log # 节点日志目录
备注:当前节点日志路径为一键部署搭链的路径,使用已有链请在相关路径查看日志
日志目录中包含{XXX}.log
全量日志文件和{XXX}-error.log
错误日志文件
.log
全量日志和-error.log
错误日志两种日志信息进行排查。,如查询WeBASE-Front日志,则打开WeBASE-Front-error.log
可以快速找到错误信息,根据错误查看WeBASE-Front.log
的相关内容,可以看到错误日志前后的普通日志信息访问WeBASE
日志路径
进入异常子服务的日志目录,检查该服务的日志deployLog
,节点前置日志frontLog
, 节点管理服务日志nodeMgrLog
进行排查:
application run success
字样则代表运行成功通过查看日志可以检查服务的运行状态,我们可以进入各子服务的日志路径,通过grep
检查日志文件,以此判断服务是否正常运行
main run success
,可以通过搜索此关键字来确认服务正常运行。如,检查webase-front日志,其他WeBASE服务可进行类似操作
cd webase-front
grep -B 3 "main run success" log/WeBASE-Front.log
输出如下:
2023-04-10 19:03:15.561 [main] INFO PresetDataService() - loadWarehouseJson :warehouse/warehouse.json
2023-04-10 19:03:15.617 [main] INFO PresetDataService() - readAndInitStoreItem save 7 items
2023-04-10 19:03:15.618 [main] INFO Application() - Started Application in 19.461 seconds (JVM running for 20.418)
2023-04-10 19:03:15.618 [main] INFO Application() - main run success...
ERROR
进行检查如,检查webase-front错误日志,其他WeBASE服务可进行类似操作
cd webase-front
grep "ERROR" log/WeBASE-Front.log
输出如下
如果出现错误日志,根据错误提示或本文档的常见问题进行排查
WeBASE管理平台:
http://{deployIP}:{webPort}
示例:http://localhost:5000
若使用物理机访问,请先关闭防火墙并设置静态IP地址
备注:
部署服务器IP和管理平台服务端口需对应修改,网络策略需开通
WeBASE管理平台使用说明请查看使用手册(获取WeBASE管理平台默认账号和密码,并初始化系统配置)
admin
,默认密码为Abcd1234
。首次登陆要求重置密码127.0.0.1
,默认端口为5002
。参考上文中common.properties
的配置项front.port={frontPort}
检查节点前置是否启动,可以通过访问http://{frontIp}:{frontPort}/WeBASE-Front
(默认端口5002);访问前,确保服务端已对本地机器开放端口,如开放front的5002端口。(不建议节点前置的端口对公网开放访问权限,应对部分机器IP按需开放)
注意:CentOS下OpenJDK无法正常工作,需要安装OracleJDK下载链接。
# 创建新的文件夹,安装Java 8或以上的版本,推荐JDK8-JDK13版本,将下载的jdk放在software目录
# 从Oracle官网(https://www.oracle.com/java/technologies/downloads/#java8)选择Java 8或以上的版本下载,例如下载jdk-8u212-linux-x64.tar.gz
mkdir /software && cd /software
# 解压jdk
rz -E
tar -zxvf jdk-8u212-linux-x64.tar.gz -C ./
# 修改解压后文件的文件名
mv jdk1.8.0_212 jdk
# 配置Java环境,编辑/etc/profile文件
vim /etc/profile
# 打开以后将下面三句输入到文件里面并保存退出
export JAVA_HOME=/software/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 生效profile
source /etc/profile
# 查询Java版本,出现的版本是自己下载的版本,则安装成功。
java -version
此处以CentOS 7(x86_64)**安装**MariaDB 10.2为例。MariaDB数据库是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。MariaDB完全兼容 MySQL,包括API和命令行。MariaDB 10.2版本对应Mysql 5.7。其他安装方式请参考MySQL官网。
sudo yum install -y mariadb*
即可安装MariaDB 10.3,并跳到下文的 启停 章节即可。使用vi
或vim
创建新文件/etc/yum.repos.d/mariadb.repo
,并写入下文的文件内容(参考MariaDB中科大镜像源修改进行配置)
sudo vi /etc/yum.repos.d/mariadb.repo
# MariaDB 10.2 CentOS repository list - created 2021-07-12 07:37 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
yum clean all
yum makecache all
MariaDB 10.2
sudo yum install -y mariadb*
命令安装的MariaDB,其版本默认为5.5版本,对应Mysql版本为5.5。新版本MariaDB无法兼容升级,需要先卸载旧版本的MariaDB,卸载前需要备份数据库内容,卸载命令可参考yum remove mariadb
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
sudo yum install MariaDB-server MariaDB-client -y
若安装时遇到错误“Failed to connect to 2001:da8:d800:95::110: Network is unreachable”
,将源地址中的 mirrors.ustc.edu.cn
替换为 ipv4.mirrors.ustc.edu.cn
以强制使用 IPv4:
sudo sed -i 's#//mirrors.ustc.edu.cn#//ipv4.mirrors.ustc.edu.cn#g' /etc/yum.repos.d/mariadb
详情参考MariaDB官网安装。
启动:sudo systemctl start mariadb.service
停止:sudo systemctl stop mariadb.service
sudo systemctl enable mariadb.service
执行以下命令:
sudo mysql_secure_installation
以下根据提示输入:
Enter current password for root (enter for none):<–初次运行直接回车
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
mysql -uroot -p -h localhost -P 3306
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
MariaDB [(none)]> flush PRIVILEGES;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'test'@localhost IDENTIFIED BY '123456' WITH GRANT OPTION;
MariaDB [(none)]> flush PRIVILEGES;
安全温馨提示:
mysql -utest -p123456 -h localhost -P 3306
MariaDB [(none)]> create database webasenodemanager;
python版本要求使用python3.x, 推荐使用python3.6及以上版本
sudo yum install -y python36
sudo yum install -y python36-pip