Edge for Private Cloud 4.18.05
管理防火牆的事宜不能侷限於虛擬主機,VM 和實體主機防火牆都必須允許元件所需的通訊埠流量互相通訊。
通訊埠圖表
下圖顯示單一資料中心和多個資料中心設定的連接埠需求:
單一資料中心
下圖顯示單一資料中心設定中每個 Edge 元件的連接埠需求:
此圖表的注意事項:
- 前置為「M」的通訊埠是用於管理元件的通訊埠,必須在元件上開啟,才能供管理伺服器存取。
- Edge UI 需要存取路由器 (在 API Proxy 所公開的通訊埠) 上,以支援追蹤工具中的 [Send] 按鈕。
- 您可以設定 JMX 連接埠的存取權,要求使用者輸入使用者名稱/密碼。詳情請參閱「如何監控」。
- 您可以選擇針對可使用不同通訊埠的特定連線設定 TLS/SSL 存取。詳情請參閱 TLS/SSL。
- 您可以設定管理伺服器和 Edge UI,透過外部 SMTP 伺服器傳送電子郵件。如果您選擇這麼做,請務必確保管理伺服器和 UI 可存取 SMTP 伺服器上的必要連接埠 (未顯示)。對於非 TLS SMTP,通訊埠號碼通常為 25。對於支援 TLS 的 SMTP,通常為 465,但請向 SMTP 供應商確認。
多個資料中心
如果您安裝含有兩個資料中心的 12 節點叢集組態,請確認兩個資料中心中的節點可透過下列通訊埠進行通訊:
請注意:
- 所有管理伺服器都必須能夠存取所有其他資料中心的所有 Cassandra 節點。
- 所有資料中心中的所有訊息處理器都必須能夠透過通訊埠 4528 互相存取。
- 管理伺服器必須能夠透過連接埠 8082 存取所有訊息處理器。
- 所有管理伺服器和所有 Qpid 節點都必須能夠存取所有其他資料中心的 Postgres。
- 基於安全考量,除了上述的連接埠和您自己的網路需求所需的其他連接埠外,資料中心之間不應開啟其他連接埠。
通訊埠詳細資料
下表列出 Edge 元件需要在防火牆中開啟的通訊埠:
元件 | 通訊埠 | 說明 |
---|---|---|
標準 HTTP 通訊埠 | 80、443 | HTTP 和您用於虛擬主機的其他通訊埠 |
Cassandra | 7000、9042、9160 | 用於 Cassandra 節點之間通訊和供其他 Edge 元件存取的 Apache Cassandra 通訊埠。 |
7199 | JMX 通訊埠。必須開放管理伺服器存取。 | |
LDAP | 10389 | OpenLDAP |
管理伺服器 | 1099 | JMX 連接埠 |
4526 | 用於分散式快取和管理呼叫的端口。這個連接埠可進行設定。 | |
8080 | Edge 管理 API 呼叫的端口。這些元件需要存取管理伺服器上的通訊埠 8080:路由器、訊息處理器、UI、Postgres 和 Qpid。 | |
管理 UI | 9000 | 瀏覽器存取管理 UI 的通訊埠 |
訊息處理器 | 1101 | JMX 連接埠 |
4528 | 用於訊息處理器之間的分散式快取和管理呼叫,以及從路由器和管理伺服器通訊。 訊息處理器必須開啟 4528 通訊埠做為管理通訊埠。如果您有多個訊息處理器,這些處理器都必須能夠透過通訊埠 4528 互相存取 (以上圖中的訊息處理器通訊埠 4528 中的環狀箭頭表示)。如果您有多個資料中心,則所有資料中心的所有 Message Processor 都必須能存取該連接埠。 |
|
8082 |
訊息處理器的預設管理通訊埠,必須在元件上開啟,以便管理伺服器存取。 如果您在 Router 和 Message Processor 之間設定 TLS/SSL,Router 會使用這項設定對 Message Processor 進行健康狀態檢查。 只有在您在 Router 和 Message Processor 之間設定 TLS/SSL 時,才需要開放 Message Processor 上的 8082 通訊埠供 Router 存取。如果您未在路由器和訊息處理器之間設定 TLS/SSL,您仍須在訊息處理器上開啟預設設定,通訊埠 8082 才能管理元件,但路由器不需要存取。 |
|
8443 | 在路由器與訊息處理器之間啟用 TLS 後,您必須在訊息處理器上開啟通訊埠 8443,才能讓路由器存取。 | |
8998 | 用於路由器通訊的訊息處理器連接埠 | |
Postgres | 22 | 如果要將兩個 Postgres 節點設定為使用主機待命複寫,您必須在每個節點上開啟通訊埠 22,以便存取 SSH。 |
1103 | JMX 連接埠 | |
4530 | 用於分散式快取和管理呼叫 | |
5432 | 用於從 Qpid/Management 伺服器到 Postgres 的通訊 | |
8084 | 您必須在元件上開啟 Postgres 伺服器的預設管理通訊埠,才能讓管理伺服器存取。 | |
Qpid | 1102 | JMX 連接埠 |
4529 | 用於分散式快取和管理呼叫 | |
5672 |
|
|
8083 | Qpid 伺服器上的預設管理通訊埠,必須在元件上開啟,才能由管理伺服器存取。 | |
路由器 | 4527 | 用於分散式快取和管理呼叫。 路由器必須開啟 4527 通訊埠做為管理通訊埠。如果您有多個路由器,則這些路由器必須都能透過通訊埠 4527 互相存取 (上方圖表中路由器上的通訊埠 4527 有循環箭頭表示)。 雖然這不是必要步驟,但您可以開啟 Router 上的通訊埠 4527,讓任何 Message Processor 都能存取。否則,您可能會在 Message Processor 記錄檔中看到錯誤訊息。 |
8081 | 路由器的預設管理端口,必須在元件上開啟,才能由管理伺服器存取。 | |
15999 |
健康狀態檢查通訊埠。負載平衡器會使用這個通訊埠,判斷路由器是否可用。 為了取得路由器的狀態,負載平衡器會向路由器的 15999 連接埠提出要求: curl -v http://routerIP:15999/v1/servers/self/reachable 如果可連線路由器,則要求會傳回 HTTP 200。 |
|
59001 | apigee-validate 公用程式用於測試 Edge 安裝作業。這項公用程式需要存取路由器上的 59001 埠。如要進一步瞭解 59001 通訊埠,請參閱「測試安裝程序」。 |
|
SmartDocs | 59002 | Edge 路由器上傳送 SmartDocs 網頁要求的連接埠。 |
ZooKeeper | 2181 | 可供管理伺服器、路由器、訊息處理器等其他元件使用 |
2888、3888 | 由 ZooKeeper 用於 ZooKeeper 叢集 (稱為 ZooKeeper 集合) 的內部通訊 |
下表列出相同的連接埠,並以數字列出來源和目的地元件:
通訊埠號碼 | 目的 | 來源元件 | 目的地元件 |
---|---|---|---|
virtual_host_port | HTTP 加上用於虛擬主機 API 呼叫流量的任何其他通訊埠。最常使用的為 80 和 443 埠;訊息路由器可以終止 TLS/SSL 連線。 | 外部用戶端 (或負載平衡器) | 訊息路由器上的事件監聽器 |
1099 到 1103 | JMX 管理 | JMX 用戶端 | 管理伺服器 (1099) 訊息處理器 (1101) Qpid 伺服器 (1102) Postgres 伺服器 (1103) |
2181 | 動物保密協議 (Zookeeper) 客戶溝通 | 管理伺服器 路由器 訊息處理器 Qpid 伺服器 Postgres 伺服器 |
Zookeeper |
2888 和 3888 | Zookeeper 節點間管理 | Zookeeper | Zookeeper |
4526 | RPC 管理通訊埠 | 管理伺服器 | 管理伺服器 |
4527 | 用於分散快取和管理呼叫,以及路由器之間通訊的 RPC 管理通訊埠 | 管理伺服器 路由器 |
路由器 |
4528 | 針對訊息處理工具之間的散發快取呼叫,以及來自路由器的通訊 | 管理伺服器 路由器 訊息處理器 |
訊息處理器 |
4529 | 用於分散式快取和管理呼叫的 RPC 管理通訊埠 | 管理伺服器 | Qpid 伺服器 |
4530 | 用於分散式快取和管理呼叫的 RPC 管理通訊埠 | 管理伺服器 | Postgres 伺服器 |
5432 | Postgres 用戶端 | Qpid 伺服器 | Postgres |
5672 |
|
Qpid 伺服器 | Qpid 伺服器 |
7000 | Cassandra 節點間通訊 | Cassandra | 其他 Cassandra 節點 |
7199 | JMX 管理。管理伺服器必須開放 Cassandra 節點的存取權。 | JMX 用戶端 | Cassandra |
8080 | Management API 連接埠 | Management API 用戶端 | 管理伺服器 |
8081 到 8084 |
元件 API 通訊埠,可用來直接發出 API 要求給個別元件。每個元件都會開啟不同的通訊埠;實際使用的通訊埠取決於設定,但必須在元件上開啟,才能供管理伺服器存取 |
Management API 用戶端 | 路由器 (8081) 訊息處理器 (8082) Qpid 伺服器 (8083) Postgres 伺服器 (8084) |
8443 | 啟用 TLS 時,路由器和訊息處理器之間的通訊 | 路由器 | 訊息處理器 |
8998 | 路由器與訊息處理器之間的通訊 | 路由器 | 訊息處理器 |
9000 | 預設 Edge 管理 UI 通訊埠 | 瀏覽器 | 管理 UI 伺服器 |
9042 | CQL 原生傳輸 | 路由器 訊息處理器 管理伺服器 |
Cassandra |
9160 | Cassandra Thrift 用戶端 | 路由器 訊息處理器 管理伺服器 |
Cassandra |
10389 | LDAP 通訊埠 | 管理伺服器 | OpenLDAP |
15999 | 健康狀態檢查通訊埠。負載平衡器會使用這個通訊埠,判斷路由器是否可用。 | 負載平衡器 | 路由器 |
59001 | apigee-validate 公用程式用於測試 Edge 安裝作業的通訊埠 |
Apigee-validate | 路由器 |
59002 | 傳送 SmartDocs 網頁要求的路由器通訊埠 | SmartDocs | 路由器 |
訊息處理工具會持續開啟專屬的 Cassandra 連線集區,並設為永不逾時。當防火牆位於訊息處理器和 Cassandra 伺服器之間時,防火牆可能會讓連線逾時。不過,訊息處理器不適合用於重新建立與 Cassandra 的連線。
為避免這種情況,Apigee 建議將 Cassandra 伺服器、訊息處理器和路由器放在同一個子網路中,這樣防火牆就不會參與這些元件的部署作業。
如果路由器和訊息處理器之間有防火牆,且已設定空閒 TCP 逾時,建議您採取以下做法:
- 在 Linux OS 的 sysctl 設定中設定
net.ipv4.tcp_keepalive_time = 1800
,其中 1800 應低於防火牆閒置 TCP 逾時時間。這項設定應讓連線維持在已建立狀態,以免防火牆中斷連線。 - 在所有訊息處理工具上,編輯
/opt/apigee/customer/application/message-processor.properties
以新增下列屬性。如果檔案不存在,請建立該檔案。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重新啟動訊息處理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 在所有 Router 上,編輯
/opt/apigee/customer/application/router.properties
以新增下列屬性。如果檔案不存在,請建立檔案。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重新啟動路由器:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart