安裝 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 機器需要開放 443
和 12345
兩個埠,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 機器需要開放 12346
和 8089
兩個埠,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 會隨機使用
host
和host2
(與配置順序無關),並且當某一個 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. 更多
有問題請與我們隨時溝通!