历史版本6 :容器化部署新FineReport单机项目 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本说明

工具版本
功能变动
FineKey 1.0
容器化部署工具上线,只需一条命令即可实现部署工作

1.2 应用场景

服务器部署一直都是比较繁重的运维操作,为了降低部署带来的较高成本,官方上线了容器化部署工具 FineKey 。

工具内置了最新版本的 docker 容器:包含 FR/BI 业务工程的镜像、各类组件镜像、Tomcat 镜像的镜像仓库。

使用该工具可以实现自动化部署,一条命令即可完成所有的部署工作,省心省力又高效。

本文介绍:使用 FineKey 工具部署单机 FineReport 工程的方案。

注:容器化部署工具 FineKey 中的 FineReport 工程镜像,均为帆软发布的最新版本。

2. 部署准备编辑

2.1 FineKey运行环境要求

容器化部署工具 FineKey 的运行,对服务器环境有一些要求,如下表所示:

配置要求
系统版本

仅支持Linux

CentOS 7.3 及以上

Ubuntu 18.04.4 及以上

系统内核

3.10及以上

硬件配置

剩余空闲物理内存:最低 16G

剩余空闲磁盘容量:最低 500G

CPU架构:目前只支持 X64、AMD64

2.2 组件运行环境要求

容器化部署工具 FineKey 会安装许多组件。单机情况下如下表所示:

组件
组件说明
FineReportFR的工程组件,其中不带任何的demo数据
ops_agent

管理FineReport相关组件,容器化升级也是该组件完成

与物理节点绑定,每个物理节点安装一个ops_agent

node_exporter

服务器物理节点的exporter

收集物理服务器的各种指标信息,每个物理节点安装一个node_exporter

promtail与FineReport绑定,一个FineReport工程对应一个promtail组件,收集日志信息
mysqlmysql数据库,用作 FineReport 的外接配置库

部署时若没有配置已有外置库,则强制安装一个mysql容器用于外接配置库

部署时若配置了已有外置库,则不会安装该组件

mysqld_exporter

mysql服务的exporter,用于收集mysql的各种指标信息

如果没有安装mysql组件,且已有外置库不是mysql,则不会安装该组件

registry存放docker镜像的仓库

1)请确认当前服务器是否符合组件的运行环境最低要求。

  • 下表列出的为组件正常运行的最低配置要求。

  • 建议配置一般为最低配置的两倍,可根据服务器实际情况自行调整。

组件
容器CPU限制容器内存限制
内存配置xmx磁盘配置
FineReport8Core-

机器内存8G,最大32G

50G
ops_agent1Core-1G-
node_exporter0.1Core0.1G--
promtail1Core---
mysql2Core--50G
mysqld_exporter0.1Core0.1G--
registry1Core---

2)请确认容器安装的默认配置是否可用。

  • 请确认默认的映射端口端口是否已被使用,如已被使用,请安排好其他空闲端口。

  • 请确认准备使用的端口是否开放了防火墙、安全组等,确保可连接。

注:端口portMapping为{映射端口:容器内端口} ,其中映射端口可改,容器内端口修改无效。

容器

安装默认配置

FineReport

端口:{8080: 8080, 12100: 12100}

ops_agent端口:{9070:9070}
node_exporter端口:{9100:9100}
promtail端口:{9080:9080}
mysql

端口:{3306:3306}

用户名:root(不支持修改)

密码:mysql

mysqld_exporter端口:{9104:9104}
registry端口:5000

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 下载工具

访问 FineReport产品下载页面,选择「其他下载>服务器部署版」,点击下载「Finekey容器化版」安装包,如下图所示:

3.2 上传工具

获得工具包后,需要将它上传到 Linux,上传文件的方法请自行查阅相关资料。

本文示例是将工具包上传到了 CentOS 7.6.1810 的/home/test路径下,如下图所示:

3.3 解压工具

先使用 cd 命令进入工具包所在文件夹下,再键入如下命令进行解压:

tar zxvf finekey-fr-publish11.0.tar.gz

3.4 文件说明

解压后的文件如下表所示:

文件夹/文件
文件说明
finekey/bin运行finekey的可执行文件
finekey/conffinekey.yaml新部署工程应用所需的配置文件
finekey.migrate.yaml迁移配置文件,修改了配置,运行finekey时则优先读取该文件
finekey/resources资源文件,镜像包放在其中images文件夹中

4. 配置yaml文件(选做)编辑

yaml 文件指的是 FineKey 工具解压目录下 conf 文件夹里的 finekey.yaml,该文件是控制后面整个自动部署流程的。

无任何自备组件的单机部署可不做任何配置,可以直接在当前宿主机本地部署,各个组件使用部署工具自带组件。

但是如果有个性化或特殊的部署需求,可以打开 yaml 文件自行配置,yaml 文件的配置需要在启动 FineKey 之前完成。

注:yaml文件很注重字符格式,该有空格的地方别误删。

4.1 文件内容说明

配置
配置项说明
基础配置yaml文件中需要配置一些部署所需的必要信息,例如工程节点配置等
cluster

单机/集群部署

false:代表单机部署

true:代表集群部署

depoloymentType

值默认为1,代表部署FineReport/FineBI相关组件

nodes

值为部署的FineReport工程的相关配置

包括:ip,port,user,password

如果ssh方式为密钥,则将password配置注释,新增keypath: 密钥绝对路径/密钥文件

dataRootPath

根挂载目录

挂载目录所在分区,必须满足磁盘空闲空间≥500G

repo

1)如需全新安装registry镜像仓库,可指定仓库端口

2)如已有镜像仓库,需要输入仓库的url、username、password、ssl

全新安装组件

components下,配置的是2.2节列举的待安装的组件

全新安装的每个组件都可以自定义端口,参数为:portMapping: {访问用的端口: 镜像中固定的端口 }。

安装的组件和默认端口如2.2节,请排查端口是否可用,是否开放,并修改yaml文件中的端口。

fr

FineReport环境变量,默认为5120M

可在 yaml 文件 config 中自行配置xmx值。

mysql

如果在下方existingComponents中未配置已有finedb数据库,默认安装一个mysql5数据库作为外接配置库

无论是否有指定的外接数据库,都建议默认安装内置的mysql5容器,数据库名finedb,用户名root,密码mysql

可在 yaml 文件中修改mysql数据库的端口和密码

ops_agent默认安装一个ops_agent,可在 yaml 文件中修改端口。
对接原有组件

existingComponents下,是用于工程对接原本就有的组件

如果有指定的外接数据库,放开 yaml 文件中existingComponets部分,并配置好已有组件的相关信息,方便接入工程

finedb

用于对接已有的数据库,作为工程的外接finedb库。如果自备外接finedb数据库,则放开existingComponets中finedb部分

databaseType:数据库类型

database:数据库名称

schema:数据库模式

ip:数据库所在IP

port:数据库端口

user:数据库用户名

password:数据库密码

4.2 文件示例

cluster: false      #是否集群
deploymentType: 1  
nodes:
  - ip: localhost            #机器ip
    port: 22                 #机器ssh端口
    user:                    #节点ssh用户
    password:                #节点ssh密码
 
dataRootPath: ~/data
 
repo:
  port: 5000    #待安装的registry仓库端口
  #指定已有repo
  url:          #已有repo的url
  username:     #已有repo的用户名
  password:     #已有repo的密码
  ssl: true     #已有repo是否安全仓库
 
components: #需要安装的组件
# 这里跟随具体的应用做改变
  fr:
    config: { xmx: 5120 }   #环境变量
 
  mysql:
    password: mysql
 
#  ops_agent:
#    portMapping: {9070: 9070}
 
existingComponents:
#  finedb:
#    databaseType: oracle
#    database: fr
#    schema: xxx
#    ip: 192.168.5.47
#    port: 1521
#    user: system
#    password: xxx

5. 启动FineKey部署编辑

5.1 启动部署

1)使用 cd 命令进入工具解压目录下 bin 文件夹,如下图所示:

2)键入如下命令执行自动化部署:

./finekey

3)整个部署过程需要花费一段时间,请耐心等待,如果部署过程中出现报错,请参考 容器化部署常见问题 ,查看有无对应的解决方案。

5.2 完成部署

当出现 deployment success!bye~ 提示时,表示已经成功部署,如下图所示:


5.3 访问工程

部署完成后,服务会自动启动。

在浏览器地址栏输入:http://{ip}/webroot/decision(请把{ip}换成自己的主机IP),即可访问 FineReport 系统,如下图所示:

6. 容器化运维指令编辑

此处列出一些常用的容器化运维指令:

  • 重启容器指令:docker restart 容器名,例如:docker restart fanruan_fr

  • 查看所有容器运行情况:docker ps -a

  • 启动指定容器:docker start 容器名,例如:docker start fanruan_fr

  • 停止指定容器:docker stop 容器名,例如:docker stop fanruan_fr