概述编辑
运维平台支持部署FineBI6.1项目。
本文按照抽取数据为主的情况进行推荐。如FineBI工程全部使用直连数据,可适当缩小worker节点内存,将bi与worker节点的xmx配置互换,其他保持不变。
用户必须先确保服务器满足最低配置要求,然后按照工程的数据量和日活用户数,选择合适的部署方案,确认最佳节点内存CPU要求。
节点说明:
节点 | 说明 |
---|---|
BI | BI业务节点 |
Master | 引擎元数据节点 |
Worker | 引擎计算节点 |
MinIO | 数据存储节点 |
最低配置编辑
基础配置
配置 | 最低要求 | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
操作系统类型 | Linux | |||||||||||||||||||||||||||||||||||
操作系统架构 | X86_64 | |||||||||||||||||||||||||||||||||||
操作系统内核 | 3.10版本及以上 | |||||||||||||||||||||||||||||||||||
操作系统软件 | 推荐: Ubuntu 22 版本 支持: Ubuntu 18.04.4 及以上版本 CentOS 7.3~7.9 版本 redhat 7.6 及以上版本 | |||||||||||||||||||||||||||||||||||
基础配置 | 1)准备 2 台全新服务器,用于部署FineBI项目 额外有 1 台服务器,用于部署FineOps运维平台(非FineBI资源,仅列入下表方便理解) 可使用命令「df -h」查询磁盘空间,必须要有任一分区满足条件,不可将分区容量加和
可使用命令「df -h」查询磁盘空间,必须要有任一分区满足条件,不可将分区容量加和
| |||||||||||||||||||||||||||||||||||
CPU主频 | 最低2.5GHz | |||||||||||||||||||||||||||||||||||
磁盘类型 | XFS 如不使用XFS,会出现磁盘未满,但无法写入数据的情况 | |||||||||||||||||||||||||||||||||||
磁盘性能 | 最小持续传输速率≥400MB/s:磁盘每秒可以传输至少 400MB 的数据 随机读写 IOPS(4K)> 2W:磁盘每秒可以执行至少 2w 个以上的 4KB 数据块的读写操作 顺序读写 IOPS(1024K)> 315.5MB:磁盘每秒可以传输至少 315.5MB 的数据块 | |||||||||||||||||||||||||||||||||||
内网时延 | <1ms | |||||||||||||||||||||||||||||||||||
服务器带宽 | ≥2.5Gbps(312.5MB/s) |
用户权限
在部署项目时,需要提供服务器用户名称与密码,用于项目的部署和运行。请提前确认服务器用户的权限是否满足需求。
优先推荐使用root超管用户进行项目部署和运行
如需使用非超管root用户进行项目的部署和运行,至少需要拥有以下权限:
权限名 | 使用场景 |
---|---|
sh | 用于一次性执行多个需要sudo权限的命令 |
echo sed cp sysctl | 用于修改一些配置文件和内核参数,主要用于修改/etc/sysctl.conf 如果这些参数已经配置成了目标值,只会令这些参数生效,不会再去修改文件 例如:vm.max_map_count、net.bridge.bridge-nf-call-iptables、net.ipv4.conf.all.forwarding、net.ipv4.ip_forward、vm.overcommit_memory |
swapoff | 用于关闭交换空间,提高性能 |
rm | 部署失败或其他场景下,用于清理残留文件 |
kill | 让docker进程热加载配置文件 |
mkdir chown | 安装docker和组件 docker临时安装在用户的home目录,最终安装在/usr/bin目录 docker数据和组件安装在前台填写的项目挂载目录 |
groupadd gpasswd | 添加docker用户组,并将当前用户添加到docker用户组中 |
modprobe | docker网络通信需要加载br_netfilter模块 modprobe命令只在br_netfilter模块未加载时需要 |
systemctl | 配置docker service启动 |
sudo | 使用sudo -l 检测某个命令是否有sudo权限时,sudo本身也要用sudo执行 |
权限配置说明:请自行编辑 /etc/sudoers 文件,确保满足以下两项
步骤 | 说明 |
---|---|
修改用户的sudo权限 | 自行修改dev为你的用户名 1)允许用户"dev"在任何主机上以root身份使用sudo权限执行后续配置的命令 dev ALL=(root) /bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo 2)如果仍然权限不足,还可以配置NOPASSWD的sudo权限(自选) dev ALL=(root)NOPASSWD: (root) /bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo |
对用户禁用requiretty选项 | 注释掉原本的requiretty相关内容 确保 dev 用户在执行 sudo 命令时不需要 TTY 会话,否则无法通过脚本/远程命令使用sudo #Defaults: requiretty |
sudoers 文件示例:(本文件仅作为示例,请勿直接拷贝覆盖,请逐一参考上文修改)
# User privilege specification root ALL=(ALL:ALL) ALL # Defaults requiretty # Allow dev user to run specific commands as root dev ALL=(root) /bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo |
推荐配置编辑
本节根据常见日活用户数量和表数量,给出推荐的部署方案和服务器配置。
注1:运维平台部署的FineBI项目,强制部署1个Master节点,bi与worker节点均衡部署(1:1/1:2),无法自定义节点数配比。
注2:如果需要配置读写分离,引擎节点数需要额外增加,服务需要高可用,至少保证节点数≥2
日活登录 用户数量 | 表数量 (基础表+分析表) | 部署方案 | 服务器配置 (如资源不足,组件服务器可与ops服务器共用) |
---|---|---|---|
<100 | 1万张表 1k万行数据 | 1bi-web 1worker 1master 1bi-minio | 主应用服务器: 1台,16c64g ,部署「1bi+1worker+1master+1bi-minio」 组件服务器(可共用ops服务器): 1台,8c32g,部署「Nginx+配置库+ES+集群组件」 |
200 | 1万张表 1k万行数据 | 2bi-web 2worker 1master 1bi-minio | 主应用服务器: 1台,16c64g,部署「1bi+1worker+1master+1bi-minio」 1台,16c64g,部署「1bi+1worker」 组件服务器: 1台,8c32g,部署「Nginx+配置库+ES+集群组件」 |
500 | 1万张表 1k万行数据 | 2bi-web 2worker 1master 1bi-minio | 主应用服务器: 1台,24c96g,部署「1bi+1worker+1master+1bi-minio」 1台,24c96g,部署「1bi+1worker」 组件服务器: 1台,12c48g,部署「Nginx+配置库+ES+集群组件」 |
1K | 1万张表 1k万行数据 | 2bi-web 2worker 1master 1bi-minio | 主应用服务器: 1台,32c128g,部署「1bi+1worker+1master+1bi-minio」 1台,32c128g,部署「1bi+1worker」 组件服务器: 1台,16c64g,部署「Nginx+配置库+ES+集群组件」 |
2K | 5万张表 1亿行数据 | 3bi-web 3worker 1master 1bi-minio | 主应用服务器: 1台,48c192g,部署「1bi+1worker+1master+1bi-minio」 1台,48c192g,部署「1bi+1worker」 1台,48c192g,部署「1bi+1worker」 组件服务器: 1台,24c96g,部署「Nginx+配置库+ES+集群组件」 |
4K | 10万张表 1亿行数据 | 3bi-web 3worker 1master 1bi-minio | 主应用服务器: 1台,64c256g,部署「1bi+1worker+1master+1bi-minio」 1台,64c256g,部署「1bi+1worker」 1台,64c256g,部署「1bi+1worker」 组件服务器: 1台,32c128g,部署「Nginx+配置库+ES+集群组件」 |
之所以需要上表的配置,是因为FineBI项目的每个组件,有最低运行配置要求,如下表所示:
组件 | CPU使用上限 | 内存使用上限 | 内存配置xmx | 磁盘 |
---|---|---|---|---|
bi-web | 16Core | 12G | 8G | 100G |
bi-engine-worker | 16Core | 13G | 2G | 100G |
bi-engine-master | 4Core | 3G | 1.5G | 100G |
bi-minio(数据存储) | 2Core | - | - | 200G |
ops_agent(运维组件) | 1Core | - | 1G | - |
filebeat(运维组件) | 0.1Core | 0.1G | - | - |
elasticsearch(日志服务) | 1Core | - | 2G | 50G |
nginx(内网关) | 1Core | - | - | - |
mysql(配置库) | 2Core | - | - | 50G |
redis(状态服务) | 1Core | - | 4G | - |
minio(文件服务) | 1Core | - | - | 100G |