概述
运维平台需要部署在一台服务器上,本文详尽的介绍该服务器必须满足的资源要求。
服务器数量
由于虚拟机自身的特性,会存在资源竞争等情况,可能导致出现预期外的系统故障,因此不建议在虚拟机中部署运维平台。
运维平台类型 | 建议 |
---|---|
标准版 | 建议运维平台独占 1 台服务器 即服务器中仅部署FineOps运维平台,不部署其他应用或帆软项目,此时可以确保运维的独立性 |
基础版 | 运维平台可与帆软单节点项目共用 1 台服务器 即服务器上中部署运维平台和 1 个帆软单机应用,此外不部署其他内容 |
确保未安装Docker
部署运维平台时,finekey工具会自动安装docker。
请确保运维平台所在服务器,是纯净的环境,未预安装docker。否则可能由于版本和权限问题,导致运维平台部署失败。
执行命令:docker version
若无返回值,代表未安装docker
若返回版本号,则代表安装了docker。请卸载docker或更换服务器。
确认操作系统
配置 | 要求 |
---|---|
操作系统类型 | Linux |
操作系统架构 | X86_64 |
操作系统内核 | 3.10版本及以上 |
操作系统软件 | 推荐:Ubuntu 22 版本 支持: Ubuntu 18.04.4 及以上版本(不支持 Ubuntu20.04 版本 ) CentOS 7.3~7.9 版本 redhat 7.6 及以上版本 Rocky Linux 8.8~9.4版本 注:CentOS操作系统目前已停止服务,因此帆软优先推荐使用Ubuntu操作系统 使用Ubuntu操作系统时,请注意检查用户权限(默认root用户不是超管) |
确认资源配置
部署运维平台的服务器应当满足下表条件:
配置 | 要求 |
---|---|
CPU | 最低4核 |
根目录剩余 空闲磁盘大小 | 1G |
安装目录剩余 空闲磁盘大小 | 以下两者,取较大值为配置要求: 1)服务器中存在一个分区剩余可用空间,推荐大于 200G ,最低 100G 注:如准备全新磁盘,建议至少120G。因为系统会占用部分空间,导致剩余不足100G 2)如对接的运维项目较多,请根据项目日访问量额外增加运维平台磁盘。日访问量5w/2个工程节点,对应100G磁盘 注:可使用命令「df -h」查询磁盘空间,必须要有任一分区满足条件,不可将分区容量加和 |
剩余空闲 物理内存 | 标准版-独占服务器:建议16G以上,最低12G 标准版-非独占服务器:16G以上 基础版:4G以上 如对接的运维项目较多,超过10个工程节点(集群按照主应用节点数计算)。每多1个工程节点,需要额外增加100M内存 |
外网带宽 | ≥5MB/S |
之所以需要上表的配置,是因为FineOps运维平台的每个组件,有最低运行配置要求,如下表所示:
组件 | CPU使用上限 | 内存使用上限 | 内存配置xmx |
---|---|---|---|
ops | 2Core | 3G | 2G |
nginx | 1Core | 1G | - |
ops-agent | 1Core | 1G | 512M |
pushgateway | 1Core | 0.5G | - |
prometheus | 1Core | 1G | - |
grafana | 1Core | 1G | - |
alertmanager | 1Core | 1G | - |
elasticsearch | 1Core | 4G | 2G |
skywalking_oap | 1Core | 3G | 2G |
registry | 1Core | - | - |
确认端口空闲
运维平台中存在很多组件,部分组件的端口需要映射到宿主机,占用服务器端口运行。
在部署前,请确保默认的映射端口是否已被使用,如已被使用,请安排好其他空闲端口。
注1:端口占用检查和防火墙放行方法请参考:端口占用检查与防火墙配置
注2:ops、pushgateway、prometheus、grafana、alertmanager组件无需预留相关服务器端口,因为这些组件的容器端口不映射到宿主机。
组件 | 默认端口 |
---|---|
nginx | 即用户访问运维平台时所用端口 root用户部署:80 非root用户部署:8090 |
ops-agent | 9071 |
elasticsearch | 9200 |
skywalking_oap | 11800、12800 |
registry | 5000 |
注3:如不使用上表的默认端口,选择自备端口。请注意避开以下端口:
类型 | 原因 |
---|---|
非root用户无法使用的端口 | 如使用非root用户进行安装,请勿准备1024以下端口 在Linux系统中,非root用户只能使用1024及以上端口 |
Chrome浏览器非安全端口 | Chrome浏览器会将以下端口设别为非安全端口,以防止潜在的安全威胁 请勿使用以下端口,如使用这些接口,会导致Chrome浏览器无法访问运维平台 1、7、9、11、13、15、17、19、20、21、22、23、25、37、42、43、53、69、77、79、87、95、101、102、103、104、109、110、111、113、115、117、119、123、135、137、139、143、161、179、389、465、512、513、514、515、526、530、531、532、540、548、554、556、563、587、601、636、989、990、993、995、1719、1720、1723、2049、3659、4045、5060、5061、6000、6566、6665、6666、6667、6668、6669、6697、10080 注:由于Chrome仍在不断更新中,非安全端口清单可能会出现更新,最新端口请参考 Chrome官方文档 |
确认网络互通
为了确保用户可以正常访问运维平台,为了确保运维平台可以正常部署和监测运维项目。
服务器需要对外开放一些端口,供不同场景使用。
注:端口占用检查和防火墙放行方法请参考:端口占用检查与防火墙配置
外网与运维平台
作用 | 外网 | 关系 | 运维平台 |
---|---|---|---|
管理员访问运维平台 | 运维人员 任意IP | 访问-> | 运维平台的 nginx 负载均衡 默认端口为:
|
运维平台拉取云端仓库镜像 | 帆软云端镜像仓库 fineops-registry.cn-hangzhou.cr.aliyuncs.com:443 | <-访问 | registry 5000 |
运维平台与运维项目
作用 | 运维平台 | 运维项目 | |
---|---|---|---|
基础运维 | 运维平台的 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配置项
注:禁止直接使用/、/usr、/root、/usr/local四个目录,作为dataRootPath
3)清空ACL规则
ACL用于精细化地控制不同用户或用户组对文件和目录的访问权限。
如果准备的挂载目录配置了ACL规则,部署完成后,docker的data-root目录会自动继承ACL配置,从而导致各种各样的权限问题,比如容器无法启动等。
因此建议移除挂载目录的所有 ACL 条目,仅保留传统的 UNIX 权限(请修改/home/fanruan为你的安装目录)。
setfacl -b /home/fanruan/
确认用户权限
优先超管部署
优先推荐使用用户id为0且名叫root的用户上传、解压、运行FineKey容器化部署工具。
注1:用户id为0但不叫root的用户,不支持部署,请更名为root
注2:Ubuntu操作系统,默认的root用户并非超管用户,请务必再次确认所准备的用户是否满足下方用户权限
普通用户权限
如需使用普通用户进行部署,请确保该用户拥有以下权限。
注1:为什么需要这些权限,请参考:Linux用户权限说明
注2:部署运维平台时,会自动在目标服务器创建docker环境,并将该用户加入docker用户组中。
但是在部署成功后,必须关闭终端会话,重新打开终端连接服务器,方可使用户组生效,进行docker命令查询等操作。
分类 | 权限要求 |
---|---|
finekey存放位置权限 | 运维平台部署,需要依赖finekey部署包,用户届时需要将finekey部署包上传到服务器并解压执行
chown -R 用户名 /finekey存放位置绝对路径
chmod -R 755 /finekey存放位置绝对路径 |
运维平台安装目录权限 | 安装运维平台时,需要在运维平台安装目录新增、编辑文件
chown -R 用户名 /运维平台安装目录绝对路径
chmod -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:/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 |
关闭SELinux
SELinux 是 Linux 内核中的一个安全模块,通过强制访问控制机制来严格限制程序和用户对系统资源的访问。
在 SELinux 开启的情况下,可能会影响通过 systemctl 命令以服务方式启动 Docker 。
为确保 finekey 部署顺利进行,请在执行部署前先关闭 SELinux 。
查看SELinux状态 | 命令:
返回值:
如返回值为Enforcing,则需要手动关闭SELinux |
关闭SELinux | 1)临时关闭SELinx
将SELinux从强制模式切换到宽容模式,无需重启服务器立刻生效 2)永久关闭SELinux(可选,需重启Linux服务器生效)
将SELinux禁用,重启服务器后更改方可生效 3)注意事项 如果是在执行了./finekey命令卡住后,再参考上文关闭SELinux,那么需要杀死相关进程方可再次执行./finekey进行部署
此时即可再次执行./finekey进行部署 |