历史版本33 :准备运维平台服务器 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

概述编辑

运维平台需要部署在一台服务器上,本文详尽的介绍该服务器必须满足的资源要求。

服务器数量编辑

由于虚拟机自身的特性,会存在资源竞争等情况,可能导致出现预期外的系统故障,因此不建议在虚拟机中部署运维平台。

运维平台类型
建议
标准版

建议运维平台独占 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 及以上版本

注: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内存

之所以需要上表的配置,是因为FineOps运维平台的每个组件,有最低运行配置要求,如下表所示:

组件
CPU使用上限内存使用上限内存配置xmx
ops2Core3G2G
nginx1Core1G-
ops-agent1Core1G512M
pushgateway1Core0.5G-
prometheus1Core1G-
grafana1Core1G-
alertmanager1Core1G-
elasticsearch1Core4G2G
skywalking_oap1Core3G2G
registry1Core--

确认端口空闲编辑

运维平台中存在很多组件,部分组件的端口需要映射到宿主机,占用服务器端口运行。

在部署前,请确保默认的映射端口是否已被使用,如已被使用,请安排好其他空闲端口。

注1:端口占用检查和防火墙放行方法请参考:端口占用检查与防火墙配置

注2:ops、pushgateway、prometheus、grafana、alertmanager组件无需预留相关服务器端口,因为这些组件的容器端口不映射到宿主机。

组件
默认端口
nginx即用户访问运维平台时所用端口

root用户部署:80

非root用户部署:8090

ops-agent

9071

elasticsearch9200
skywalking_oap

11800、12800

registry5000

注3:如不使用上表的默认端口,选择自备端口。请注意避开以下端口:

类型原因
非root用户无法使用的端口

如使用非root用户进行安装,请勿准备1024以下端口

在Linux系统中,非root用户只能使用1024及以上端口

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 负载均衡

默认端口为:

  • root部署:80

  • 非root部署:8090

  • 配置了SSL:443

运维平台拉取云端仓库镜像

帆软云端镜像仓库

fineops-registry.cn-hangzhou.cr.aliyuncs.com:443

<-访问registry

5000

运维平台与运维项目

作用运维平台
运维项目
基础运维

运维平台的 nginx 负载均衡

默认端口为:

  • root部署:80

  • 非root部署:8090

  • 配置了SSL:443

<-访问

项目的应用和引擎节点

包括:bi-web/bi-engine-master/bi-engine-worker/fr/fdl

传输项目的服务器、组件指标信息给运维平台

运维平台的 nginx 负载均衡

默认端口为:

  • root部署:80

  • 非root部署:8090

  • 配置了SSL:443

<-访问

项目每一台服务器的ops-agent(工程节点+集群组件节点,任何服务器)

默认端口为:9070

链路追踪

运维平台的skywalking_oap

默认端口为11800、12800

<-访问

项目的应用和引擎节点

包括:bi-web/bi-engine-master/bi-engine-worker/fr/fdl

链路追踪

运维平台的skywalking_oap

默认端口为11800、12800

<-访问

项目的 nginx 内网

默认端口为:

  • root部署:80

  • 非root部署:8090

  • 配置了SSL:443

从运维平台的镜像仓库拉取组件进行项目部署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配置项

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用户并非超管用户,请务必再次确认所准备的用户是否满足下方用户权限

普通用户权限

如需使用普通用户进行部署,请确保该用户拥有以下权限。

注:部署运维平台时,会自动在目标服务器创建docker环境,并将该用户加入docker用户组中。

      但是在部署成功后,必须关闭终端会话,重新打开终端连接服务器,方可使用户组生效,进行docker命令查询等操作。

分类
权限要求
finekey存放位置权限

运维平台部署,需要依赖finekey部署包,用户届时需要将finekey部署包上传到服务器并解压执行

  • 对于上传和解压finekey部署包的目标文件夹,请确保用户有执行tar命令的权限,以解压finekey安装包

  • 对于上传和解压finekey部署包的目标文件夹,请指定用户为该文件夹的所有者

chown -R 用户名 /finekey存放位置绝对路径

  • 对于上传和解压finekey部署包的目标文件夹,请确保用户有该文件夹的读写执行权限

chmod -R 755 /finekey存放位置绝对路径

运维平台安装目录权限

安装运维平台时,需要在运维平台安装目录新增、编辑文件

  • 对于上一章准备的运维平台安装目录,请指定用户为该文件夹的所有者

chown -R 用户名 /运维平台安装目录绝对路径

  • 对于上一章准备的运维平台安装目录,请确保用户有该文件夹的读写执行权限

chown -R 755 /运维平台安装目录绝对路径

用户的sudo权限

必须允许用户在任何主机上以root身份使用sudo权限执行后续配置的一些命令

  • 请自行编辑 /etc/sudoers 文件,示例写法如下:请自行修改dev为你的用户名

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


  • 如果仍然权限不足,还可以配置NOPASSWD的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

  • 请自行编辑 /etc/sudoers 文件,注释掉原本的requiretty相关内容

#Defaults: requiretty

关闭SELinux编辑

SELinux 是 Linux 内核中的一个安全模块,通过强制访问控制机制来严格限制程序和用户对系统资源的访问。

在 SELinux 开启的情况下,可能会影响通过 systemctl 命令以服务方式启动 Docker 。

为确保 finekey 部署顺利进行,请在执行部署前先关闭 SELinux 。



查看SELinux状态

命令:

  • getenforce

返回值:

  • Enforcing:强制模式,所有违反SELinux策略的操作都会被阻止

  • Permissive:宽容模式,违反SELinux策略的操作不会被阻止,但会被记录在日志中

  • Disabled:SELinux被禁用,系统不再使用SELinux的安全策略

如返回值为Enforcing,则需要手动关闭SELinux

关闭SELinux1)临时关闭SELinx
  • 命令:sudo setenforce 0

将SELinux从强制模式切换到宽容模式,无需重启服务器立刻生效

2)永久关闭SELinux(可选,需重启Linux服务器生效)

  • 编辑配置文件sudo vi /etc/selinux/config

  • 修改 SELinux 状态:SELINUX=disabled

将SELinux禁用,重启服务器后改方可生效

3)注意事项

如果是在执行了./finekey命令卡住后,再参考上文关闭SELinux,那么需要杀死相关进程方可再次执行./finekey进行部署

  • 手动停止docker:systemctl stop docker

  • 上面这个命令仍然会卡住,中断命令:Ctrl + C

  • 杀死原来卡住的进程:kill -9 $(pidof dockerd)

此时即可再次执行./finekey进行部署