安裝 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 的配置包及初始化資料。

如果您想要使用 bundle 包進行安裝,請準備以下檔案:

  • openresty-edge-bundle-VERSION.tar.gz:包含 OpenResty Edge 的業務包、配置包及初始化資料等。舊名稱是 openresty-edge-bundle-VERSION.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.gzopenresty-edge-bundle-VERSION.tar.gz 壓縮包到當前目錄

  • 解壓縮

    tar -xvf openresty-edge-VERSION.tar.gz
    

    tar -xvf openresty-edge-bundle-VERSION.tar.gz
    
  • 執行安裝器

    cd openresty-edge-VERSION
    sudo /bin/bash openresty-edge-installer.sh
    

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

    > Checking network...
    > Welcome to the OpenResty Edge Installer.
    [1] Install
    [2] Upgrade
    [3] Downgrade
    [4] Uninstall
    [5] Self Check
    [6] Get Default Info
    What would you like to do? 1
    > You chose: Install.
    
  • 輸入您要安裝的版本 (可以從 變更日誌 獲取最新的版本資訊),如果使用安裝器中的預設版本,可以直接回車

    Which version would you like to install? (Default: 23.12.1, Press Enter to use the default version)
    
  • 輸入您要安裝的元件 Edge Admin Database

    [1] Edge Admin Database
    [2] Edge Log Server Database
    [3] Edge Admin
    [4] Edge Log Server
    [5] Edge Node
    Which component would you like to install? 1
    > You chose: Edge Admin Database.
    
  • 輸入允許進行遠端訪問資料庫的 IP 列表,用空格分割;僅允許本地訪問則直接回車。如果您的資料庫和 Edge Admin 不在同一臺機器上,則應輸入 Edge Admin 的 IP 地址

    [+] Please enter the list of IP addresses allowed for remote database access (default: 127.0.0.1/32 ::1/128):
    
  • 為預設資料庫使用者 postgres 設定密碼,請牢記這個密碼。該資料庫使用者預設沒有密碼

    [+] Please enter the password for the database user "postgres", or press Enter to continue without setting a password:
    [+] Please confirm the password for the database user "postgres":
    

3.2.2 驗證安裝

  • 可以透過以下命令來服務是否正常啟動

    sudo systemctl status openresty-postgresql12
    

    journalctl -u openresty-postgresql12
    

3.3 OpenResty Edge Admin 安裝

Edge Admin 機器需要開放 44312345 兩個埠,443 埠用於訪問 Edge Admin 管理後臺,12345 埠用於與 Edge Node 元件通訊。

3.3.1 安裝

  • 操作步驟和前面類似,在安裝時元件選擇 Edge Admin

    [1] Edge Admin Database
    [2] Edge Log Server Database
    [3] Edge Admin
    [4] Edge Log Server
    [5] Edge Node
    Which component would you like to install? 3
    > You chose: 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 OpenResty Edge admin successfully! login username: admin , password: xxxxxxxxxxx .
    

3.3.2 驗證安裝

  • 可以透過以下命令來檢視程序是否啟動:

    sudo systemctl status 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] Edge Log Server Database
    [3] Edge Admin
    [4] Edge Log Server
    [5] Edge Node
    Which component would you like to install? 2
    > You chose: Edge Log Server Database.
    
  • 輸入允許進行遠端訪問資料庫的 IP 列表,用空格分割;僅允許本地訪問則直接回車。如果您的資料庫和 Edge Log Server 不在同一臺機器上,則應輸入 Edge Log Server 的 IP 地址

    [+] Please enter the list of IP addresses allowed for remote database access (default: 127.0.0.1/32 ::1/128):
    
  • 為預設資料庫使用者 postgres 設定密碼,請牢記這個密碼。該資料庫使用者預設沒有密碼

    [+] Please enter the password for the database user "postgres", or press Enter to continue without setting a password:
    [+] Please confirm the password for the database user "postgres":
    

3.4.2 驗證安裝

  • 可以透過以下命令來檢視程序是否啟動:

    sudo systemctl status openresty-postgresql12
    

    journalctl -u openresty-postgresql12
    

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] Edge Log Server Database
    [3] Edge Admin
    [4] Edge Log Server
    [5] Edge Node
    Which component would you like to install? 4
    > You chose: Edge 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 OpenResty Edge Log Server successfully!
    

3.5.2 驗證安裝

  • 可以透過以下命令來檢視程序是否啟動:

    sudo systemctl status 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] Edge Log Server Database
    [3] Edge Admin
    [4] Edge Log Server
    [5] Edge Node
    Which component would you like to install? 5
    > You chose: 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 OpenResty Edge Node successfully!
    

3.6.2 驗證安裝

  • 可以透過以下命令來檢視程序是否啟動:

    sudo systemctl status 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 服務。

3.8 配置 OpenResty Edge Log Server 多例項(可選)

如果希望提高 Log Server 服務的可用性,可以考慮部署多個 Log Server 例項。支援多 Log Server 例項需要 OpenResty Edge 的版本等於或者高於 23.12.1。具體步驟如下:

  • 按照上面的步驟 3.5 再安裝其他的 Log Server 例項

  • 修改 Edge Admin 配置

    # 這個檔案後續的升級也不會自動覆蓋,請注意行首不要留空格
    sudo vim /usr/local/oredge-admin/conf/config.ini
    

    修改 log_server 下的 endpoints 欄位,新增新部署的例項連線地址,比如:

    [log_server]
    endpoints = "https://192.168.0.2:12346, https://192.168.0.3:12346"
    

    修改後重啟 Edge Admin 服務:

    sudo systemctl start upgrade-oredge-admin
    

    Edge Admin 會隨機使用配置的 Log Server 例項,這與配置的順序無關,當某個 Log Server 宕機的時候,會自動切換到其他可用的 Log Server 服務。

  • 修改 Edge Node 配置

    # 這個檔案後續的升級也不會自動覆蓋,請注意行首不要留空格
    sudo vim /usr/local/oredge-node/conf/config.ini
    

    修改 log_server 下的 endpoints 欄位,新增新部署的例項連線地址,比如:

    [log_server]
    endpoints = "https://192.168.0.2:12346, https://192.168.0.3:12346"
    

    修改後重啟 Edge Node 服務:

    sudo systemctl start upgrade-oredge-node
    

    Edge Node 會隨機使用配置的 Log Server 例項,這與配置的順序無關,當某個 Log Server 宕機的時候,會自動切換到其他可用的 Log Server 服務。

3.9 使用安裝器進行自檢

$ bash openresty-edge-installer.sh
> Checking network...
> Welcome to the OpenResty Edge Installer.
[1] Install
[2] Upgrade
[3] Downgrade
[4] Uninstall
[5] Self Check
[6] Get Default Info
What would you like to do? 5
> You chose: Self Check.

3.10 使用安裝器獲取 Edge Admin 的預設登入資訊

$ bash openresty-edge-installer.sh
> Checking network...
> Welcome to the OpenResty Edge Installer.
[1] Install
[2] Upgrade
[3] Downgrade
[4] Uninstall
[5] Self Check
[6] Get Default Info
What would you like to do? 6
> You chose: Get Default Info.
If you have initialized the OpenResty Edge Admin database using the current installer, then the information to log in to the Edge Admin Console is as follows:

    username: admin
    password: xxxxxxxxxxxxxxx

4. 自動化安裝 OpenResty Edge

你也可以使用非互動式的安裝方式來安裝 OpenResty Edge。

示例 1:

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

安裝 23.12.1 版本的 OpenResty Edge Node,並修改配置檔案中 Edge Admin Host 和 Log Server Host 對應的配置。

示例 2:

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

安裝 23.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.
    -p, --plus-version          use in downgrade, example: 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.
    -b, --listen-ip             specify the listen ip when install edge node, install edge admin or upgrade edge admin.
    -u, --skip-db-sec-config    do not change the database's default listening address, nor alter the default postgres user's password, etc.
    -h, --help                  help info.

5. 資料庫備份以及高可用(可選)

我們提供了兩種方式(資料庫備份,資料庫高可用)來保證資料安全,在資料庫損壞之後可以利用備份檔案或者從庫恢復資料。我們強烈建議兩種方式都採用,最大限度保障資料安全。

資料庫備份

資料庫高可用

6. 開始使用

我們提供有線上的文件, 還有相關部落格對應影片

7. 更多

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