安裝 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. 更多

有問題請與我們隨時溝通!