历史版本6 :部署运维平台 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本说明

工具版本
功能变动
FineKey 1.0
-

1.2 应用场景

如需使用运维平台,目前仅支持通过容器化部署方式获取。

服务器部署一直都是比较繁重的运维操作,为了降低部署带来的较高成本,官方上线了容器化部署工具 FineKey 。

工具内置了最新版本的 docker 容器。包含 FR/BI 业务工程的镜像、各类组件镜像、Tomcat 镜像的镜像仓库。

使用该工具可以实现自动化部署,一条命令即可完成所有的部署工作,省心省力又高效。

注:容器化部署工具 FineKey中的FineReport、FineBI工程镜像,均为帆软发布的最新版本。

2. 部署准备编辑

2.1 环境要求

容器化部署工具 FineKey 的运行,对服务器环境有一些要求,如下表所示:

配置要求
系统版本

CentOS 7.3 及以上

Ubuntu 18.04.4 及以上

系统内核

3.10及以上

硬件配置

剩余空闲物理内存:最低 16G

剩余空闲磁盘容量:最低 500G

CPU架构:目前只支持 X64、AMD64

2.2 确认容器端口

运维平台可以安装许多容器,请确认需要安装的容器和容器端口。

  • 请确认容器默认端口是否已被使用,如已被使用,请安排好其他空闲端口。

  • 请确认准备使用的端口是否开放了防火墙、安全组等,确保可连接。

支持部署的容器和容器默认端口如下表所示:

容器
容器用途简介

portMapping    {映射端口:容器内端口} 

注:映射端口可改,容器内端口修改无效

frFR的工程容器,其中不带任何的demo数据非集群{8080: 8080, 12100: 12100}
biBI的工程容器,其中不带任何的demo数据非集群{8080: 8080, 12100: 12100}
node_exporter服务器物理节点的exporter,主要收集物理服务器的各种指标信息,每个物理节点会安装一个node_exporter容器{9100:9100}
mysqlmysql数据库容器,用于FR/BI的外置库,如果部署时没有配置已有外置库,就一定会安装一个mysql容器用于外置库,配置了已有外置库则不会安装3306
mysqld_exportermysql服务的exporter,用于收集mysql的各种指标信息,提供metric数据接口,给到Prometheus那边去收集,最终展示到grafana看板中,如果没有安装mysql容器,或者已有外置库不是mysql,则不会安装该容器{9104:9104}
nginxnginx服务的容器,提供负载转发服务,所有服务的入口,使用都从这个入口访问,root用户部署默认是80端口,非root用户默认是8090端口,强制安装

root用户:{80: 8080}

非root用户:{8090: 8080}

nginx_exporternginx服务的exporter,收集nginx的指标信息,因为nginx强制安装,所以这个也肯定是强制安装的{9113: 9113}
ops运维平台容器,对其他容器进行运维{8081: 8080}
ops_agent主要用于运维平台-容器管理中的功能,agent升级也是该容器完成,是大运维研发自己开发的一个服务,与物理节点绑定,每个物理节点安装一个ops_agent{9070:9070}
grafanagrafana容器,从Prometheus获取数据后做成监控仪表板来展示,loki的日志查询和告警规则也是grafana中的{3000:3000}
alertmanager告警容器,和grafana配合,主要就是告警规则,修改、触发等功能{9093:9093}
lokiloki日志查询的容器,提供日志查询,需要配合promtail容器使用,可以理解为promtail收集日志后loki展示出来{3100:3100}
prometheusPrometheus容器,收集exporter的metric数据,用于给grafana看板展示{9090:9090}
promtail与FR/BI容器绑定,一个FR/BI容器对应一个promtail容器,收集日志用于给到loki,最后在运维平台的日志查询中展示{9080:9080}
redisredis服务的容器,用于FR/BI的状态服务器,集群工程如果没有配置已有的redis,则强制安装一个redis单机容器,也只支持安装Redis单机,单机工程则默认不安装{6379:6379}
redis_exporterredis服务的exporter,收集redis的各种指标信息,和其他exporter一样提供metric给到Prometheus去收集,然后展示到grafana看板,没有安装redis容器,也没有配置已有redis则不会安装exporter,支持对接已有的redis集群{9121:9121}
rocketmq_brokerrocketmq服务的容器,该服务自带两个容器缺一不可,集群工程强制安装,与redis类似,单机则默认不安装,用于FR/BI工程的消息队列实现,FR/BI工程集群配置页面可以配置

{10909:10909}

{10911:10911}

{10912:10912}

rocketmq_namesrvrocketmq服务的容器,该服务自带两个容器缺一不可,集群工程强制安装,与redis类似,单机则默认不安装,用于FR/BI工程的消息队列实现,FR/BI工程集群配置页面可以配置{9876:9876}
rocketmq_exporterrocketmq的exporter,收集rocketmq的指标{5557:5557}

2.3 确认docker状态

1)执行命令:docker version

若安装了docker,则会返回版本。

2)若安装了docker:

执行命令:systemctl status docker

确认docker是running状态

2.4 确认用户权限

运行finekey的用户,必须要有root用户组权限。

3. 上传FineKey编辑

3.1 获取工具

「运维平台」目前仍处于内测阶段。

如需试用运维平台,请填写表单申请:运维平台申请表

或微信扫描下方二维码,进入运维平台产品试用报名入口。

3.2 上传工具

获得工具包后,需要将它上传到 Linux,上传文件的方法请自行查阅相关资料。

本文示例是将工具包上传到了 CentOS 7.6.1810 的 /home/test 路径下,如下图所示:

3.3 解压工具

先使用 cd 命令进入工具包所在文件夹下,再键入如下命令进行解压:

tar zxvf finekey-fr-release11.0.tar.gz


3.4 文件说明

解压后的文件如下表所示:

文件夹/文件
文件说明
finekey/bin运行finekey的可执行文件
finekey/conffinekey.yaml新部署工程应用所需的配置文件
finekey.migrate.yaml迁移配置文件,修改了配置,运行finekey时则优先读取该文件
finekey/resources资源文件

4. 配置yaml文件(非必要步骤)编辑

yaml 文件指的是工具解压目录下 conf 文件夹里的 finekey.yaml,该文件是控制后面整个自动部署流程的。

无任何自备组件的单机部署可不做任何配置,可以直接在当前宿主机本地部署,各个组件使用部署工具自带组件。

但是如果有个性化或特殊的部署需求,可以打开 yaml 文件自行配置,yaml文件的配置需要在启动FineKey之前完成。

yaml 文件里面所有配置项的说明可以移步本文第 3 节查看。

4.1 yaml文件配置建议

1)cluster配置改成true,表示集群工程

2)可在nodes配置前,通过添加语句进行纯净部署。语句prue: xxx

prue值支持三种:

  • false:安装2.2节列举的全部组件

  • true:不安装运维组件,即ops、Prometheus、grafana、alertmanager、loki

  • only-ops:不安装frbi相关组件,即fr、bi、mysql、mysql_exporter、redis、redis_exporter、rocketmq_broker、rocketmq_namesrv、rocketmq_exporter

3)nodes有几个节点则写多少组-ip,port,user,password

如果ssh方式用的是密钥,则password配置注释,新增keypath: 密钥绝对路径/密钥文件

4)无论是否有指定的外接数据库,都建议默认安装内置的mysql5容器,数据库名finedb,用户名root,密码mysql

5)如果没有指定文件服务器、状态服务器以及负载均衡:

finekey.yaml里components中,放开redis的注释,会自动安装单机redis;暂不支持redis集群。

nginx和ftp无需单独配置,会默认安装;其中ftp会用linux自带的sftp,放在挂载目录/fr下。

6)如果有指定的文件服务器,状态服务器以及负载均衡,则放开代码中existingComponets部分

7)如果自备redis集群组件,则放开existingComponets中redis部分,nodes里按照格式罗列各个节点ip端口。

8)文件服务器,目前只支持和finekey在同一机器上的非默认文件服务器,path处只能写当前机器上的目录绝对路径。

9)yaml文件很注重字符格式,该有空格的地方别误删。

10)每个组件都可以自定义端口,参数为:portMapping: {访问用的端口: 镜像中固定的端口 }。

默认端口如2.2节,请排查端口是否可用,是否开放,并修改yaml文件中的端口。

11)yaml中的映射目录,可用磁盘空间需要>=500G

4.2 yaml文件代码详解

基础配置:

cluster: true      #是否集群
nodes:
  - ip: localhost   #机器ip, 本地则直接localhost
    port: 22        #机器ssh端口, localhost可不填
    username: root  #节点ssh用户, localhost可不填
    password: 1234  #节点ssh密码,非root时必填,除非普通用户但sudo里配置了nopass, 其他情况比如设置免密登录了,也得填密码
    keyPath:        #节点ssh密钥文件, root用户可以使用,普通用户但是sudo里配置了nopass也可以使用

全新安装组件:

dataRootPath:~/data #各个组件默认创建的挂载路径
components: #需要安装的组件
  fr:
    portMapping: { 8080: 8080 }       #端口映射
    #    {8080: 8080, 7800: 7800, 7830: 7830, 7840: 7840, 7850: 7850, 7870: 7870}  # 集群下需要映射7800等端口
    env: { JAVA_OPTS: -Xms2048 -Xmx5120 }   #环境变量,仅提供XMX一个参数的手动修改,其余参数均自动配置好;仅支持配置一个值,若配置多个值时,按照第一个值进行配置,过配置值格式错误时,则按照推荐配置值配置,推荐配置逻辑需根据系统检查的推荐逻辑进行修改

    config: { }   #应用的其他配置(暂不提供其他配置,只留接口为后面增加拓展使用)
 

  repo:

    port: 5000

  redis:
    password:
    portMapping: { 6379: 6379 }
    env: { }
    config: { }
 
  mysql:
    password:
    portMapping: { 3306: 3306 }
    env: { }
    config: { }

配置已有组件:

existingComponents: #如果已有组件,请配置下方,无现有组件,下方空置即可
  finedb:
    databaseType: mysql/oracle
    ip: node1
    port: 3306
    username:
    password:
    database: finedb1
    schema: aaaa
  ftp:
    ip: node2
    port: 21
    username:
    password:
    path: /data/fr
    charset: utf8
  redis:
    password: 1234
    nodes:
      - ip: node3
        port: 6379
      - ip: node4
        port: 6379

  sftp: #同时存在sftp和ftp时,优先使用ftp
       -ip: 192.168.5.47 #sftp的地址信息默认使用nodes的第一个
        port: 1521
        user: system
        password: qwe123
        path: ~/data/sftp #默认使用dataRootPath/fanruan_xxxxx/sftp


5. 启动FineKey部署编辑

5.1 启动部署

1)使用 cd 命令进入工具解压目录下 bin 文件夹,如下图所示:

2)键入如下命令执行自动化部署:

./finekey


3)整个部署过程需要花费一段时间,请耐心等待,如果部署过程中出现报错,请移步本文第 5 节,查看有无对应的解决方案

5.2 完成部署

当出现 deployment success!bye~ 提示时,表示已经成功部署,如下图所示:

5.3 访问工程

部署完成后,服务会自动启动,此时可以直接访问「决策平台」和「运维平台」:

  • 访问决策平台,在浏览器地址栏输入:http://{ip}/webroot/decision(请把{ip}换成自己的主机IP)

  • 访问运维平台,在浏览器地址栏输入:http://{ip}/ops/decision(请把{ip}换成自己的主机IP)

例如本文示例,浏览器地址栏键入:http://192.168.110.254/ops/decision,即可访问运维平台,如下图所示:

6. 容器化运维指令编辑

此处列出一些常用的容器化运维指令:

  • 重启容器指令:docker restart 容器名,例如:docker restart fanruan_fr

  • 查看所有容器运行情况:docker ps -a

  • 启动指定容器:docker start 容器名,例如:docker start fanruan_fr

  • 停止指定容器:docker stop 容器名,例如:docker stop fanruan_fr