1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
11.0.7 | 新增「设置MQ内置」 |
11.0.22 | 支持 Redis6.0 的权限管理功能 ACL |
1.2 应用场景
单个工程已不能满足用户需求,用户需要较高的并发支撑性能。
单机不可用时,系统停止将会造成业务中断、数据/模板丢失等问题,用户需要确保系统 7*24h 稳定运行。
1.3 功能简介
本文简单介绍,集群配置环节,各种配置项的要求和说明。
本文所有操作,均在工程的「管理系统>智能运维>集群配置」中进行。
注:文档并非完整部署方案,仅对配置项进行介绍。完整部署方案请参见:
容器化部署:一键部署,包括工程节点+负载均衡+状态服务器+文件服务器+外接数据库
Linux系统手动配置标准集群:工程节点+负载均衡+状态服务器+文件服务器+配置库都需手动部署、修改配置和串并起来
2. 集群配置
2.1 开启状态服务器
支持多种状态服务器:Redis单机、Redis集群、Redis哨兵、腾讯云Redis集群4.0
设置成功后,请重新登录数据决策系统。
2.1.1 Redis单机
使用前提:
1)配置之前请检查各工程节点服务器系统时间是否一致,不一致可能会导致集群不可用及同步问题。
2)请准备好Redis的内网IP、占用端口、服务密码。
3)FineReport11.0.22及之后版本,支持Redis6.0的权限管理功能ACL,如需使用,请准备好用户名。
4)支持华为云 Redis 5.0 主备版。配置方式与「Redis单机」相同,只需将主机、端口、密码修改为华为云的即可。
操作步骤:
1)点击状态服务器「开启」按钮。
2)选择缓存系统为「Redis单机」,输入状态服务器信息。
字段 | 值 |
---|---|
主机 | Redis 所在服务器的 IP 地址,请填写内网 IP |
端口 | Redis 的端口,默认为 6379 |
密码 | Redis 服务的密码,若无则不填写 |
ACL | 支持 Redis6.0 的权限管理功能 ACL 如开启 ACL ,请输入对应 Redis 用户名 |
3)点击「测试连接并保存」。
2.1.2 Redis集群
使用前提:
1)配置之前请检查各工程节点服务器系统时间是否一致,不一致可能会导致集群不可用及同步问题。
2)请准备好Redis各个节点的内网IP、占用端口。
3)如果配置Redis服务密码,请确保 Redis 各个节点使用统一的密码。
4)FineReport11.0.22及之后版本,支持Redis6.0的权限管理功能ACL,如需使用,请准备好用户名。
操作步骤:
1)点击状态服务器「开启」按钮。
2)选择缓存系统为「Redis集群」,输入状态服务器信息。
字段 | 值 |
---|---|
密码 | Redis 服务的密码,若无则不填写 |
节点管理 | Redis 各个节点的内网 IP 和占用端口 |
ACL | 支持 Redis6.0 的权限管理功能 ACL 如开启 ACL ,请输入对应 Redis 用户名 |
3)点击「测试连接并保存」。
2.1.3 Redis哨兵
使用前提:
1)配置之前请检查各工程节点服务器系统时间是否一致,不一致可能会导致集群不可用及同步问题。
2)请准备好Redis各个节点的内网IP、占用端口。
3)请准备好Redis主节点名称。
4)如果配置Redis服务密码,请确保 Redis 各个节点使用统一的密码。
操作步骤:
1)点击状态服务器「开启」按钮。
2)选择缓存系统为「Redis哨兵」,输入状态服务器信息。
字段 | 值 |
---|---|
密码 | Redis 服务的密码,若无则不填写 |
主节点名 | Redis 主节点名称 |
节点管理 | Redis 各个节点的内网 IP 和占用端口 |
ACL | 支持 Redis6.0 的权限管理功能 ACL 如开启 ACL,请输入对应 Redis 用户名 |
3)点击「测试连接并保存」。
2.1.4 腾讯云 Redis
使用前提:
1)请确保「插件管理」中已安装「腾讯云Redis插件」。
2)配置之前请检查各工程节点服务器系统时间是否一致,不一致可能会导致集群不可用及同步问题。
3)请准备好腾讯云Redis的内网IP、占用端口、服务密码。
4)FineReport11.0.22及之后版本,支持Redis6.0的权限管理功能ACL,如需使用,请准备好用户名。
操作步骤:
1)点击状态服务器「开启」按钮。
2)选择缓存系统为「腾讯云Redis」,输入状态服务器信息。
字段 | 值 |
---|---|
主机 | Redis 所在服务器的 IP 地址,请填写内网 IP |
端口 | Redis 的端口,默认为 6379 |
密码 | Redis 服务的密码,若无则不填写 |
ACL | 支持 Redis6.0 的权限管理功能 ACL 如开启 ACL ,请输入对应 Redis 用户名 |
3)点击「测试连接并保存」。
2.2 设置MQ内置
用户可准备 rocketmq 组件,替换 Redis 消息队列一部分功能。
若不配置rocketmq,默认使用redis,无需进行任何操作。
若配置了rocketmq,rocketmq和redis同时生效,负责不同功能。
2.3 设置文件自动同步
文件一致性包含 assets、reportlets、resources、schedule、dashboards、treasures、../backup 这些文件夹。
支持多种文件服务器,各个节点将从文件服务器中读取这些文件内容:FTP、SFTP、HDFS、Minio、S3、共享外部目录(NAS\NFS等)等
注1:「节点间自动同步」不适用于新集群,使用节点间自动同步无法开启集群。该功能只适用于历史已配置该项的集群工程,本文不做赘述。
注2:HDFS 、Minio、S3和共享外部目录均为插件的形式,需要安装插件方可配置使用。
详情请参见:HDFS资源仓库插件、MinIO资源仓库插件、S3资源仓库插件、共享外部目录插件
2.3.1 FTP 协议
注:配置文件服务器时,协议若选择 FTP ,增加小图标,悬浮提示:建议使用更安全的协议 SFTP 。
点击「编辑」,进入设置界面,进行相应的文件服务器配置,点击「测试连接并保存」,如下图所示:
字段 | 值 |
---|---|
协议 | FTP |
编码 | Linux 系统默认 UTF-8,windows 系统默认 GBK |
主机 | 服务器地址 |
端口 | 服务器端口号,FTP默认 21 |
用户名 | 服务器用户名 |
密码 | 服务器密码 |
传输模式 | 默认选择被动模式 注:若用户在升级至 2020-07-08 版本之前已经配置了主动模式,则默认选择主动模式。 主被动传输模式介绍可参见:FTP 主动模式和被动模式区别 |
路径 |
注1:在集群开启条件下,可以切换主被动模式,不会影响系统正常运行,点击测试连接并保存就可以保存配置,不需要重启集群。
注2:按照文档部署的 FTP 服务,Linux 系统填写绝对路径,如用户名为 ftpuser ,那么路径为 /home/ftpuser/WEB-INF,Windows 系统填写相对路径 /WEB-INF 即可。
2.3.2 SFTP 协议
点击「编辑」,进入设置界面,进行相应的文件服务器配置,点击「测试连接并保存」,如下图所示:
字段 | 值 |
---|---|
协议 | SFTP |
编码 | Linux系统默认UTF-8,windows系统默认 GBK |
主机 | 服务器地址 |
端口 | 服务器端口号,SFTP默认22 |
用户名 | 服务器用户名 |
密码 | 服务器密码 |
路径 |
注1:要求使用启动中的 FTP/SFTP 服务器,账号须具备配置路径的读写权限。
注2:如果是 SFTP 密钥登录,无需要用户名密码,不填即可,但要点击密码后面的图标上传密钥文件。
注3:配置 SFTP 路径的时候,路径填写绝对路径,为 WEB-INF 文件夹的路径。
2.3.3 HDFS 协议
HDFS 作为文件服务器,可以保证模板等资源文件分布式存储,实现高可用。详细查看插件使用文档 HDFS 资源仓库
不管使用哪种服务作为文件服务器,配置完毕后,点击「测试连接并保存」,若无异常则可保存成功。
2.3.4 其他说明
若集群第一个节点启动过程中尝试连接文件服务器失败,则会进入部署向导页面,详情请参见:集群组件出错优化
使用文件服务器时,想要手动增删改模板都需要在文件服务器下进行操作, 节点下的 assets、reportlets、resources、schedule、dashboards、treasures、../backup是没有作用的;
从文件服务器切换至「节点间同步」时,需要重启集群工程所有节点方可生效,若不重启则不生效。
2.4 设置通信协议
TCP 和 UDP 是常用的网络传输协议,默认选用 TCP 协议。
开启集群状态下可以切换集群通信协议,不过重启工程后方可生效。
注1:如果开启集群后只显示本工程的节点,请更换集群连接方式,并重启各节点工程。
注2:阿里云、AWS 等云服务器不允许 UDP 组播方式,集群连接方式请选择 TCP。
3. 管理节点
3.1 开启/关闭集群
3.1.1 开启集群
状态服务器和外置数据库是开启集群的前置条件,若未配置外置数据库,则参考文档进行配置:配置外接数据库
11.0.7及之后版本,禁止在节点间同步模式下开启集群。
未配置无法开启的弹窗提示:
配置完毕正常开启的弹窗提示:
3.1.2 关闭集群
当我们成功开启集群并使用时,若想关闭集群,可以直接点击按钮就行关闭,不过关闭状态在重启后方可生效。
3.2 重启工程出现第一个节点
当我们开启集群按钮,并重启工程后,可以看到节点管理界面出现一个节点,并且当我们选用的是「节点间自动同步」时,第一个加入集群的节点会作为文件同步基准节点,若选用的是「文件服务器共享」,则不会出现文件同步基准节点标签。
需要强调的是:
1)选用的是「节点间自动同步」时,如果想手动变更节点下的资源文件(assets、reportlets、resources、schedule、dashboards、treasures、../backup ),则需要在基准节点下进行变更,增删改动作会自动同步至其他非基准节点。对应非基准节点下的资源文件变动操作,不会生效。
2)基准节点一旦选出后,默认不会变动。若想重置基准节点,可参考以下两种方法:
方法一:2020-04-26 及之后 JAR
鼠标悬浮在前端非基准节点的左上角,可点击「设为基准节点」进行基准节点的切换。如下图所示:
注1:仅在非节点编辑模式下显示该按钮。切换实时生效,即点击按钮后当前节点显示为「文件同步基准节点」。
注2:如果切换失败会弹出提示框信息:基准节点切换失败,请稍后重试。
方法二:
可以关闭集群并重启工程后,再开启集群,基准节点即可重置,重置逻辑还是选择集群开启后第一个加入集群的节点为基准节点。
3.3 增加节点
注:一个工程即一个节点信息。
当第一个节点出现后,就可以将第一个节点%FR_HOME%\webapps\webroot\WEB-INF文件夹拷贝到其他服务器相同文件路径下,然后启动这些服务器,新的节点就会加入节点管理了,如下图所示:
3.4 修改节点信息
使用 Tomcat、Weblogic 容器时,集群开启后可以自动识别容器端口,对于 WAS 集群,暂时不支持自动识别端口,端口默认为58312,需要修改每个节点的端口为实际端口。
鼠标划到节点信息处,右上角出现编辑按钮,点击可编辑修改节点名称、IP 及端口信息,如下图所示:
3.5 节点异常
节点与非协调者通信异常则会标红,节点标红提示如下图所示:
注:Jgroups 协调者是一般表现为每个集群第一个加入的成员的节点, 额外处理一些普通节点无法处理的事件, 但其不对外暴露。
3.6 刷新缓存
使用「文件服务器共享」并且开启缓存时,节点管理界面会出现「刷新缓存」的按钮。
若我们开启缓存后,有手动在文件服务器下增删改文件的情况,缓存层是无法感知到的,需要手动刷新缓存。
「节点间自动同步」模式下可以自动感知到节点下的文件变动情况,因此无须刷新缓存,因为也不会显示「刷新缓存」的按钮。
刷新缓存成功和失败会有弹窗提醒:
3.7 重启集群工程
1)「文件一致设置」中若选择节点间同步,关闭所有工程后,先启动基准节点,再启动其他节点。
2)「文件一致设置」中若未选择节点间同步,关闭所有工程后,依次启动工程即可。
注:关闭和重启部署在不同容器下的 FineReport 工程方法,可参见:关闭FineReport工程
4. 设置异常提醒
4.1 开启异常提醒
开启异常检测提醒功能,点击「全局设置」按钮设置提醒方式,比如勾选「短信提醒」、「平台消息」、「邮件提醒」,设置完成后点击保存即可,默认全不开启。如下图所示:
4.2 前置条件
1)短信:需要开启短信平台,详细点击 短信
2)邮件提醒:需要配置邮件服务器,详细点击 邮箱
3)平台消息:需要在负载均衡层面配置websocket端口并且开放,相关文档:Websocket端口被占用/无法使用
5. 注意事项
1)集群各个节点的 JAR 包是不会自动同步的,手动升级时需要分别替换各个节点的 JAR 包。
2)通过平台安装的插件可以自动分发到各个节点,在插件目录 plugins 下手动放置的插件包不会自动同步,需要在各个节点都手动操作放置。
3)集群推荐使用私有云的授权方式,不用关心维护多个节点 license。
4)各个节点存储自己的日志(方便某节点出错快速找到其原因)。
5)若设计器远程设计切换到某个节点之后,当服务器断开连接,远程提示离开集群环境的响应弹窗出现速度比较慢,此问题在后续会进行优化。
6)在使用过程中,状态服务器、文件服务器等组件出现问题导致工程无法访问时, 不会自动切换成节点内存、节点间同步,将主动进行消息提示;重启过程中,若状态服务器、文件服务器连接失败,将进入部署向导页面,可修改相关配置。
7)集群内部通信支持 ipv6。
8)支持状态服务器和文件服务器校验主机IP,不可为空。
6. 常见错误
6.1 Excel 上传失败
6.1.1 问题描述
Excel 上传失败,关键报错信息如下:
Write failed!
Failed to write file /var/ftp/finebi/WEB-INF/assets/temp_attach/MapCache1578448427935_685
Permission denied
6.1.2 原因分析
Excel 和图片文件存储所在位置的 FTP 用户名与文件夹用户名不一致。
6.1.3 解决方案
将 Excel 和图片文件存储所在位置(WEB-INF\assets\temp_attach)的用户改为文件夹用户,或者将文件夹用户改为 Excel 和图片文件存储所在位置的用户,即两个地方的用户名需要保持一致。文件夹用户在决策平台的「管理系统>智能运维>集群配置>文件一致设置」处修改,如下图所示:
6.2 目录不稳定
6.2.1 问题描述
集群环境下登录报表工程,刷新会导致某些报表消失,再次刷新又恢复。
6.2.2 原因分析
集群需要开放一些 TCP 通信协议端口,如7850。部分插件加载自己的表,需要 hibernate 重新更新二级缓存,导致 DecisionDB 启动两次,需要用到两个端口,7850和7851(最后会一直用7851)。但是如果防火墙未开启7851,会导致集群通信异常,目录显示异常。
6.2.3 解决方案
出现类似情况时,工程启动后可以先使用 netstat -ntpl 命令查看启动端口情况(也可以查看日志搜索关键字“__DB_CACHE:DecisionDB:”,看后面的 “physical address=”值最大的那个),注意下 785X ,然后使用 curl (其他命令也行,能 ping 端口就好) ,看看 785X 此端口是否能 ping 通,以检查是否是端口没开全而产生的。未开通的端口需要全部开通。