一键部署webase全家桶(包含基本的异常分享)

这篇具有很好参考价值的文章主要介绍了一键部署webase全家桶(包含基本的异常分享)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本教程来源于官方文档:https://webasedoc.readthedocs.io/zh-cn/latest/docs/WeBASE/install.html

一键部署可以在 同机 快速搭建WeBASE管理台环境,方便用户快速体验WeBASE管理平台。

​ 一键部署会搭建:节点(FISCO-BCOS 2.0+)、管理平台(WeBASE-Web)、节点管理子系统(WeBASE-Node-Manager)、节点前置子系统(WeBASE-Front)、签名服务(WeBASE- Sign)。其中,节点的搭建是可选的,可以通过配置来选择使用已有链或者搭建新链    架构如下:

 一键部署webase,前端

前提条件

环境 版本
Java Oracle JDK 8 至 14
MySQL MySQL-5.6及以上
Python Python3.6及以上
PyMySQL

环境推荐使用Ubuntu18及以上22以下的 

检查Java

推荐JDK8-JDK13版本,使用OracleJDK安装指引:

java -version

注意:不要用sudo执行安装脚本

检查mysql

MySQL-5.6或以上版本:

mysql --version
  • Mysql安装部署可参考数据库部署
检查Python

使用Python3.6或以上版本:

python --version
# python3时
python3 --version

如已安装python3,也可通过python3 --version查看,在运行脚本时,使用python3命令即可

  • Python3安装部署可参考Python部署
PyMySQL部署(Python3.6+)

Python3.6及以上版本,需安装PyMySQL依赖包

  • Ubuntu

    sudo apt-get install -y python3-pip
    sudo pip3 install PyMySQL

不支持pip命令的话,可以使用以下方式:

git clone https://github.com/PyMySQL/PyMySQL
cd PyMySQL/
python3 setup.py install

检查服务器网络策略

网络策略检查:

  • 开放WeBASE管理平台端口:检查webase-web管理平台页面的端口webPort(默认为5000)在服务器的网络安全组中是否设置为开放。如,云服务厂商如腾讯云,查看安全组设置,为webase-web开放5000端口。若端口未开放,将导致浏览器无法访问WeBASE服务页面
  • 开放节点前置端口:如果希望通过浏览器直接访问webase-front节点前置的页面,则需要开放节点前置端口frontPort(默认5002);由于节点前置直连节点,不建议对公网开放节点前置端口,建议按需开放

此教程建议使用自己的本地节点而不依赖于webse一键部署时生成的节点 

可以在本地新建一个单机的两节点的链,不过是后期需要在common.properties文件里去修改相应的配置

还不会建链的可以找个18楼重开了

部署之前的准备工作:(本教程是专为Ubuntu22.04写的) 

Ubuntu22.04的mysql版本通常/只能为MySQL8,在新版的MySQL8里对身份验证做了更严格的要求

使用了caching_sha2_password身份验证插件,而不是之前的mysql_native_password。这种更强大的加密插件提供了更高级别的安全性,但也可能需要一些客户端和应用程序的调整。

我们这里在安装完数据库之后要进行这样的设置:

1.修改相关配置文件 

/etc/mysql/my.cnf配置文件的[mysqld]部分添加如下配置:

如若没有则自行添加 [mysqld]

sql_mode =STRICT_TRANS_TABLES
ssl=0
default_authentication_plugin = mysql_native_password

2.登陆数据库

通常在你们第一次在环境里安装MySQL后需要使用root的身份才可以进MySQL:

sudo mysql -uroot -p

格式是:mysql  -u【选项/参数】(用户名) -p 【选项/参数】(密码)

这种情况不用输入密码,按下回车后命令行会提示你需要你输入密码(Enter password:)

xxx@xxxx-xxxx-xxxxx:/fisco/webase-deploy$ sudo mysql -uroot -p
Enter password:

因为我们这里使用了sudo(不知道sudo的用法及含义的可以重开重修了),所以无需输入密码,直接敲回车即可 :如图所示,我们进入到了mysql里了

一键部署webase,前端

 3.进行设置密码和权限的操作

输入命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

该命令用于修改‘root’用户在‘localhost’这个主机上的密码为:123456

并且使用身份校验更宽松的插件:mysql_native_password 

 刷新权限:

FLUSH PRIVILEGES;

 该命令用于在更改权限或添加用户等操作时使其刷新生效

拉取部署脚本

获取部署安装包:

wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-deploy.zip

解压安装包:

unzip webase-deploy.zip

进入目录:

cd webase-deploy

修改配置

① mysql数据库需提前安装,已安装直接配置即可,还未安装请参看数据库部署;

② 修改配置文件(vi common.properties);

  • 若使用可视化部署,则忽略下文,将修改visual-deploy.properties,并进行可视化部署依赖服务的一键安装,具体请参考可视化部署-一键安装依赖服务

③ 一键部署支持使用已有链或者搭建新链。通过参数”if.exist.fisco”配置是否使用已有链,以下配置二选一即可:

  • 当配置”yes”时,需配置已有链的路径fisco.dir。路径下要存在sdk目录,sdk目录中包含ca.crt, sdk.crt, sdk.key及gm目录,gm目录中包含国密SSL所需证书,包含gmca.crt、gmsdk.crt、gmsdk.key、gmensdk.crt和gmensdk.key
  • 当配置”no”时,需配置节点fisco版本和节点安装个数,搭建的新链默认两个群组

​ 如果不使用一键部署搭建新链,可以参考FISCO BCOS官方文档搭建 FISCO BCOS部署流程;

​ 注:使用国密版需要修改设置配置项encrypt.type=1。前置SDK与节点默认使用非国密SSL,如果需要使用国密SSL,需要修改设置配置项encrypt.sslType=1

④ 服务端口不能小于1024

⑤ 部署时,修改 common.properties 配置文件

# WeBASE子系统的最新版本(v1.1.0或以上版本)
webase.web.version=v1.5.5
webase.mgr.version=v1.5.5
webase.sign.version=v1.5.5
webase.front.version=v1.5.5

#####################################################################
## 使用Docker启用Mysql服务,则需要配置以下值

# 1: enable mysql in docker
# 0: mysql run in host, required fill in the configuration of webase-node-mgr and webase-sign
docker.mysql=1

# if [docker.mysql=1], mysql run in host (only works in [installDockerAll])
# run mysql 5.6 by docker
docker.mysql.port=23306
# default user [root]
docker.mysql.password=123456

#####################################################################
## 不使用Docker启动Mysql,则需要配置以下值

# 节点管理子系统mysql数据库配置
mysql.ip=127.0.0.1
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



# 节点前置子系统h2数据库名和所属机构
front.h2.name=webasefront
front.org=fisco

# WeBASE管理平台服务端口
web.port=5000
# 启用移动端管理平台 (0: disable, 1: enable)
web.h5.enable=1

# 节点管理子系统服务端口
mgr.port=5001
# 节点前置子系统端口
front.port=5002
# 签名服务子系统端口
sign.port=5004


# 节点监听Ip
node.listenIp=127.0.0.1
# 节点p2p端口
node.p2pPort=30300
# 节点链上链下端口
node.channelPort=20200
# 节点rpc端口
node.rpcPort=8545

# 加密类型 (0: ECDSA算法, 1: 国密算法)
encrypt.type=0
# SSL连接加密类型 (0: ECDSA SSL, 1: 国密SSL)
# 只有国密链才能使用国密SSL
encrypt.sslType=0

# 是否使用已有的链(yes/no)
if.exist.fisco=yes

# 使用已有链时需配置
# 已有链的路径,start_all.sh脚本所在路径
# 路径下要存在sdk目录(sdk目录中包含了SSL所需的证书,即ca.crt、sdk.crt、sdk.key和gm目录(包含国密SSL证书,gmca.crt、gmsdk.crt、gmsdk.key、gmensdk.crt和gmensdk.key)

fisco.dir=/data/app/nodes/127.0.0.1

# 前置所连接节点,在127.0.0.1目录中的节点中的一个
# 节点路径下要存在conf文件夹,conf里存放节点证书(ca.crt、node.crt和node.key)

node.dir=node0

一键部署

执行installAll命令,部署服务将自动部署FISCO BCOS节点

并部署 WeBASE 中间件服务,

包括:

签名服务(sign)

节点前置(front)

节点管理服务(node-mgr)

节点管理前端(web)

备注:

  • 部署脚本会拉取相关安装包进行部署,需保持网络畅通
  • 首次部署需要下载编译包和初始化数据库,重复部署时可以根据提示不重复操作
  • 部署过程中出现报错时,可根据错误提示进行操作,或根据本文档中的常见问题进行排查
  • 不要用sudo执行脚本,例如sudo python3 deploy.py installAll(sudo会导致无法获取当前用户的环境变量如JAVA_HOME)
# 部署并启动所有服务
python3 deploy.py installAll

部署完成后可以看到deploy has completed的日志:

python3 deploy.py installAll
...
============================================================
              _    _     ______  ___  _____ _____ 
             | |  | |    | ___ \/ _ \/  ___|  ___|
             | |  | | ___| |_/ / /_\ \ `--.| |__  
             | |/\| |/ _ | ___ |  _  |`--. |  __| 
             \  /\  |  __| |_/ | | | /\__/ | |___ 
              \/  \/ \___\____/\_| |_\____/\____/  
...
...
============================================================
==============      deploy  has completed     ==============
============================================================
==============    webase-web version  v1.5.5        ========
==============    webase-node-mgr version  v1.5.5   ========
==============    webase-sign version  v1.5.3       ========
==============    webase-front version  v1.5.5      ========
============================================================
  • 服务部署后,需要对各服务进行启停操作,可以使用以下命令:
# 一键部署
部署并启动所有服务        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
# 可视化部署
(注:这里我们是一键部署而不是可视化部署,可视化部署是另一种部署webase服务的方式)
部署并启动可视化部署的所有服务  python3 deploy.py installWeBASE
停止可视化部署的所有服务  python3 deploy.py stopWeBASE
启动可视化部署的所有服务  python3 deploy.py startWeBASE

状态检查

成功部署后,可以根据以下步骤确认各个子服务是否启动成功

检查各子系统进程

通过ps命令,检查各子系统的进程是否存在

检查节点进程,此处我们部署了两个节点node0, node1

ps -ef | grep node

输出如下

root     29977     1  1 17:24 pts/2    00:02:20 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
root     29979     1  1 17:24 pts/2    00:02:23 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
  • 检查节点前置webase-front的进程
ps -ef | grep webase.front 

输出如下

root     31805     1  0 17:24 pts/2    00:01:30 /usr/local/jdk/bin/java -Djdk.tls.namedGroups=secp256k1 ... conf/:apps/*:lib/* com.webank.webase.front.Application
  • 检查节点管理服务webase-node-manager的进程
ps -ef  | grep webase.node.mgr

输出如下

root      4696     1  0 17:26 pts/2    00:00:40 /usr/local/jdk/bin/java -Djdk.tls.namedGroups=secp256k1 ... conf/:apps/*:lib/* com.webank.webase.node.mgr.Application
  • 检查webase-web对应的nginx进程
ps -ef | grep nginx       

输出如下

root      5141     1  0 Dec08 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /root/fisco/webase/webase-deploy/comm/nginx.conf
  • 检查签名服务webase-sign的进程
ps -ef  | grep webase.sign 

输出如下

root     30718     1  0 17:24 pts/2    00:00:19 /usr/local/jdk/bin/java ... conf/:apps/*:lib/* com.webank.webase.sign.Application

检查进程端口

通过netstat命令,检查各子系统进程的端口监听情况。

检查方法如下,若无输出,则代表进程端口监听异常,需要到该子系统的日志中检查日志错误信息,并根据错误提示或本文档的常见问题进行排查

  • 检查节点channel端口(默认为20200)是否已监听
netstat -anlp | grep 20200

输出如下

tcp        0      0 0.0.0.0:20200           0.0.0.0:*               LISTEN      29069/fisco-bcos
  • 检查webase-front端口(默认为5002)是否已监听
netstat -anlp | grep 5002

输出如下

tcp6       0      0 :::5002                 :::*                    LISTEN      2909/java 
  • 检查webase-node-mgr端口(默认为5001)是否已监听
$ netstat -anlp | grep 5001    

输出如下

tcp6       0      0 :::5001                 :::*                    LISTEN      14049/java 
  • 检查webase-web端口(默认为5000)在nginx是否已监听
$ netstat -anlp | grep 5000

输出如下

tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      3498/nginx: master  
  • 检查webase-sign端口(默认为5004)是否已监听
$ netstat -anlp | grep 5004

输出如下

tcp6       0      0 :::5004                 :::*                    LISTEN      25271/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进行排查:
    • 检查webase-deploy/log中的部署日志,是否在部署时出现错误
    • 检查webase-deploy/webase-front/log中的节点前置日志,如果最后出现application run success字样则代表运行成功
    • 检查webase-deploy/webase-node-mgr/log或webase-deploy/webase-sign/log中的日志
    • 检查webase-deploy/nodes/127.0.0.1/nodeXXX/log中的节点日志
搜索日志

通过查看日志可以检查服务的运行状态,我们可以进入各子服务的日志路径,通过grep检查日志文件,以此判断服务是否正常运行

  • 查看运行成功日志:WeBASE子服务运行成功后均会打印日志main run success,可以通过搜索此关键字来确认服务正常运行。

如,检查webase-front日志,其他WeBASE服务可进行类似操作

cd webase-front
grep -B 3 "main run success" log/WeBASE-Front.log

输出如下:

2020-12-09 15:47:25.355 [main] INFO  ScheduledAnnotationBeanPostProcessor() - No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
2020-12-09 15:47:25.378 [main] INFO  TomcatEmbeddedServletContainer() - Tomcat started on port(s): 5002 (http)
2020-12-09 15:47:25.383 [main] INFO  Application() - Started Application in 6.983 seconds (JVM running for 7.768)
2020-12-09 15:47:25.383 [main] INFO  Application() - main run success...
  • 查看报错日志:出现异常时,可以搜索关键字ERROR进行检查

如,检查webase-front错误日志,其他WeBASE服务可进行类似操作

cd webase-front
grep "ERROR" log/WeBASE-Front.log

输出如下

2020-12-09 09:10:42.138 [http-nio-5002-exec-1] ERROR ExceptionsHandler() - catch frontException:  no active connection available network exception requset send failed! please check the log file content for reasons.
2020-12-09 09:10:42.145 [http-nio-5002-exec-4] ERROR Web3ApiService() - getBlockNumber fail.

如果出现错误日志,根据错误提示或本文档的常见问题进行排查

启动失败或无法使用时,到WeBASE提交Issue或到技术社区共同探讨。

  • 提交Issue或讨论问题时,可以在issue中配上自己的环境配置,操作步骤,错误现象,错误日志等信息,方便社区用户快速定位问题

异常分享 

如果遇到子服务node-maneger,起不起来的情况,可以尝试使用该方法;
在webase-sign/conf/application.yml文件中做如下修改:@寻于乱世

一键部署webase,前端

访问

WeBASE管理平台:

  • 一键部署完成后,打开浏览器(Chrome Safari或Firefox)访问
http://{deployIP}:{webPort}
示例:http://localhost:5000

备注:文章来源地址https://www.toymoban.com/news/detail-857493.html

  • WeBASE管理平台使用说明请查看使用手册(获取WeBASE管理平台默认账号和密码,并初始化系统配置)
    • 默认账号为admin,默认密码为Abcd1234。首次登陆要求重置密码
    • 添加节点前置WeBASE-Front到WeBASE管理平台;一键部署时,节点前置与节点管理服务默认是同机部署,添加前置则填写IP为127.0.0.1,默认端口为5002。参考上文中common.properties的配置项front.port={frontPort}

大致页面:

到了这里,关于一键部署webase全家桶(包含基本的异常分享)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探秘WeBASE-Front:区块链前端服务框架,简化开发流程

    项目地址:https://gitcode.com/WeBankBlockchain/WeBASE-Front 在数字化转型的大潮中,区块链技术以其分布式、不可篡改和透明化的特性被广泛应用。而【WeBASE-Front】正是这样一款开源的区块链前端服务平台,它由微众银行区块链团队打造,旨在简化区块链应用的开发、部署和管理过程。

    2024年04月12日
    浏览(52)
  • 前端mqtt的详细使用(包含mqtt服务器部署,前端vue3使用mqtt连接、订阅主题、发布等)

    ​ MQTT(消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的通讯协议,该协议构建于TCP/IP协议上。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。MQTT 协议的应用场景包括物联网、移动应用、车联网、智能

    2024年02月08日
    浏览(64)
  • Pico VR眼镜(XR) Unity开发环境部署及打包教程,包含瞬间移动、转向等基本操作配置

    创建项目 我这里选择的是URP项目。URP对移动端性能比较友好,另外VR平台也不支持HDRP渲染管线。 然后进入unity工具栏-File - Build Settings 点击 Android后,点就Switch Platform将项目转为Android项目 安装依赖包 在unity的工具栏中点击Window-Package Manager,打开包管理器 如图将package来源设置

    2024年02月03日
    浏览(58)
  • 请立即收藏!春节必备AI工具盘点:一键拜年短信、海报!AI全家福!

    大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“ 外挂 ”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识,包括但不限于 AI科普 , AI工具测评 , AI效率提升 , AI行业洞察 。关

    2024年02月21日
    浏览(32)
  • 区块链网络管理平台WeBASE双节点可视化部署

    之前有写过一篇Linux下一键部署区块链网络WeBASE(FISCO BCOS),是单节点,正常还是会考虑多部署几个节点的,这里进行一个管理节点,2个底层节点的部署操作,采用官网的可视化部署方式。 官网参考:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Install/visual_deploy.html 可视化部

    2023年04月08日
    浏览(44)
  • Mysql 数据库DQL 数据查询语言 SELECT 基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询——包含DQL所有查询语句。吐血分享。

    DQL:数据查询语言; 用来对表内的数据进行查找 。Database Query Language SQL语句分为:基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询。  可以发现name字段就只剩下一个张三了;   条件: 条件查询—比较运算符 比较运算符 功能 大于 = 大于等于 小于 = 小于等

    2024年01月19日
    浏览(53)
  • 【适合小白】区块链之我用可视化的方式部署Webase

    本小编在今年的四月底参加了一个区块链的省技能大赛,并在此基于我对官网教程的理解下,分享我的操作方法。 可视化部署是指通过 WeBASE 管理平台(WeBASE-Web + WeBASE-Node-Manager),在 多台 主机上快速部署 FISCO-BCOS 底层节点和 WeBASE-Front 前置 以及 对底层节点的扩容操作。 可

    2024年04月12日
    浏览(46)
  • 区块链入门教程(9)--使用WeBASE-Front部署及调用合约

    FISCO BCOS除了可以使用控制台,还可以使用WeBASE-Front对合约进行可视化开发、编译、部署、调用。 开发一个最基本的HelloWorld智能合约,并编译、部署、调用。 智能合约概念: 智能合约概念于1995年由Nick Szabo首次提出,指以数字形式定义的能自动执行条款的合约,数字形式意味

    2024年02月17日
    浏览(39)
  • Nginx基本使用以及部署前端项目

    最近学习了一下Nginx,整理了一个博客,主要参考的是狂神说的b站视频教程,文章链接如下:狂神说Nginx快速入门 到Nginx官方选择自己电脑适用的稳定版本下载,我下载的的windows版本。 下载完,就会有一个压缩包。需要创建一个文件夹用于存放解压后的nginx内容(注意:存放

    2024年02月05日
    浏览(43)
  • 前端部署会用到的基本linux命令【Xshell、FinalShell】

    1、.tar文件 2、.gz文件 3、.tar.gz 和 .tgz 4、.bz2 5、.tar.bz2 6、.tar.bz 7、.Z 8、.tar.Z 9、.zip 10、.rar

    2024年01月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包