概述编辑
运维平台需要部署在一台服务器上,本文详尽的介绍该服务器必须满足的资源要求。
服务器数量编辑
运维平台类型 | 建议 |
---|---|
标准版 | 建议运维平台独占 1 台服务器 即服务器中仅部署FineOps运维平台,不部署其他应用或帆软项目,此时可以确保运维的独立性 |
基础版 | 运维平台可与帆软单节点项目共用 1 台服务器 即服务器上中部署运维平台和 1 个帆软单机应用,此外不部署其他内容 |
确保未安装Docker编辑
部署运维平台时,finekey工具会自动安装docker。
请确保运维平台所在服务器,是纯净的环境,未预安装docker。否则可能由于版本和权限问题,导致运维平台部署失败。
执行命令:docker version
若无返回值,代表未安装docker
若返回版本号,则代表安装了docker。请卸载docker或更换服务器。
确认操作系统编辑
部署普通版本FineOps(支持部署对接普通版本FineReport、FineBI、FineDataLink)
配置 | 推荐 | 支持/最低要求 |
---|---|---|
操作系统类型 | Linux | Linux |
操作系统架构 | X86_64 | X86_64 |
操作系统内核 | 3.10版本及以上 | 3.10版本及以上 |
操作系统软件 | Ubuntu 22 版本 | Ubuntu 18.04.4 及以上版本(不支持 Ubuntu20.04 版本 ) CentOS 7.3~7.9 版本 redhat 7.6 及以上版本 |
确认资源配置编辑
部署运维平台的服务器应当满足下表条件:
配置 | 要求 |
---|---|
CPU | 最低4核 |
根目录剩余 空闲磁盘大小 | 1G |
安装目录剩余 空闲磁盘大小 | 以下两者,取较大值为配置要求: 1)服务器中存在一个分区剩余可用空间,推荐大于 200G ,最低 100G 注:如准备全新磁盘,建议至少120G。因为系统会占用部分空间,导致剩余不足100G 2)如对接的运维项目较多,请根据项目日访问量额外增加运维平台磁盘。日访问量5w/2个工程节点,对应100G磁盘 注:可使用命令「df -h」查询磁盘空间,必须要有任一分区满足条件,不可将分区容量加和 |
剩余空闲 物理内存 | 标准版-独占服务器:建议16G以上,最低12G 标准版-非独占服务器:16G以上 基础版:4G以上 |
之所以需要上表的配置,是因为FineOps运维平台的每个组件,有最低运行配置要求,如下表所示:
组件 | CPU使用上限 | 内存使用上限 | 内存配置xmx |
---|---|---|---|
ops | 2Core | - | - |
nginx | 1Core | - | - |
ops-agent | 1Core | - | 1G |
pushgateway | 0.1Core | 0.1G | - |
prometheus | 1Core | 1G | - |
grafana | 1Core | 1G | - |
alertmanager | 1Core | 1G | - |
elasticsearch | 1Core | - | 2G |
skywalking_oap | 1Core | - | 2G |
registry | 1Core | - | - |
确认端口空闲编辑
运维平台中存在很多组件,组件的运行需要占用服务器端口。
在部署前,请确保默认的映射端口端口是否已被使用,如已被使用,请安排好其他空闲端口。
注:端口占用检查和防火墙放行方法请参考:端口占用检查与防火墙配置
组件 | 默认端口 |
---|---|
ops | 8081 |
nginx | root用户部署:80 非root用户部署:8090 |
ops-agent | 9071 |
pushgateway | 9091 |
prometheus | 9090 |
grafana | 3000 |
alertmanager | 9093 |
elasticsearch | 9200 |
skywalking_oap | 11800、12800 |
registry | 5000 |
确认网络互通编辑
为了确保用户可以正常访问运维平台,为了确保运维平台可以正常部署和监测运维项目。
服务器需要对外开放一些端口,供不同场景使用。
注:端口占用检查和防火墙放行方法请参考:端口占用检查与防火墙配置
外网与运维平台
作用 | 外网 | 关系 | 运维平台 |
---|---|---|---|
管理员访问运维平台 | 运维人员 任意IP | 访问-> | 运维平台的 nginx 负载均衡 默认端口为:
|
运维平台拉取云端仓库镜像 | 帆软云端镜像仓库 fineops-registry.cn-hangzhou.cr.aliyuncs.com:443 | <-访问 | registry 5000 |
运维平台内部
作用 | 运维平台内部组件 | 关系 | 运维平台内部组件 |
---|---|---|---|
请求转发 | 运维平台的 nginx 负载均衡 默认端口为:
| <-访问-> | ops组件 默认端口为:8081 |
运维平台与运维项目
作用 | 运维平台 | 运维项目 | |
---|---|---|---|
基础运维 | 运维平台的 nginx 负载均衡 默认端口为:
| <-访问 | 项目的应用和引擎节点 包括:bi-web/bi-engine-master/bi-engine-worker/fr/fdl |
传输项目的服务器、组件指标信息给运维平台 | 运维平台的 nginx 负载均衡 默认端口为:
| <-访问 | 项目每一台服务器的ops-agent(工程节点+集群组件节点,任何服务器) 默认端口为:9070 |
链路追踪 | 运维平台的skywalking_oap 默认端口为:11800、12800 | <-访问 | 项目的应用和引擎节点 包括:bi-web/bi-engine-master/bi-engine-worker/fr/fdl |
链路追踪 | 运维平台的skywalking_oap 默认端口为:11800、12800 | <-访问 | 项目的 nginx 内网关 默认端口为:
|
从运维平台的镜像仓库拉取组件进行项目部署 | registry 默认端口为:5000 | <-访问 | 应用节点+BI引擎节点+集群组件节点 任何服务器 |
准备安装目录编辑
运维平台安装目录,是将宿主机上必要的FineOps文件与容器中的文件进行关联的方式。用于实现数据持久化、文件快速查看等功能。
1)查看服务器磁盘空间
命令:df -h,找出可用空间较大的挂载点
例如本示例中,服务器最合适的挂载目录为/home目录下
2)新建文件夹
在该目录下,选择合适的位置新建文件夹,作为运维平台的安装目录。
使用 mkdir 命令创建文件夹(本示例在/home目录下创建一个名叫fanruan的文件夹):mkdir /home/fanruan
使用 chmod 命令设置文件夹的权限(本示例直接赋777权限):chmod 777 /home/fanruan
该目录位置/home/fanruan,即为部署运维平台时,finekey.yaml文件中的dataRootPath配置项
确认用户权限编辑
优先超管部署
优先推荐使用用户id为0且名叫root的用户上传、解压、运行FineKey容器化部署工具。
注:用户id为0但不叫root的用户,不支持部署,请更名为root
普通用户权限
如需使用普通用户进行部署,请确保该用户拥有以下权限。
注:部署运维平台时,会自动在目标服务器创建docker环境,并将该用户加入docker用户组中。
但是在部署成功后,必须关闭终端会话,重新打开终端连接服务器,方可使用户组生效,进行docker命令查询等操作。
分类 | 权限要求 |
---|---|
finekey存放位置权限 | 运维平台部署,需要依赖finekey部署包,用户届时需要将finekey部署包上传到服务器并解压执行
chown -R 用户名 /finekey存放位置绝对路径
chmod -R 755 /finekey存放位置绝对路径 |
运维平台安装目录权限 | 安装运维平台时,需要在运维平台安装目录新增、编辑文件
chown -R 用户名 /运维平台安装目录绝对路径
chown -R 755 /运维平台安装目录绝对路径 |
用户的sudo权限 | 必须允许用户在任何主机上以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
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选项 | 确保用户在执行 sudo 命令时不需要 TTY 会话,否则无法通过脚本/远程命令使用sudo
#Defaults: requiretty |