安裝 OpenResty Edge

OpenResty Edge 主要包含三個角色(OpenResty Edge Admin,OpenResty Edge Log Server, OpenResty Edge Node),三者的關係如下圖: OpenResty Edge Admin:簡稱 Edge Admin,用於控制管理.

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 的指標和日誌資料。

更多埠資訊請見《OpenResty Edge™ 元件埠說明》。

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 硬碟。

  • Edge Admin Database:至少使用 4 核處理器,16G 記憶體以及 200G SSD 硬碟的機器。

  • Log Server Database:至少使用 4 核處理器,16G 記憶體以及 500G 或 1T SSD 硬碟的機器。如果會開啟較多動態指標、WAF 日誌、DDos 日誌等,可使用更大的硬碟空間。

如果是超過 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
    
  • 開啟系統時間同步

    建議您為所有 Edge 元件啟用 NTP(網路時間協議)服務進行系統時間同步。這可以有效防止元件間的時間不一致,從而避免證書續期失敗或配置下發出錯等問題。

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 或 openresty-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 驗證安裝

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

    # 對於 PostgreSQL 15
    sudo systemctl status openresty-postgresql15
    
    # 對於 PostgreSQL 12
    sudo systemctl status openresty-postgresql12
    

    或

    # 對於 PostgreSQL 15
    journalctl -u openresty-postgresql15
    
    # 對於 PostgreSQL 12
    journalctl -u openresty-postgresql12
    

3.3 OpenResty Edge Admin 安裝

Edge Admin 機器需要開放 443 和 12345 兩個埠,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 的方式進行訪問管理後臺。 後續有需要變更此證書時,你可以手動替換 /usr/local/oredge-admin/conf/ssl/ssl.crt 和 /usr/local/oredge-admin/conf/ssl/ssl.key。

    [+] 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 驗證安裝

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

    注意:對於 openresty-postgresql15 或其他資料庫版本,請使用相應的服務名稱。

    # 對於 PostgreSQL 15
    sudo systemctl status openresty-postgresql15
    
    # 對於 PostgreSQL 12
    sudo systemctl status openresty-postgresql12
    

    或

    # 對於 PostgreSQL 15
    journalctl -u openresty-postgresql15
    
    # 對於 PostgreSQL 12
    journalctl -u openresty-postgresql12
    

3.5 OpenResty Edge Log Server 安裝

Log Server 機器需要開放 12346 和 8089 兩個埠,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 會隨機使用 host 和 host2(與配置順序無關),並且當某一個 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。

示例 3:

ver=25.12.7
sudo bash openresty-edge-installer.sh -a install -c admin-db -v $ver
sudo bash openresty-edge-installer.sh -a install -c admin -v $ver -i -l 127.0.0.1 -d 127.0.0.1
sudo sed -i 's/listen 443 backlog=4096 reuseport ssl;/listen 444 backlog=4096 reuseport ssl;/' /usr/local/oredge-admin/conf/nginx.conf
sudo systemctl reload oredge-admin
sudo bash openresty-edge-installer.sh -a install -c log-server-db -v $ver
sudo bash openresty-edge-installer.sh -a install -c log-server -v $ver -d 127.0.0.1
sudo bash openresty-edge-installer.sh -a install -c node -v $ver -m 127.0.0.1 -l 127.0.0.1
sudo bash openresty-edge-installer.sh -a get -c default-info

在同一個節點上安裝整套 OPenResty Edge 軟體,包括: OpenResty Edge-Admin, OpenResty Edge-Node, OpenResty Edge-Admin-DB, OpenResty Edge-Logserver-DB, OpenResty Edge-Logserver。

openresty-edge-installer.sh 當前支援以下引數:

    -a, --action                action (install|upgrade|downgrade|uninstall|self-check|get|backup|restore|upgrade-db-server).
    -c, --component             component (admin|log-server|node|log-server-db|admin-db|waf-rules|rebuild|default-info).
    -v, --version               edge version, example: 25.12.7, 25.12.7-1.
        --db-version                new database server version to upgrade to (9.6.20|12.5|15.9).
        --db-tsdb-version           new database timescaledb version to upgrade to (1.7.4|2.10.3).
    -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.
        --db-name               specify database name for admin or log server database.
    -l, --log-server-host       specify log server host, which can be used when installing node and admin.
        --backup-db             the database will be backed up when upgrading Admin DB. This option has higher priority than --no-backup-db.
        --no-backup-db          the database will not be backed up when upgrading Admin DB.
    -b, --listen-ip             specify the listen ip when install edge node, install edge admin or upgrade edge admin.
        --db-remote-access-ip   specify the list of IP addresses allowed for remote database access (default: 127.0.0.1/32 ::1/128).
    -u, --skip-db-sec-config    do not change the database's default listening address, nor alter the default postgres user's password, etc.
    -r, --history-dir           specify the directory to store current operation records.
        --overwrite-history-dir whether to overwrite the history directory if it exists.
        --backup-dir            when action is "backup", backup data will be stored in this directory. If not specified, it will be stored in the working directory.
        --restore-dir           specify the directory to restore the database.
        --downgrade-dir         specify the directory to downgrade the admin, node or log-server component.
    -x                          trace mode.
    -y, --yes                   skip all confirmations and use default values
    -h, --help                  help info.

5. 資料庫高可用(可選)

我們還提供了搭建資料庫叢集的文件,這樣當主資料庫不可用時,從資料庫就會自動升級為主資料庫。

有關搭建資料庫群集的文件,請點選此處: 資料庫叢集

6. 資料庫備份(可選)

為確保資料安全,我們建議定期備份資料庫。

有關資料庫備份的文件,請點選此處: 資料庫備份

7. 開始使用

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

8. 更多

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