安装 OpenResty Edge

1. 架构说明

OpenResty Edge 主要包含三个角色(OpenResty Edge Admin,OpenResty Edge Log Server, OpenResty Edge Node),三者的关系如下图:

  • OpenResty Edge Admin:简称 Edge Admin,用于控制管理 OpenResty Edge Node。

  • OpenResty Edge Log Server:简称 Log Server,用于指标,日志的存储和查看。

  • OpenResty Edge Node:简称 Edge Node,是具体的网关服务器,承载用户流量。

此外还包含两个数据存储角色:

  • OpenResty Edge Admin Database:简称 Edge Admin Database,是 Edge Admin 所使用的数据库,用于持久化 Edge Node 的配置。

  • OpenResty Edge Log Server Database:简称 Log Server Database,是 Log Server 所使用的数据库,用于持久化 Edge Node 的指标和日志数据。

2. 配置推荐

正式环境安装 OpenResty Edge 至少需要三台机器,分别安装 Edge Admin,Log Server 和 Edge Node 组件。

如果是测试环境,Edge Admin 和 Log Server 也可以安装在同一台机器上,以节省机器资源。

对于规模在 10 个节点以内的 OpenResty Edge 集群,我们推荐:

  • Edge Admin:至少使用 4 核处理器,16G 内存以及 200G SSD 硬盘的机器。

  • Log Server:至少使用 4 核处理器,16G 内存以及 200G SSD 硬盘的机器。

  • Edge Node:相对灵活,取决于业务量,大致是 1 个处理器核心搭配 2G 内存,越大越好。比如 8 核 16 GB 内存,200G 硬盘。

如果是超过 10 个节点的集群,需要根据实际场景升级配置,如果是更大规模的集群,还可以将 Edge Admin Database 和 Log Server Database 部署到单独的机器,如下图所示:

为了保证数据安全,我们建议按照数据库备份以及高可用这一章节进行配置。

3. 安装流程

注意:安装前需要准备以下文件:

  • openresty-edge-VERSION.tar.gz:OpenResty Edge 的配置及初始化数据。

该文件会在下载中心中提供,需要在 openresty.com 官网中注册账户,登录下载中心后下载。

这里 VERSION 为配置包的版本号,在后面的安装步骤中, VERSION 都需要替换成实际的版本号,如 openresty-edge-0.0.1-4.or.tar.gz,版本号请以下载中心最新的文件为准。

3.1 设置防火墙白名单

Edge Admin,Edge Node, Log Server 所在机器都会访问以下公网地址,用于下载软件以及授权信息的同步,如果有网络出口防火墙,需要开启白名单允许访问这些地址:

openresty.com 443
openresty.org 443
pkg.openresty.com 443
api.openresty.com 443

3.2 OpenResty Edge Admin Database 安装

如果 Edge Admin 和 Edge Admin Database 分别部署在两台机器上,Edge Admin Database 所在机器还需要对 Edge Admin 开放 5432 端口。

3.2.1 安装

  • 复制 openresty-edge-VERSION.tar.gz 压缩包到当前目录

  • 解压缩

    tar -xvf openresty-edge-VERSION.tar.gz
    
  • 运行安装器

    cd openresty-edge-VERSION
    sudo /bin/bash openresty-edge-installer.sh
    
  • 输入您要执行的操作 Install

    [1] Install
    [2] Upgrade
    [3] Downgrade
    [4] Uninstall
    What would you like to do? 1
    What you choose is: Install.
    
  • 输入您要安装的版本 (可以从 变更日志 获取最新的版本信息)

    Which version (like 22.12.1) would you like to install? 22.12.1
    
  • 输入您要安装的组件 Edge Admin Database

    [1] Edge Admin Database
    [2] Log Server Database
    [3] Edge Admin
    [4] Log Server
    [5] Edge Node
    Which component would you like to install? 1
    What you choose is: Edge Admin Database.
    
  • 如果成功,最后会有如下提示

    Great! Init admin database successfully.
    

3.2.2 验证安装

  • 可以通过以下命令来查看进程是否启动

    ps aux | grep postgres
    
  • 还可以检查 Edge Admin Database 的日志中是否有异常信息,日志目录为 /var/postgres12/data/pg_log,可通过以下命令获取最新的日志内容

    sudo ls -rt /var/postgres12/data/pg_log/* | tail -n1 | xargs sudo tail -n 50
    

3.3 OpenResty Edge Admin 安装

Edge Admin 机器需要开放 44312345 两个端口,443 端口用于访问 Edge Admin 管理后台,12345 端口用于与 Edge Node 组件通讯。

3.3.1 安装

  • 操作步骤和前面类似,在安装时组件选择 Edge Admin

    [1] Edge Admin Database
    [2] Log Server Database
    [3] Edge Admin
    [4] Log Server
    [5] Edge Node
    Which component would you like to install? 3
    What you choose is: Edge Admin.
    
  • 配置证书和私钥

    此证书用于访问 Edge Admin 管理后台,配置此证书后可以使用域名的方式来访问 Edge Admin 管理后台。 证书可以通过 Let’s Encrypt,ZeroSSL 等 SSL 证书提供商处获取,也可以通过 openssl 工具来生成自签证书。 如果你还没有证书,则可以先跳过,此时使用的将是 OpenResty Edge 默认的自签证书,后面只能通过 IP 的方式进行访问管理后台。

    [+] Do you want to configure ssl certificate and private key? [y/N] y
    [-] Please enter the path of ssl certificate file (like /etc/ssl/ssl.crt): /home/user/ssl/ssl.crt
    [-] Please enter the path of ssl key file (like /etc/ssl/ssl.key): /home/user/ssl/ssl.key
    
  • 配置 Database 和 Log Server 地址:(如果 Database, Edge Admin, Log Server 复用同一个机器,可以直接使用默认配置)

    [+] Do you want to configure admin database and log server address (/usr/local/oredge-admin/conf/config.ini)? [y/N] y
    [-] Please enter the address of admin database (if admin database and admin use the same machine, no need to input.):
    [-] Please enter the address of log server (if log server and admin use the same machine, no need to input.): 54.112.79.32
    

    请确保当前服务器与所输入的 IP 是联通的。

  • 如果成功,最后会有如下提示,包含了 Edge Admin 的登录密码。

    Install Edge admin successfully! login username: admin , password: xxxxxxxxxxx .
    

3.3.2 验证安装

  • 可以通过以下命令来查看进程是否启动:

    ps aux | grep oredge-admin
    
  • 还可以检查 Edge Admin 的日志中是否有异常信息,日志目录为 /usr/local/oredge-admin/logs,可通过以下命令获取最新的日志内容

    sudo ls -rt /usr/local/oredge-admin/logs/error* | tail -n1 | xargs -i sudo tail -n 50
    

此时 Edge Admin 可以正常使用了,可以通过 https://your_domain/ 访问管理后台。

如果前面未配置证书,则使用的是我们提供的自签证书,只能通过 https://admin_ip/ 访问,还需要忽略浏览器的证书错误提示才能正常访问。

3.4 OpenResty Edge Log Server Database 安装

3.4.1 安装

  • 操作步骤和前面类似,安装时组件选择 Log Server Database

    [1] Edge Admin Database
    [2] Log Server Database
    [3] Edge Admin
    [4] Log Server
    [5] Edge Node
    Which component would you like to install? 2
    What you choose is: Log Server Database.
    
  • 如果成功,最后会有如下提示

    Great! Init log server database successfully.
    

3.4.2 验证安装

  • 可以通过以下命令来查看进程是否启动:

    ps aux | grep postgres
    
  • 还可以检查 Log Server Database 的日志中是否有异常信息,日志目录为 /var/postgres12/data/pg_log,可通过以下命令获取最新的日志内容

    sudo ls -rt /var/postgres12/data/pg_log/* | tail -n1 | xargs sudo tail -n 50
    

3.5 OpenResty Edge Log Server 安装

Log Server 机器需要开放 123468089 两个端口,12346 端口用于与 Edge Node 端通讯,8089 用于与 Edge Admin 通讯。

3.5.1 安装

  • 操作步骤和前面类似,安装时组件选择 Log Server

    [1] Edge Admin Database
    [2] Log Server Database
    [3] Edge Admin
    [4] Log Server
    [5] Edge Node
    Which component would you like to install? 4
    What you choose is: Log Server.
    
  • 配置 Log Server Database 和 Edge Admin 地址:(如果 Log Server Database, Edge Admin, Log Server 复用同一个机器,可以直接使用默认配置)

    [+] Do you want to configure database and admin address (/usr/local/oredge-log-server/conf/config.ini)? [y/N] y
    [-] Please enter the address of log server database (if log server database and log server use the same machine, no need to input.):
    [-] Please enter the address of admin (if admin and log server use the same machine, no need to input.): 45.121.32.78
    

    请确保当前服务器与所输入的 IP 是联通的。

  • 如果成功,最后会有如下提示

    Install Edge Log Server successfully!
    

3.5.2 验证安装

  • 可以通过以下命令来查看进程是否启动:

    ps aux | grep oredge-log-server
    
  • 还可以检查 Log Server 的日志中是否有异常信息,日志目录为 /usr/local/oredge-log-server/logs,日志会按照日期轮转,可通过以下命令获取最新的日志内容

    sudo ls -rt /usr/local/oredge-log-server/logs/error* | tail -n1 | xargs -i sudo tail -n 50
    

3.6 OpenResty Edge Node 安装

3.6.1 安装

  • 操作步骤和前面类似,安装时组件选择 Edge Node

    [1] Edge Admin Database
    [2] Log Server Database
    [3] Edge Admin
    [4] Log Server
    [5] Edge Node
    Which component would you like to install? 5
    What you choose is: Edge Node.
    
  • 配置 Edge Admin 和 Log Server 地址:

    [+] Do you want to configure admin and log server address (/usr/local/oredge-node/conf/config.ini)? [y/N] y
    [-] Please enter the address of admin: 54.212.32.78
    [-] Please enter the address of log server: 54.212.32.78
    

    请确保当前服务器与所输入的 IP 是联通的。

  • 如果成功,最后会有如下提示

    Install Edge Node successfully!
    

3.6.2 验证安装

  • 可以通过以下命令来查看进程是否启动:

    ps aux | grep oredge-node
    
  • 还可以检查 Edge Node 的日志中是否有异常信息,日志目录为 /usr/local/oredge-node/logs,可通过以下命令获取最新的日志内容

    sudo ls -rt /usr/local/oredge-node/logs/error* | tail -n1 | xargs -i sudo tail -n 50
    

    如果日志中有以下输出,表明 Edge Node 已经成功连上 Edge Admin,在 Edge Admin 管理后台中批准节点加入即可正常使用。可以参考网关集群

    2021/11/16 14:37:38 [error] 6882#6882: *51983 [lua] privileged.lua:819: could not establish node identity: not yet approved, context: ngx.timer
    

至此全套的 OpenResty Edge 已经搭建完毕。

3.7 配置两份 OpenResty Edge Admin 服务(可选)

如果希望提高 Edge Admin 服务的可用性,可以考虑部署两份 Edge Admin 服务,配置为双主。 步骤是:

  • 按照上面的步骤 3.3 再安装一套 Edge Admin 软件

  • 修改 Edge Admin 配置

    # 这个文件后续的升级也不会自动覆盖,请注意行首不要留空格
    sudo vim /usr/local/oredge-admin/conf/config.ini
    

    需要修改 clone_admin 下的 host 字段,每个 Edge Admin 配置另外一个 Edge Admin 服务的地址。

    修改后重启 Edge Admin 服务。

    sudo systemctl start upgrade-oredge-admin
    

    此时两个 Edge Admin 服务是双主模式,访问任意一个 Edge Admin 都是一样的效果。

  • 修改 Edge Node 配置

    # 这个文件后续的升级也不会自动覆盖,请注意行首不要留空格
    sudo vim /usr/local/oredge-node/conf/config.ini
    

    修改配置文件 admin 段下的 host2 字段,配置成另一个 Edge Admin 的地址。

    修改后重启 Edge Node 服务。

    sudo systemctl start upgrade-oredge-node
    

    Edge Node 会随机使用 hosthost2(与配置顺序无关),并且当某一个 Edge Admin 宕机的时候,会自动切换到另外一个 Edge Admin 服务。

4. 自动化安装 OpenResty Edge

你也可以使用非交互式的安装方式来安装 OpenResty Edge。

示例 1:

sudo bash openresty-edge-installer.sh -a install -c node -v 22.12.1 -m 192.168.10.1 -l 192.168.10.2

安装 22.12.1 版本的 OpenResty Edge Node,并修改配置文件中 Edge Admin Host 和 Log Server Host 对应的配置。

示例 2:

sudo bash openresty-edge-installer.sh -a install -c admin -v 22.12.1 -d 192.168.10.3 -l 192.168.10.2 -s /tmp/cert.crt -k /tmp/key.crt

安装 22.12.1 版本的 OpenResty Edge Admin,修改配置文件中 Database Host 和 Log Server Host 对应的配置,并配置 Edge Admin 管理页面的 SSL 证书为 /tmp/cert.crt 和 /tmp/key.crt。

openresty-edge-installer.sh 当前支持以下参数:

    -a, --action                install, upgrade, downgrade, uninstall.
    -c, --component             admin, log-server, node, log-server-db, admin-db, rebuild, clean-db.
    -v, --version               22.6.1 when upgrade, install, or uninstall, 22.6.1-1 when downgrade.
    -p, --plus-version          use in downgrade, examples: 1.19.3.1.36-1.
    -d, --db-host               specify database host, which can be used when installing admin and log server.
    -m, --admin-host            specify admin host, which can be used when installing node.
    -s, --admin-ssl-cert-path:  specify ssl cert path for admin console.
    -k, --admin-ssl-key-path:   specify ssl key path for admin console.
    -i, --admin-ssl-skip        skip configuration of admin ssl certificate.
    -l, --log-server-host       specify log server host, which can be used when installing node and admin.
        --backup-db             if exist, will backup db when upgrade admin db.
    -h, --help                  help info.

5. 数据库备份以及高可用 (可选)

我们提供了两种方式(数据库备份,数据库高可用)来保证数据安全,在数据库损坏之后可以利用备份文件或者从库恢复数据。我们强烈建议两种方式都采用,最大限度保障数据安全。

数据库备份

数据库高可用

6. 开始使用

我们提供有在线的文档, 还有相关博客对应视频

7. 更多

有问题请与我们随时沟通!