1. 概述编辑
1.1 版本
FineBI服务器版本 | FineKey工具版本 |
---|---|
6.0 | V1.5 |
1.2 应用场景
服务器部署一直都是比较繁重的运维操作,为了降低部署带来的较高成本,官方上线了容器化部署工具 FineKey 。
工具内置了最新版本的 docker 容器:包含 FR/BI 业务工程的镜像、各类组件镜像、Tomcat 镜像的镜像仓库。
使用该工具可以实现自动化部署,一条命令即可完成所有的部署工作,省心省力又高效。
本文介绍:使用 FineKey 工具部署单机 FineBI 工程的方案。
注1:容器化部署工具 FineKey 中的 FineReport、FineBI 工程镜像,均为帆软发布的最新版本。
注2:容器化部署工具 FineKey ,目前仅支持部署 FineBI 单机工程,不支持部署 FineBI 集群。
2. 部署准备编辑
2.1 FineKey运行环境要求
容器化部署工具 FineKey 的运行,对服务器环境有一些要求,如下表所示:
配置 | 要求 |
---|---|
系统版本 | CentOS 7.3 及以上 Ubuntu 18.04.4 及以上 |
系统内核 | 3.10及以上 |
硬件配置 | 剩余空闲物理内存:最低 16G 剩余空闲磁盘容量:最低 500G CPU架构:目前只支持 X64、AMD64 |
2.2 工程运行环境要求
容器化部署工具 FineKey 会安装许多容器组件。
1)请确认当前服务器是否符合容器的运行环境最低要求。
下表列出的为容器正常运行的最低配置要求。
建议配置一般为最低配置的两倍,可根据服务器实际情况自行调整。
2)请确认容器安装的默认配置是否可用。
请确认默认的映射端口端口是否已被使用,如已被使用,请安排好其他空闲端口。
请确认准备使用的端口是否开放了防火墙、安全组等,确保可连接。
注:端口portMapping为{映射端口:容器内端口} ,其中映射端口可改,容器内端口修改无效。
容器 | 简介 | 运行环境最低要求 | 安装默认配置 |
---|---|---|---|
bi | FineBI的工程容器,不带任何的demo数据 | - | 端口:{8080: 8080, 12100: 12100} |
promtail | 与FineBI容器绑定,一个FineBI容器对应一个promtail容器,收集日志信息 | 容器最低CPU要求:1Core 容器最低内存要求:1G | 端口:{9080:9080} |
ops_agent | 用于容器管理,agent升级也是该容器完成 与物理节点绑定,每个物理节点安装一个ops_agent | 容器最低CPU要求:1Core 内存配置xmx:512M | 端口:{9070:9070} |
node_exporter | 服务器物理节点的exporter 收集物理服务器的各种指标信息,每个物理节点会安装一个node_exporter容器 | 容器最低CPU要求:100m 容器最低内存要求:0.1G | 端口:{9100:9100} |
mysql | mysql数据库容器,用于 FineBI 的外接配置库 部署时若没有配置已有外置库,则强制安装一个mysql容器用于外接配置库 部署时若配置了已有外置库,则不会安装该容器 | - | 端口:{3306:3306} 用户名:root(不支持修改) 密码:mysql |
mysqld_exporter | mysql服务的exporter,用于收集mysql的各种指标信息 如果没有安装mysql容器,且已有外置库不是mysql,则不会安装该组件 | - | 端口:{9104:9104} |
nginx | nginx服务的容器,提供负载转发服务 所有服务的入口、使用都从这个入口访问 强制安装该容器 | 容器最低CPU要求:1Core | root用户安装端口:{80: 8080} 非root用户安装端口:{8090: 8080} |
nginx_exporter | nginx服务的exporter,收集nginx的指标信息 因为nginx强制安装,所以这个也是强制安装的 | - | 端口:{9113: 9113} |
2.3 确认docker状态
请先确认服务器上是否已安装了docker,若已安装,请确保docker正在运行。
1)确认是否安装docker:
执行命令:docker version
若安装了docker,则会返回版本。
2)若安装了docker:
执行命令:systemctl status docker
确认docker是running状态
2.4 确认用户权限
运行finekey工具的用户,必须要有root用户组权限。
3. 上传FineKey工具编辑
3.1 下载工具
点击下载:
3.2 上传工具
获得工具包后,需要将它上传到 Linux,上传文件的方法请自行查阅相关资料。
本文示例是将工具包上传到了 CentOS 7.6.1810 的/home/test路径下,如下图所示:
3.3 解压工具
先使用 cd 命令进入工具包所在文件夹下,再键入如下命令进行解压:
tar zxvf finekey-fr-release11.0.tar.gz
3.4 文件说明
解压后的文件如下表所示:
文件夹/文件 | 文件说明 | |
---|---|---|
finekey/bin | 运行finekey的可执行文件 | |
finekey/conf | finekey.yaml | 新部署工程应用所需的配置文件 |
finekey.migrate.yaml | 迁移配置文件,修改了配置,运行finekey时则优先读取该文件 | |
finekey/resources | 资源文件,镜像包放在其中images文件夹中 |
4. 配置yaml文件编辑
yaml 文件指的是 FineKey 工具解压目录下 conf 文件夹里的 finekey.yaml,该文件是控制后面整个自动部署流程的。
无任何自备组件的单机部署可不做任何配置,可以直接在当前宿主机本地部署,各个组件使用部署工具自带组件。
但是如果有个性化或特殊的部署需求,可以打开 yaml 文件自行配置,yaml 文件的配置需要在启动 FineKey 之前完成。
注:yaml文件很注重字符格式,该有空格的地方别误删。
4.1 基础配置
基础配置必须配置,包括以下内容:
cluster:值默认为false,代表单机部署
depoloymentType:值默认为1,代表部署bi相关组件
nodes:值为部署的FineBI工程的相关配置,包括:ip,port,user,password
如果ssh方式用的是密钥,则password配置注释,新增keypath: 密钥绝对路径/密钥文件
dataRootPath:根挂载目录。挂载目录所在分区,必须满足磁盘空闲空间≥500G
cluster: false #是否集群
deploymentType: 1
nodes:
- ip: localhost #机器ip
port: 22 #机器ssh端口
user: #节点ssh用户
password: #节点ssh密码
# - ip: 192.168.101.145
# port: 22
# user: xxx
# password: xxx
dataRootPath: ~/data
#repo:
# port: 5000
4.2 全新安装组件
components下,配置的是FineKey容器化部署工具全新安装的组件。
bi:FineBI环境变量,默认为5120M。可在 yaml 文件 config 中自行配置xmx值。
mysql:如果在下方existingComponents中未配置已有finedb数据库,默认安装一个mysql5数据库作为外接配置库。
无论是否有指定的外接数据库,都建议默认安装内置的mysql5容器,数据库名finedb,用户名root,密码mysql。可在 yaml 文件中修改mysql数据库的端口和密码。
ops_agent:默认安装一个ops_agent,可在 yaml 文件中修改端口。
注:全新安装的每个组件都可以自定义端口,参数为:portMapping: {访问用的端口: 镜像中固定的端口 }。
安装的组件和默认端口如2.2节,请排查端口是否可用,是否开放,并修改yaml文件中的端口。
components: #需要安装的组件
bi:
config: { xmx: 5120 } #环境变量
mysql:
password: mysql
ops_agent:
portMapping: {9070: 9070}
4.3 对接原有组件
existingComponents下,是用于工程对接原有的组件。
如果有指定的外接数据库,放开 yaml 文件中existingComponets部分,并配置好已有组件的相关信息,方便接入工程。
finedb:用于对接已有的数据库,作为工程的外接finedb库。如果自备外接finedb数据库,则放开existingComponets中finedb部分
databaseType:数据库类型
database:数据库名称
schema:数据库模式
ip:数据库所在IP
port:数据库端口
user:数据库用户名
password:数据库密码
existingComponents:
finedb:
databaseType: oracle
database: fr
schema: xxx
ip: 192.168.5.47
port: 1521
user: system
password: xxx
4.4 完整yaml文件示例
cluster: false #是否集群
deploymentType: 1
nodes:
- ip: localhost #机器ip
port: 22 #机器ssh端口
user: #节点ssh用户
password: #节点ssh密码
# - ip: 192.168.101.145
# port: 22
# user: xxx
# password: xxx
dataRootPath: ~/data
#repo:
# port: 5000
components: #需要安装的组件
ops_agent:
portMapping: {9070: 9070}
minio:
portMapping: {9000: 9000, 9001: 9001}
password: minioadmin #用户默认为minioadmin,密码长度不小于8位
existingComponents:
# finedb:
# databaseType: oracle
# database: fr
# schema: xxx
# ip: 192.168.5.47
# port: 1521
# user: system
# password: xxx
# redis:
# password: 123456
# nodes:
# - ip: 192.168.101.201
# port: 7379
# ftp:
# ip: 192.168.101.201
# port: 21
# user: adrian
# password: 1
# path: /elijah
# charset: UTF-8
# minio:
# ip: 192.168.5.47
# port: 9000
# user: adrian
# password: minioadmin
# path: /test
# ssl: false #不支持本地生成的ssl证书
# bucket: test
5. 启动FineKey部署编辑
5.1 启动部署
1)使用 cd 命令进入工具解压目录下 bin 文件夹,如下图所示:
2)键入如下命令执行自动化部署:
./finekey
3)整个部署过程需要花费一段时间,请耐心等待,如果部署过程中出现报错,请参考 容器化部署常见问题 ,查看有无对应的解决方案。
5.2 完成部署
当出现 deployment success!bye~ 提示时,表示已经成功部署,如下图所示:
5.3 访问工程
部署完成后,服务会自动启动。
在浏览器地址栏输入:http://{ip}/webroot/decision(请把{ip}换成自己的主机IP),即可访问 FineBI 系统,如下图所示:
6. 容器化运维指令编辑
此处列出一些常用的容器化运维指令:
重启容器指令:docker restart 容器名,例如:docker restart fanruan_fr
查看所有容器运行情况:docker ps -a
启动指定容器:docker start 容器名,例如:docker start fanruan_fr
停止指定容器:docker stop 容器名,例如:docker stop fanruan_fr