監控方式

私有雲 v4.18.05 的邊緣

一般來說,在實際工作環境設定中,您必須在 Apigee Edge 中啟用監控機制,以便進行私人雲端部署作業。這些監控技術會向網路管理員 (或操作人員) 發出警告或失敗。產生的每個錯誤都會在 Apigee Edge 中回報為快訊。如要進一步瞭解快訊,請參閱監控最佳做法一文。

為了方便起見,Apigee 元件主要分為兩類:

  • Apigee 專用的 Java 伺服器服務:包括管理伺服器、訊息處理器、Qpid 伺服器和 Postgres 伺服器。
  • 第三方服務:包括 Nginx Router、Apache Cassandra、Apache ZooKeeper、OpenLDAP、PostgreSQL 資料庫和 Qpid。

在 Apigee Edge 的內部部署部署作業中,下表可讓您快速瞭解可以監控的參數:

元件 系統檢查 程序層級統計資料 API 級別檢查 郵件流程檢查 特定元件

Apigee 專用 Java 服務

管理伺服器

訊息處理器

Qpid 伺服器

Postgres 伺服器

第三方服務

Apache Cassandra

Apache ZooKeeper

OpenLDAP

PostgreSQL 資料庫

Qpid

Nginx 路由器

一般而言,在 Apigee Edge 安裝完成後,您可以執行下列監控工作,追蹤 Apigee Edge 私人雲端安裝的效能。

系統健康狀態檢查

請務必在較高層級測量系統健康狀態參數,例如 CPU 使用率、記憶體使用率和通訊埠連線能力。您可以監控下列參數,取得系統健康狀態的基本概念。

  • 「CPU Utilization」:指定 CPU 使用率的基本統計資料 (使用者/系統/IO 等待/閒置)。例如系統使用的 CPU 總用量。
  • 「Free/Used Memory」:以位元組的形式指定系統記憶體使用率。 例如系統使用的實體記憶體。
  • 「Disk Space Usage」(磁碟空間用量)根據目前的磁碟用量指定檔案系統資訊。例如系統使用的硬碟空間。
  • Load 平均:指定等待執行的程序數量。
  • 網路統計資料:傳輸及接收的網路封包和/或位元組數,以及特定元件的傳輸錯誤。

程序/應用程式檢查

您可以在程序層級查看所有執行中程序的重要資訊。舉例來說,這些資料包括程序或應用程式使用的記憶體和 CPU 用量統計資料。針對 qpidd、postgres postmaster、java 等程序,您可以監控下列項目:

  • 程序識別:找出特定 Apigee 程序。舉例來說,您可以監控 Apigee 伺服器 Java 程序是否存在。
  • 執行緒統計資料:查看程序使用的基礎執行緒模式。舉例來說,您可以監控所有程序的尖峰執行緒數量和執行緒數量。
  • 記憶體使用率:查看所有 Apigee 程序的記憶體用量。 舉例來說,您可以監控程序使用的堆積記憶體用量、非堆積記憶體用量等參數。

API 級別檢查

在 API 層級,您可以監控伺服器是否正在啟動並執行,以使用 Apigee 提供的常用 API 呼叫。舉例來說,您可以叫用下列 cURL 指令,在管理伺服器、路由器和訊息處理器上執行 API 檢查:

curl http://host:port/v1/servers/self/up

其中 host 是 Apigee Edge 元件的 IP 位址。port 編號專屬於每個 Edge 元件。例如:

管理伺服器:8080

  • 路由器:8081
  • 訊息處理器:8082
  • 其他

如要瞭解如何對各元件執行這個指令,請參閱以下各節

這個呼叫會傳回「true」和「false」。為獲得最佳結果,您也可以直接在後端 (Apigee 軟體與平台互動) 發出 API 呼叫,以快速判斷 Apigee 軟體環境或後端中是否存在錯誤。

郵件流程檢查

您可以從路由器和訊息處理器收集資料,瞭解訊息流程模式/統計資料。此機制可讓您監控下列項目:

  • 有效用戶端數量
  • 回應數量 (10X、20X、30X、40X 和 50X)
  • 連線失敗

這有助於您提供 API 訊息流程的資訊主頁。詳情請參閱「如何監控」一文。

訊息處理器的路由器健康狀態檢查

路由器會導入健康狀態檢查機制,判斷哪些訊息處理器正常運作。如果偵測到訊息處理器的執行速度過慢或緩慢,路由器可以自動將訊息處理器移出輪替。如果發生此情況,路由器會將「Mark Down」訊息寫入位於 /opt/apigee/var/log/edge-router/logs/system.log 的路由器記錄檔。

您可以監控路由器記錄檔中是否有這些訊息。舉例來說,如果路由器將訊息處理器從輪替作業中移出,路由器會以下列格式將訊息寫入記錄:

2014-05-06 15:51:52,159 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now DISCONNECTED. handle = MP_IP at 1399409512159
2014-04-17 12:54:48,512 org: env: nioEventLoopGroup-2-2 INFO HEARTBEAT - HBTracker.gotResponse() : No HeartBeat detected from /MP_IP:PORT Mark Down

其中 MP_IP:PORT 是訊息處理器的 IP 位址和通訊埠號碼。

如果路由器稍後會執行健康狀態檢查,且判定訊息處理器正常運作,路由器會自動將訊息處理器放回輪替作業。路由器也會以下列形式將「Mark Up」訊息寫入記錄:

2014-05-06 16:07:29,054 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now CONNECTED. handle = IP at 1399410449054
2014-04-17 12:55:06,064 org: env: nioEventLoopGroup-4-1 INFO HEARTBEAT - HBTracker.updateHB() : HeartBeat detected from IP:PORT Mark Up