FineBI6.1单机安装教程
- 运维
- 2025-04-15
- 126热度
- 0评论
- 简要说明
- FineBI 是帆软软件有限公司推出的一款商业智能(Business Intelligence)产品
- 定位于自助大数据分析的BI工具,能够帮助企业的业务人员和数据分析师,开展以问题导向的探索式分析
- 官方文档
https://help.fanruan.com/finebi/
14.1 资源选配
-
操作如下
- 指导文档
https://help.fanruan.com/fineops/doc-view-134.html
,参考指标如下
1、业务高可用:存在至少2个bi-web组件,确保某个业务节点宕机时,其他业务节点可替代完成任务 2、日活用户数:每天登录过FineBI系统的用户数量去重,取平均值 3、分析表最大行数:FineBI仪表板中,单个组件调用的单个自助数据集的数据行数,取最大值 4、表数量:FineBI系统中所有表的数量总和(包括数据库表、SQL数据集、Excel数据集、自助数据集等)
- 公共配置要求
# 硬件配置 linux x86_64 内核 3.10版本及以上 2.5GHz及以上 固态硬盘(SSD)- 500G # 支持操作系统 , 官方推荐 Ubuntu 22 版本 Ubuntu 18.04.4 及以上版本(不支持 Ubuntu20.04 版本 ) CentOS 7.3~7.9 版本 redhat 7.6 及以上版本 Rocky Linux 8.8~9.4版本 # 磁盘类型 XFS - 官方推荐,理由:bi-minio组件高可用模式依赖O_DIRECT特性,XFS文件系统支持该特性。 EXT4 - 如上所示,本次仅单机没有使用高可用配置
- 方案简介,仅单机且不考虑部署运维平台
## 方案一 CPU16核、内存64G 日活用户数:0~300 分析表最大行数:0~1kw 表数量:0~2000 随机读写: IOPS(4K)> 1W:磁盘每秒可以执行至少 1w 个以上的 4KB 数据块的读写操作 顺序读写: IOPS(1024K)> 315.5MB/s:磁盘每秒可以传输至少 315.5MB 的数据块 内网带宽: ≥2.5Gbps(312.5MB/s) 外网带宽: ≥50Mbps(6.25MB/S)按需,一般用内网然后代理转发 # 方案二 CPU32核、内存128G 日活用户数:0~600 分析表最大行数:0~1ww 表数量:0~1w 随机读写: IOPS(4K)> 2W:磁盘每秒可以执行至少 2w 个以上的 4KB 数据块的读写操作 顺序读写: IOPS(1024K)> 625MB/s:磁盘每秒可以传输至少 625MB 的数据块 内网带宽: ≥5Gbps(625MB/s) 外网带宽: ≥100Mbps(12.5MB/S) 按需,一般用内网然后代理转发
- 综合实际选定配置
# 根据大数据侧同事反馈及结合体验环境资源消耗情况 日活用户数:受登录账号量限制,0~250 分析表最大行数:帆软预览有限制5千行,查询压力大部分会交给holo数据库,有把数据拉到帆软数据库的场景,最大考虑 5kw~10kw 表数量:3k~5k
综上,服务对内存需求较高,对于cpu的需求不高,因此可选择 8-64 或者 16-64 的资源配置 - 指导文档
14.2 FineBI 部署
-
注意事项
- FineBI 安装路径不可包含中文,否则会启动失败
- JDK 1.8 且小版本需在 JDK8u102 以上
- 建议使用新购服务器,若不是新服务器需确保以下端口不被占用
48888 30266 8090 14496 8000 8001 8002 12100 37799 25655 22931
14.2.1 准备安装包
-
操作如下
- 下载安装包
# 访问 FineBI下载页面,在「个人本地试用及其他版本下载>个人本地试用」中,点击下载「Linux版本」 https://www.finebi.com/product/download
- 将安装包
linux_unix_FineBI6_1-CN.sh
上传至服务器
# 路径 /bigdata/package linux_unix_FineBI6_1-CN.sh # 授权 chmod +x linux_unix_FineBI6_1-CN.sh
14.2.2 安装中文字体
-
操作如下
- 查看字体列表
# 如没有命令需安装 yum install fontconfig -y fc-list | grep chinese
-
拷贝本地
window
字体# 路径:C:WindowsFonts ,或者直接从下面共享链接下载 https://pan.baidu.com/s/1MOhYbPJ_p7DM9ARl1m9ewg 提取码: vqzk

-
将以上字体压缩包上传到
/usr/share/fonts
下# tree chinese_fonts chinese_fonts ├── SIMLI.TTF ├── STFANGSO.TTF ├── STKAITI.TTF ├── STXINWEI.TTF ├── STZHONGS.TTF ├── msyh.ttc ├── msyhbd.ttc ├── msyhl.ttc ├── simfang.ttf ├── simhei.ttf ├── simkai.ttf └── simsun.ttc
- 调整配置文件
```shell
# 修改配置 vim /etc/fonts/fonts.conf 在<!-- Font directory list --> 模块将中文字体路径添加进去
# sed -i "/Font directory list/ a <dir>/usr/share/fonts/chinese_fonts</dir>" /etc/fonts/fonts.conf
<dir>/usr/share/fonts/chinese_fonts</dir>
-
刷新内存中的字体缓存运行
# 刷新缓存 fc-cache # 验证是否添加字体成功 fc-list | grep chinese
14.2.3 执行安装
-
操作如下
- 创建安装目录
/bigdata/FineBI6.1
- 执行以下安装操作
# /bigdata/package ./linux_unix_FineBI6_1-CN.sh
- 协议部分一律按回车键
- 选择安装目录
/bigdata/FineBI6.1
- 设置最大jvm内存,57344M 即 56G
- 其他设置
- 安装完成后,到安装目录中将会看到以下文件
[root@hukanfa FineBI6.1]$ ls bin jre lib NOTICE RELEASE-NOTES RUNNING.txt server temp uninstall webapps
补充
:后续调整工程内存分配操作下面配置文件即可
# 调整后需重启工程服务 /bigdata/FineBI6.1/bin/finebi.vmoptions
- 创建安装目录
14.2.4 配置开机自启
-
操作如下
- 前置操作
## 创建日志目录(启动服务也会自动创建) mkdir -p /bigdata/FineBI6.1/logs
- 直接启动
# cd /bigdata/FineBI6.1 /bigdata/FineBI6.1/bin/finebi start
finebi-manager.sh
创建启动脚本
#!/bin/bash # FineBI 可执行文件路径 FINEBI_BIN="/bigdata/FineBI6.1/bin/finebi" # 验证当前用户是否为 hukanfa CURRENT_USER=$(whoami) if [ "$CURRENT_USER" != "hukanfa" ]; then echo "错误: 当前用户为 $CURRENT_USER,必须以 hukanfa 用户运行此脚本!" exit 1 fi # 检查 FineBI 可执行文件是否存在 if [ ! -f "$FINEBI_BIN" ]; then echo "错误: $FINEBI_BIN 不存在!" exit 1 fi # 函数:获取 FineBI 进程 ID get_pid() { pgrep -f "$FINEBI_BIN" } # 函数:启动 FineBI start() { echo "正在启动 FineBI..." "$FINEBI_BIN" start if [ $? -eq 0 ]; then sleep 2 # 等待进程启动 PID=$(get_pid) if [ -n "$PID" ]; then echo "FineBI 启动成功!进程 ID: $PID" echo "$PID" > /bigdata/FineBI6.1/finebi.pid # 写入 PID 文件 else echo "FineBI 启动失败!未找到进程 ID。" fi else echo "FineBI 启动失败!" fi } # 函数:停止 FineBI stop() { echo "正在停止 FineBI..." "$FINEBI_BIN" stop if [ $? -eq 0 ]; then sleep 2 # 等待进程停止 PID=$(get_pid) if [ -z "$PID" ]; then echo "FineBI 停止成功!" else echo "FineBI 停止失败!进程 ID 仍存在: $PID" fi else echo "FineBI 停止失败!" fi } # 函数:重启 FineBI restart() { stop start } # 函数:查看 FineBI 状态 status() { echo "正在检查 FineBI 状态..." PID=$(get_pid) if [ -n "$PID" ]; then echo "FineBI 正在运行,进程 ID: $PID" else echo "FineBI 未运行。" fi } # 函数:强制重新加载 FineBI force_reload() { echo "正在强制重新加载 FineBI..." "$FINEBI_BIN" force-reload if [ $? -eq 0 ]; then echo "FineBI 强制重新加载成功!" else echo "FineBI 强制重新加载失败!" fi } # 函数:直接运行 FineBI(前台) run() { echo "正在直接运行 FineBI(前台)..." "$FINEBI_BIN" run } # 函数:重定向运行 FineBI(前台,输出重定向到日志) run_redirect() { echo "正在重定向运行 FineBI(前台,输出重定向到日志)..." "$FINEBI_BIN" run-redirect } # 主逻辑 if [ $# -eq 0 ]; then echo "用法: $0 {start|stop|restart|status|force-reload|run|run-redirect}" echo "参数说明:" echo " start 启动 FineBI 服务" echo " stop 停止 FineBI 服务" echo " restart 重启 FineBI 服务" echo " status 查看 FineBI 服务状态" echo " force-reload 强制重新加载 FineBI 服务" echo " run 直接运行 FineBI(前台)" echo " run-redirect 重定向运行 FineBI(前台,输出到日志)" exit 1 fi case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; force-reload) force_reload ;; run) run ;; run-redirect) run_redirect ;; *) echo "错误: 未知参数 '$1'" echo "用法: $0 {start|stop|restart|status|force-reload|run|run-redirect}" echo "参数说明:" echo " start 启动 FineBI 服务" echo " stop 停止 FineBI 服务" echo " restart 重启 FineBI 服务" echo " status 查看 FineBI 服务状态" echo " force-reload 强制重新加载 FineBI 服务" echo " run 直接运行 FineBI(前台)" echo " run-redirect 重定向运行 FineBI(前台,输出到日志)" exit 1 ;; esac exit 0
# 启动服务 /bin/bash finebi-manager.sh start # 停止服务 /bin/bash finebi-manager.sh stop # 查看服务状态 /bin/bash finebi-manager.sh status
- 通过 Systemd 服务管理,需要配合 finebi-manager.sh 实现
# vim /etc/systemd/system/finebi.service [Unit] Description=FineBI Service After=network.target [Service] Type=forking User=hukanfa # 请按需修改运行用户 PIDFile=/bigdata/FineBI6.1/finebi.pid ExecStart=/bigdata/FineBI6.1/finebi-manager.sh start ExecStop=/bigdata/FineBI6.1/finebi-manager.sh stop TimeoutStopSec=20s Restart=on-failure [Install] WantedBy=multi-user.target # 重载配置 systemctl daemon-reload # 启动并加入开机自启 systemctl start finebi systemctl enable finebi # 查看服务状态 systemctl status finebi # 重启服务 systemctl restart finebi
(可选)
配置日志轮转(官方程序默认有日志轮转,不用额外配置)
## 创建 logrotate 配置文件 (root权限) vim /etc/logrotate.d/finebi /bigdata/FineBI6.1/logs/*.log { daily # 每天轮转一次 missingok # 如果日志文件不存在,不报错 rotate 15 # 保留最近 15 天的日志 compress # 压缩旧日志(使用 gzip) delaycompress # 延迟压缩,下一次轮转时再压缩 notifempty # 如果日志文件为空,不轮转 create 0644 hukanfa hukanfa # 轮转后创建新文件,并设置权限和所有者 sharedscripts # 在所有日志轮转完成后执行脚本 su hukanfa hukanfa # 以 hukanfa 用户和用户组身份运行 logrotate postrotate # 重启 systemd 服务以确保日志文件重新打开 ,|| true 确保即使命令失败,logrotate 也不会报错 systemctl restart finebi.service > /dev/null 2>&1 || true endscript } ## 测试 logrotate 配置是否正确 -d 选项表示调试模式,不会实际执行轮转,仅输出调试信息 sudo logrotate -d /etc/logrotate.d/finebi ## 补充:关于轮转如何执行 1、logrotate 默认会通过系统的定时任务(cron)自动执行 2、logrotate 定时任务配置在 /etc/cron.daily/logrotate 3、这个脚本会每天执行一次,调用 logrotate 并加载 /etc/logrotate.conf 和 /etc/logrotate.d/ 中的配置
14.3 外接数据库
-
说明
- 对于外接数据库的配置官方文档说明有详细介绍,相关文档地址如下
# 关于外接数据库的整体介绍文档 https://help.fanruan.com/finebi/doc-view-437.html # 关于外接数据库mysql版本的配置要求文档 https://help.fanruan.com/finebi/doc-view-1248.html
- 关于外接数据库的主要信息如下
## BI 内置的数据库为 HSQL 数据库 1、HSQL 数据库不能多线程访问,集群环境、数据量较大可能会导致 HSQL 数据库不稳定的情况,适用于本地试用产品功能 ## 支持数据库类型 RDS MySQL、MySQL、Oracle、SQL Server、DB2、PostgreSQL,下面仅以 MySQL 示例 # mysql 支持以下版本 1、5 系列 5.1.73、5.5.31、5.5.46、5.5.56、5.5.62、5.6.22、5.6.28、5.6.31、5.6.35、5.6.37、5.6.44 5.7.16、5.7.23、5.7.26、5.7.33 2、8 系列 8.0.11、8.0.16、8.0.20、8.0.21、8.2
-
操作如下
MySQL8.0
- 数据库默认字符集为 utf8 ,默认排序规则为 utf8_bin,官方文档提示不支持 utf8mb4 编码
- 大小写敏感,综上要求需调整mysql配置文件以下配置
# conf/my.cnf character-set-server = utf8 collation-server = utf8_bin lower_case_table_names = 0
- 启动服务
## 提供 Mysql 的 docker-compose 工程压缩包,注意按需调整初始 root 密码,conf/mysql.env # https://pan.baidu.com/s/18YpU_LFR4X0KTdwaoIXOxw 提取码: a1dx docker-compose up -d
- 创建FineBI工程所需数据库用户及数据库
# docker exec -it mysql8.0 mysql -uroot -p 回车输入密码 CREATE USER 'finebi_rw'@'%' IDENTIFIED BY 'Vp3k5eI&L%'; create database finebi CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL ON finebi.* TO 'finebi_rw'@'%'; flush privileges;
- 至此,外接数据库部分准备完毕
14.4 初始化配置
-
操作如下
- 启动后,还需要访问界面进行一些初始配置,访问地址
http://IP:37799/webroot/decision
- 设置管理员账号信息
- 点击下一步,进行外接数据库的配置
- 启动后,还需要访问界面进行一些初始配置,访问地址
14.5 Nginx 配置
-
操作如下
finebi.xxx.com.conf
server { listen 80; listen 443 ssl; # websocket转发 listen 48889 ssl; server_name finebi.xxx.com; include allow_list.conf; ssl_certificate certs/xxx.com.crt; ssl_certificate_key certs/xxx.com.key; access_log logs/finebi61_access.log qlmain; error_log logs/finebi61_error.log error; # 正常接收和处理带下划线的请求头 underscores_in_headers on; # 不收录 location /robots.txt { root /usr/local/nginx/html; index index.html; } location ~ ^/(webroot/websocket|socket.io) { proxy_pass http://192.168.26.21:48888; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 600s; proxy_send_timeout 600s; } location / { proxy_pass http://192.168.26.21:37799; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 60s; proxy_send_timeout 120s; proxy_read_timeout 120s; proxy_next_upstream_timeout 10s; proxy_next_upstream_tries 3; } }
- 关于
underscores_in_headers
参数说明
1、默认情况下,Nginx 会忽略请求头名称中包含下划线(如 X_Custom_Header)的字段(视为无效头),即默认值 off 2、Finebi移动端h5是通过header里的public_link_token参数进行检验的,默认忽略,所以需要配置为on
- 关于
websocket
转发,以下监控功能用到。请求端口配置 48889,转发端口 48888 不能配其他的端口。
14.6 环境迁移
-
说明
- 企业一般在接入帆软工程前,会安装测试版本体验,之后需将测试数据相关信息迁移到正式环境
- 当然,也可以将当前测试环境当正式用。但不巧的是本次测试环境装在内网物理机上,因此需要迁移
- 非容器化迁移官方指导文档,不过下面的操作多少没有按照官方文档步骤来,总体上是一样的
https://help.fanruan.com/finebi/doc-view-68.html https://help.fanruan.com/finebi/doc-view-383.html
- 迁移整体流程
1、迁移数据库,将测试实例数据迁移到新服务器上空闲的 mysql02 2、在新服务器运行新的BI工程环境,配置数据库为 mysql01 且完成所有初始配置 3、将测试环境的 webroot 打包迁移到新服务器相同路径下,新服务器原 webroot 目录重命名让出位置 4、调整测试拷贝过来的 webroot 相关配置文件,保证相关路径在测试和新服务器一致,若不一致就更新路径(若都一致就跳过本步骤) 5、启动BI工程,进行功能及数据验证
- 服务器规划如下
## 体验版服务器 192.168.26.20 /data/FineBI6.1 ## 新服务器(正式环境) - 需创建同版本的新BI工程 192.168.26.21 /bigdata/FineBI6.1 mysql01 finebi_rw Vp3k5eI&L% 3307 # 新工程配置的数据库 mysql02 finebi_rw Vp3k5eI&L% 3308 # 同步体验工程的数据库
14.6.1 数据库迁移
-
操作如下
- 官方指导文档参考
https://help.fanruan.com/finebi/doc-view-1249.html
- 登陆
测试体验版BI工程
,在 管理系统 -> 系统管理 -> 常规 -> 常规参数 修改外接数据库配置为 mysql02
14.6.2 工程目录迁移
-
操作如下
- 将体验版工程目录打包,上传到新服务器
# 体验 /data/FineBI6.1/webapps tar -zcvf webroot_test.tar.gz ./webroot # 上传到生产 scp ./webroot_test.tar.gz hukanfa@192.168.26.21:/bigdata/FineBI6.1/webapps # 重命名生产新部署的工程名字,让出位置 /bigdata/FineBI6.1/webapps mv webroot webroot-init # 解压体验版压缩包 tar -zxvf webroot_test.tar.gz
- 调整相关配置文件工程目录路径
若迁移前后路径一致则跳过
# 调整1 注意:文件名称会有所不同的,请根据实际情况找出对应的文件,如通过关键词过滤等 sed -i 's#/data#/bigdata#g' ./assets/check/fa58e19f6018671123bb40fc2f3c3339684f21cb591833c34be45c0d67dbbc37_InspectionReport_20250113-144312.html # 调整2 sed -i 's#/data#/bigdata#g' ./assets/check/fa58e19f6018671123bb40fc2f3c3339684f21cb591833c34be45c0d67dbbc37_InspectionReport_20250113-144312.json # 调整3 sed -i 's#/data#/bigdata#g' /bigdata/FineBI6.1/webapps/webroot/bi-data/polars/worker/conf/polars_log.xml # 调整4 sed -i 's#/data#/bigdata#g' /bigdata/FineBI6.1/webapps/webroot/bi-data/polars/master/conf/polars_log.xml
- 完成上述操作后,重启finebi服务,查看生产环境 /data 下是否有 FineBI6.1 目录生成
- 若没有则代表路径调整成功,至此整个工程迁移操作结束!