通訊埠需求

管理防火牆不只是虛擬主機的需要,VM 和實體主機防火牆都必須允許元件彼此通訊所需的通訊埠流量。

通訊埠圖表

下圖顯示單一資料中心和多個資料中心設定的通訊埠需求:

單一資料中心

下圖顯示單一資料中心設定中,各 Edge 元件的通訊埠需求:

單一資料中心設定中每個 Edge 元件的連接埠需求

圖表附註:

  • 前置字元為「M」的通訊埠用於管理元件,且必須在元件上開啟,以便管理伺服器存取。
  • 新版 Edge UI 必須透過 API Proxy 公開的通訊埠存取路由器,才能支援追蹤工具中的「Send」(傳送) 按鈕。
  • 您可以設定 JMX 連接埠的存取權,要求使用者提供使用者名稱/密碼。詳情請參閱「如何監控」。
  • 您可以視需要為特定連線設定 TLS/SSL 存取權,這些連線可以使用不同的通訊埠。詳情請參閱「TLS/SSL」。
  • 您可以設定管理伺服器和新版 Edge UI,透過外部 SMTP 伺服器傳送電子郵件。如果這麼做,您必須確保管理伺服器和新版 Edge UI 可存取 SMTP 伺服器上的必要通訊埠 (未顯示)。非 TLS SMTP 的通訊埠編號通常是 25。如果是啟用 TLS 的 SMTP,通常是 465,但請向 SMTP 供應商確認。

多個資料中心

如果您安裝具有兩個資料中心的 12 節點叢集設定,請確保兩個資料中心內的節點可透過下列通訊埠進行通訊:

12 節點叢集設定中各節點的通訊埠需求

請注意:

  • 所有管理伺服器都必須能存取所有其他資料中心的所有 Cassandra 節點。
  • 所有資料中心內的所有訊息處理器都必須能透過通訊埠 4528 互相存取。
  • 管理伺服器必須能透過通訊埠 8082 存取所有訊息處理器。
  • 所有管理伺服器和所有 Qpid 節點都必須能夠存取所有其他資料中心的 Postgres。
  • 基於安全考量,除了上述通訊埠和您網路需求所需的任何其他通訊埠外,資料中心之間不應開啟其他通訊埠。

根據預設,元件之間的通訊不會加密。如要新增加密,請安裝 Apigee mTLS。詳情請參閱「Apigee mTLS 簡介」。

攜碼轉移詳細資料

下表列出防火牆中需要開啟的通訊埠 (依 Edge 元件區分):

元件 通訊埠 說明
標準 HTTP 通訊埠 80、443 HTTP,以及您用於虛擬主機的任何其他通訊埠
Cassandra 7000、9042 Apache Cassandra 連接埠,用於 Cassandra 節點之間的通訊,以及其他 Edge 元件的存取。
7199 JMX 通訊埠。必須開放管理伺服器存取。
新版 Edge UI 3001 瀏覽器存取新版 Edge UI 的預設通訊埠 (edge-management-ui)
LDAP 10389 SymasLDAP
管理伺服器 1099 JMX 通訊埠
4526 用於分散式快取和管理呼叫的通訊埠。這個通訊埠可以設定。
5636 營利承諾通知的通訊埠。
8080 用於 Edge Management API 呼叫的通訊埠。這些元件需要存取管理伺服器上的通訊埠 8080:路由器、訊息處理器、新版 Edge UI、Postgres 和 Qpid。
訊息處理器 1101 JMX 通訊埠
4528 用於訊息處理器之間的分散式快取和管理呼叫,以及路由器和管理伺服器的通訊。

訊息處理器必須開啟通訊埠 4528 做為管理通訊埠。如果您有多個訊息處理器,則所有訊息處理器都必須能夠透過通訊埠 4528 互相存取 (如上圖中訊息處理器上通訊埠 4528 的迴圈箭頭所示)。如果您有多個資料中心,則所有資料中心的所有訊息處理器都必須能存取這個連接埠。

8082

訊息處理器的預設管理通訊埠,必須在元件上開啟,管理伺服器才能存取。

如果您在路由器和訊息處理器之間設定 TLS/SSL,路由器會使用這項設定檢查訊息處理器的健康狀態。

只有在設定路由器和訊息處理器之間的 TLS/SSL 時,才需要開啟訊息處理器上的通訊埠 8082,供路由器存取。如果您未在路由器和訊息處理器之間設定 TLS/SSL,則仍須在訊息處理器上開啟預設設定 (通訊埠 8082) 才能管理元件,但路由器不需要存取該元件。

8443 在路由器和訊息處理器之間啟用 TLS 時,您必須在訊息處理器上開啟通訊埠 8443,以便路由器存取。
8998 用於接收路由器通訊的訊息處理器通訊埠
Postgres 22 如要設定兩個 Postgres 節點,以使用主備援複寫功能,您必須在每個節點上開啟通訊埠 22,才能透過 SSH 存取。
1103 JMX 通訊埠
4530 適用於分散式快取和管理呼叫
5432 用於從 Qpid/管理伺服器到 Postgres 的通訊
8084 Postgres 伺服器上的預設管理通訊埠;必須在元件上開啟,管理伺服器才能存取。
Qpid 1102 JMX 連接埠
4529 適用於分散式快取和管理呼叫
5672
  • 單一資料中心:用於將 Router 和 訊息處理器 的分析資料傳送至 Qpid。
  • 多個資料中心:用於不同資料中心內的 Qpid 節點之間的通訊。

也用於同一節點上 Qpid 伺服器和代理程式元件之間的通訊。在具有多個 Qpid 節點的拓撲中,伺服器必須能夠連線至通訊埠 5672 上的所有代理。

8083 Qpid 伺服器上的預設管理通訊埠,必須在元件上開啟,管理伺服器才能存取。
8090 Qpid 代理程式的預設連接埠;必須開啟此連接埠,才能存取代理程式的管理控制台或 Management API,以進行監控。
路由器 4527 適用於分散式快取和管理呼叫。

路由器必須開啟通訊埠 4527 做為管理通訊埠。如果您有多個路由器,這些路由器必須都能透過通訊埠 4527 互相存取 (如上圖中路由器通訊埠 4527 的循環箭頭所示)。

雖然並非必要,但您可以在路由器上開啟 4527 埠,供任何訊息處理器存取。否則,您可能會在訊息處理器記錄檔中看到錯誤訊息。

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 用戶端 Management Server (1099)
訊息處理器 (1101)
Qpid Server (1102)
Postgres Server (1103)
2181 Zookeeper 用戶端通訊 管理伺服器
路由器
訊息處理器
Qpid 伺服器
Postgres 伺服器
Zookeeper
2888 和 3888 Zookeeper 節點間管理 Zookeeper Zookeeper
3001 預設新版 Edge UI 通訊埠 瀏覽器 新版 Edge UI (edge-management-ui)
4526 RPC 管理通訊埠 管理伺服器 管理伺服器
4527 分散式快取和管理呼叫,以及路由器之間通訊的 RPC 管理通訊埠 管理伺服器
路由器
路由器
4528 用於訊息處理器之間的分散式快取呼叫,以及來自路由器的通訊 管理伺服器
路由器
訊息處理器
訊息處理器
4529 用於分散式快取和管理呼叫的 RPC 管理通訊埠 管理伺服器 Qpid 伺服器
4530 用於分散式快取和管理呼叫的 RPC 管理通訊埠 管理伺服器 Postgres 伺服器
5432 Postgres 用戶端 Qpid 伺服器 Postgres
5636 營利 外部 JMS 元件 管理伺服器
5672
  • 單一資料中心:用於將 Router 和 訊息處理器 的分析資料傳送至 Qpid。
  • 多個資料中心:用於不同資料中心內的 Qpid 節點之間的通訊。

也用於同一節點上 Qpid 伺服器和代理程式元件之間的通訊。在具有多個 Qpid 節點的拓撲中,伺服器必須能夠連線至通訊埠 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)
8090 Qpid 代理程式的預設管理通訊埠,用於管理及監控佇列。 瀏覽器或 API 用戶端 Qpid Broker (apigee-qpidd)
8443 啟用 TLS 時,路由器與訊息處理器之間的通訊 路由器 訊息處理器
8998 路由器與訊息處理器之間的通訊 路由器 訊息處理器
9042 CQL 原生傳輸 路由器
訊息處理器
管理伺服器
Cassandra
10389 LDAP 通訊埠 管理伺服器 SymasLDAP
15999 健康狀態檢查通訊埠。負載平衡器會使用這個通訊埠,判斷路由器是否可用。 負載平衡器 路由器
59001 apigee-validate 公用程式用來測試 Edge 安裝作業的通訊埠 apigee-validate 路由器
59002 傳送 SmartDocs 頁面要求的路由器連接埠 SmartDocs 路由器

訊息處理器會將專屬連線集區保持開啟至 Cassandra,並設為永不逾時。如果防火牆位於訊息處理器和 Cassandra 伺服器之間,防火牆可能會導致連線逾時。不過,訊息處理器並非設計用來重新建立與 Cassandra 的連線。

為避免這種情況,Apigee 建議將 Cassandra 伺服器、訊息處理器和路由器放在同一個子網路中,這樣防火牆就不會參與這些元件的部署作業。

如果路由器和訊息處理器之間有防火牆,且已設定閒置 TCP 逾時,建議您採取下列做法:

  1. 在 Linux OS 的 sysctl 設定中設定 net.ipv4.tcp_keepalive_time = 1800,其中 1800 應低於防火牆閒置 TCP 逾時。這項設定應可讓連線保持在已建立的狀態,避免防火牆中斷連線。
  2. 在所有訊息處理器上,編輯 /opt/apigee/customer/application/message-processor.properties 以新增下列屬性。如果檔案不存在,請建立檔案。
    conf_system_cassandra.maxconnecttimeinmillis=-1
  3. 重新啟動訊息處理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. 在所有路由器上,編輯 /opt/apigee/customer/application/router.properties 以新增下列屬性。如果檔案不存在,請建立檔案。
    conf_system_cassandra.maxconnecttimeinmillis=-1
  5. 重新啟動路由器:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart