監控方式

一般而言,在正式版設定中,您應在 Apigee Edge for Private Cloud 部署作業中啟用監控機制。這些監控技術會向網路管理員 (或營運人員) 發出錯誤或失敗警告。系統會將產生的每個錯誤回報為 Apigee Edge 中的快訊。如要進一步瞭解快訊,請參閱「監控最佳做法」。

Apigee 元件主要分為兩類:

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

在 Apigee Edge 的地端部署中,下表可讓您快速瞭解可監控的參數:

元件 系統檢查 程序層級統計資料 API 級別檢查 訊息流程檢查 元件專屬

Apigee 專屬 Java 服務

管理伺服器

訊息處理器

Qpid 伺服器

Postgres 伺服器

第三方服務

Apache Cassandra

Apache ZooKeeper

SymasLDAP

PostgreSQL 資料庫

Qpid

Nginx 路由器

一般來說,安裝 Apigee Edge 後,您可以執行下列監控工作,追蹤 Apigee Edge for Private Cloud 安裝作業的效能。

系統健康狀態檢查

請務必從較高的層級測量系統健康狀態參數,例如 CPU 使用率、記憶體使用率和連接埠連線。您可以監控下列參數,瞭解系統健康狀態的基本資訊。

  • CPU 使用率:指定 CPU 使用率的基本統計資料 (使用者/系統/I/O 等待/閒置)。例如系統使用的 CPU 總數。
  • 可用/已用記憶體:以位元組為單位指定系統記憶體使用率。 例如系統使用的實體記憶體。
  • 磁碟空間用量:根據目前的磁碟用量指定檔案系統資訊。例如系統使用的硬碟空間。
  • 平均負載:指定等待執行的程序數量。
  • 網路統計資料:傳輸及接收的網路封包和/或位元組,以及特定元件的傳輸錯誤。

程序/應用程式檢查

在程序層級,您可以查看所有執行中程序的重要資訊。例如,程序或應用程式使用的記憶體和 CPU 使用率統計資料。對於 Qpid、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 訊息流程的資訊主頁。詳情請參閱「如何監控」。

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

路由器會實作健康狀態檢查機制,判斷哪些訊息處理器運作正常。如果系統偵測到訊息處理器停止運作或速度緩慢,路由器可以自動將訊息處理器從輪替中移除。如果發生這種情況,路由器會在 /opt/apigee/var/log/edge-router/logs/system.log 的路由器記錄檔中寫入「Mark Down」訊息。

您可以監控路由器記錄檔,查看這些訊息。舉例來說,如果路由器將訊息處理器從輪替中移除,系統會將訊息寫入記錄檔,格式如下:

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