一键部署
本部署集群模式默认使用HBase作为存储引擎,使用Zeroc-ICE作为RPC服务,单机模式默认使用Mysql作为存储引擎,如需自定义相关配置,请参考: 自定义存储引擎 以及 自定义RPC组件
nodelist文件中配置一个节点,即为部署单机模式;配置三个或以上节点即为部署集群模式!
- 1、如果您想试用本项目,开发者可以免费帮您部署服务(单机模式请提供一台4c8g或以上配置的服务器,集群模式提供三台8c16g或以上配置的服务器,服务器需要有外网权限和root密码,请务必确保您的服务器上没有任何业务数据,部署完成后您再修改root密码即可)。
- 2、如果您想试用XL-LightHouse商业付费版本,请联系开发者为您提供商业付费版本演示服务,并可以为您提供付费版本安装包和为期两个月的试用序列号(请勿破解商业付费版本)。
系统环境
- 部署脚本支持Rocky、AlmaLinux、CentOS、RHEL、Ubuntu、Debian等操作系统,已测试过的系统版本有Rocky(8.5 , 8.6 , 9.0 , 9.1 , 9.2)、AlmaLinux(8.5 , 8.6 , 9.1 , 9.2)、CentOS(7.4 , 7.9 , 8.4)、RHEL(8.6)、Ubuntu(18.04 , 20.04 , 22.04)、Debian(10.2 ,10.12 , 11.1 , 12.4),建议您优先选择以上系统发行版;
- 系统必须为64bit,CPU选择Intel型号;
- 执行部署脚本需要使用root账号,并且服务器需要有外网访问权限(外网权限仅用于yum/apt安装依赖包),部署完成后不再需要root和外网访问权限;
- 单机模式最低配置为:CPU-Cores>=4,Memory>=8G;集群模式至少需要3个节点,单节点最低运行配置为:CPU-Cores>=4,Memory>=16G;
- 各节点的系统发行版、系统版本号、节点内存大小和CPU型号、磁盘容量建议保持一致。
- 各节点时区保持一致,请配置时间服务器,不同节点的hostname不可相同,提前关闭系统防火墙。
源码编译
您可以直接下载Releases发布包下载地址或选择自己编译。
下载源码
请选择releases最新分支,不要使用master开发分支(开发分支会随时提交未严格测试的代码,不保证可用)。
git clone -b releases-x.x.x https://github.com/xl-xueling/xl-lighthouse.git
或
git clone -b releases-x.x.x https://gitee.com/xl-xueling/xl-lighthouse.git
源码编译
请使用JDK11编译,编译服务器内存不能小于4G,执行命令如下,该步骤涉及前端模块编译,耗时较长,请耐心等待,编译过程中有个别告警信息不影响程序运行!
mvn clean install -P release
编译完成后,在lighthouse-assembly/target目录下生成的lighthouse-x.x.x.tar.gz即为系统部署文件。
服务部署
部署准备
- 选择集群中的一台服务器作为部署操作节点,【以下操作只需要在该节点执行即可】;
- 使用root账号登录操作节点,创建部署路径(务必选择磁盘空间最大的分区,并且不要部署到/root路径下,可能会有操作权限限制),本文档默认将集群部署在/usr/soft路径下;
- 部署操作需要使用root账号执行,部署脚本将本服务部署到deploy.json配置文件的[deploy_user]账号下(deploy_user不能为root),如果[deploy_user]账号不存在,则为自动创建出该账号。部署完成后,系统的运维管理等操作均使用deploy_user账号执行;
- 上传lighthouse-x.x.x.tar.gz到操作节点部署路径下并解压文件;
配置/bin/config/nodelist
10.206.0.7;NodeA123456(重要:第一个节点必须为当前部署操作节点,单机模式只需要配置当前节点即可)
10.206.0.9;NodeB123456
10.206.0.17;NodeC123456
nodelist文件配置说明:
- nodelist为集群节点信息,包含集群节点的内网IP和节点对应的root账号的密码,使用分号分割,配置格式为: ip;password。
- nodelist的第一行配置必须为当前执行部署操作的节点。
- nodelist文件中配置一个节点,即为单机模式,配置3个或以上节点即为集群模式。
- 部署脚本执行时会根据该文件生成nodelist.new文件只包括节点IP信息,如果担心root密码泄漏,可在部署完成后将nodelist文件删除。
配置/bin/config/deploy.json
非必要步骤,如果您希望快速的初步体验XL-LightHouse,该文件直接使用默认配置即可。
deploy.json文件包括各组件集群规划配置和相关密码设置等配置信息(修改该文件中的参数,重启服务不会生效,必须重新部署才能生效)。
deploy.json文件配置说明:
- 正式环境部署务必修改其中的密码相关参数,防止数据泄露风险;
可以使用nodes_size或nodes_ips两种配置方法指定各组件的集群规模和部署节点,系统默认使用node_size方式, 如果使用nodes_size即按照nodelist节点顺序至上而下选择指定数量的节点部署该组件。 如果使用nodes_ips为指定相应的ip,多个ip之间使用分号分割。
集群模式部署,对应cluster-deploy.json配置文件。
- 单机模式部署,对应standalone-deploy.json配置文件。
配置/bin/config/config.json
非必要步骤,如果您希望快速的初步体验XL-LightHouse,该文件直接使用默认配置即可。
config.json文件主要包括各组件内存参数相关配置(修改该文件中的参数,执行restart-all.sh重启服务即可生效)。
config.json文件配置说明:
- 集群模式部署,对应cluster-config.json配置文件,可以直接复制本文档 cluster-config.json配置参考的配置。
- 单机模式部署,对应standalone-config.json配置文件,可以直接复制本文档 standalone-config.json配置参考的配置。
执行部署命令
系统在部署过程中出现个别告警信息,不需要处理,不会影响正常运行!
# 执行一键部署命令
/usr/soft/lighthouse-x.x.x/bin/easy-deploy.sh
脚本参数:
--force,重复执行部署脚本时使用,会强制删除之前的部署文件后再进行部署(会导致原先的数据丢失)。
输出日志:
/usr/soft/lighthouse-x.x.x/bin/log/log.txt
部署脚本自动下载所依赖组件安装包,具体下载时间取决于您的服务器网络状况,如果服务器网速较差,出现下载超时等情况,请首先删除./packages目录下的已下载文件,然后重新部署即可!
部署验证
部署脚本输出日志“XL-LightHouse installed successfully!”表示部署完成!
Web服务验证
使用Web模块部署IP访问(默认为集群第一个节点),端口为8181,初始账号/密码为:admin/123456,建议您使用chrome浏览器访问。
部署完成后默认使用内网地址访问,如果您使用公网IP访问,出现远程连接异常时,可以配置一下安装目录./light-webapps/build/config.json中的REACT_APP_BASE_URL参数的IP地址,将其修改为web服务的公网IP,同时确保您的服务器已对公网放开9089端口(后端接口服务)和8181端口(Web服务)!
修改config.json中的ip地址为您的公网ip,注意端口号不要修改,9089是后端接口服务的端口
{
"REACT_APP_BASE_URL":"http://10.206.6.31:9089",
"AXIOS_TIMEOUT":60000
}
Web系统访问地址如下,端口号为8181
http://10.206.0.31:8181
演示项目
使用部署账号(默认为:work登录操作系统),然后执行项目路径下:./bin/tools/examples/start_example.sh,自动创建出演示项目,可用于初步体验XL-LightHouse或测试服务部署是否正常,系统正式上线后可执行stop_example.sh将演示项目停止,避免不必要的资源占用。
部署出现失败的一些情况
1、如果服务器网速很慢的情况下,可能会有ice安装失败的情况,具体表象是部署日志出现:icegridadmin命令不存在,这种情况重新部署即可!
2、部署脚本远程操作ssh相关命令默认使用22端口,如果您的服务器ssh端口非默认端口,会提示不能远程连接,可进行以下操作:
手动修改集群每台服务器的/etc/ssh/ssh_config文件,将其中的Port改为您自己的端口,并将注释符号去掉,然后重新执行即可。务必注意:是修改ssh_config文件而不是sshd_config文件。
ssh_config文件中的Port只是对应在当前服务器上执行ssh命令远程连接其他服务器时,所使用的默认端口号,所以修改此端口不会改变您登录当前服务器的端口。
sshd_config文件中的Port是对应当前服务器sshd服务的端口号,修改此文件后,您再次使用ssh客户端登录当前服务器,必须修改ssh端口。
如果您编译或部署过程中出现任何问题,请您及时联系开发者~