モニタリング対象

Edge for Private Cloud v4.18.05

一般に、本番環境設定では、Apigee Edge for Private Cloud デプロイメント内でモニタリングのメカニズムを有効にする必要があります。これらのモニタリング技術により、ネットワーク管理者(またはオペレーター)にエラーまたは障害が警告されます。生成されたすべてのエラーは、Apigee Edge でアラートとして報告されます。アラートの詳細については、モニタリングのベスト プラクティスをご覧ください。

わかりやすいように、Apigee コンポーネントは、主に次の 2 つのカテゴリに分類されます。

  • Apigee 固有の Java サーバー サービス: これには、Management Server、Message Processor、Qpid Server、Postgres Server が含まれます。
  • サードパーティ サービス: これには、Nginx Router、Apache Cassandra、Apache ZooKeeper、OpenLDAP、PostgresSQL データベース、Qpid が含まれます。

次の表に、Apigee Edge のオンプレミス デプロイメントのモニタリングできるパラメータを簡単に示します。

コンポーネント システム チェック プロセスレベルの統計 API レベルのチェック メッセージ フロー チェック コンポーネント固有

Apigee 固有の Java サービス

Management Server

? ? ?

Message Processor

? ? ? ?

Qpid Server

? ? ?

Postgres Server

? ? ?

サードパーティ サービス

Apache Cassandra

? ?

Apache ZooKeeper

? ?

OpenLDAP

? ?

PostgreSQL データベース

? ?

Qpid

? ?

Nginx Router

? ? ?

一般的に、Apigee Edge をインストールした後で、以下のモニタリング タスクを実施して、Apigee Edge for Private Cloud インストールのパフォーマンスを追跡できます。

システムヘルス チェック

全体的な CPU 使用率、メモリ使用率、接続性などのシステムヘルス パラメータを測定することは非常に重要です。以下のパラメータをモニタリングして、システムヘルスの基本を理解できます。

  • CPU Utilization: CPU 使用率に関する基本的な統計情報(ユーザー / システム / IO 待機 / アイドル)を示します。たとえば、システムによって使用される CPU の合計などです。
  • Free/Used Memory: システムメモリの使用率をバイト数で示します。たとえば、システムによって使用される物理メモリなどです。
  • Disk Space Usage: 現在のディスクの使用率に基づくファイル システムの情報を示します。たとえば、システムによって使用されるハードディスク容量などです。
  • Load Average: 実行待ちのプロセス数を示します。
  • Network Statistics: 送受信されるネットワーク パケットまたはバイト(あるいはその両方)と、特定のコンポーネントに関する伝送エラーです。

プロセス / アプリケーション チェック

プロセスレベルでは、実行中のすべてのプロセスに関する重要な情報を表示できます。これには、プロセスまたはアプリケーションが使用するメモリと CPU の使用率の統計情報などが含まれます。qpidd、postgres postmaster、java などのプロセスでは、以下をモニタリングできます。

  • プロセスの識別: 特定の Apigee プロセスを識別します。たとえば、Apigee サーバーの java プロセスが存在するかどうかをモニタリングできます。
  • スレッド統計: プロセスで使用される基礎となるスレッド パターンを表示します。たとえば、すべてのプロセスのピークスレッド数、スレッド数をモニタリングできます。
  • メモリ使用率: すべての Apigee プロセスのメモリ使用率を表示します。たとえば、プロセスによって使用されるヒープメモリ使用率、ヒープ以外のメモリ使用率などのパラメータをモニタリングできます。

API レベルのチェック

API レベルでは、Apigee によってプロキシされる頻繁に使用する API 呼び出しのために、サーバーが起動しているかどうかをモニタリングできます。たとえば、次の cURL コマンドを呼び出して、Management Server、Router、Message Processor で API チェックを実施できます。

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

ここで、host は Apigee Edge コンポーネントの IP アドレスです。port の番号は各 Edge コンポーネントに固有です。次に例を示します。

Management Server: 8080

  • Router: 8081
  • Message Processor: 8082
  • その他

各コンポーネントでこのコマンドを実行する方法については、以下の個別のセクションをご覧ください。

この呼び出しでは、「true」と「false」が返されます。最良の結果を得る目的で、エラーが Apigee ソフトウェア環境内に存在するか、バックエンドに存在するかをすばやく判断するために、(Apigee ソフトウェアと相互作用する)バックエンドで直接 API 呼び出しを発行することもできます。

メッセージ フロー チェック

メッセージ フロー パターン / 統計について、Router と Message Processor からデータを収集できます。これにより、以下をモニタリングできます。

  • アクティブなクライアントの数
  • レスポンスの数(10X、20X、30X、40X、50X)
  • 接続の失敗

これは、API メッセージ フローのダッシュボードを提供するのに役立ちます。詳細については、モニタリング方法をご覧ください。

Message Processor の Router ヘルスチェック

Router では、どの Message Processor が期待どおりに動作しているかを判断するヘルスチェックのメカニズムが実装されます。Message Processor が停止または遅いと検出された場合に、Router で自動的に Message Processor をローテーションから外すことができます。その場合、/opt/apigee/var/log/edge-router/logs/system.log の Router ログファイルに「Mark Down」のメッセージが書き込まれます。

Router ログファイルでこれらのメッセージをモニタリングできます。たとえば、Router で Message Processor がローテーションから外されると、次の形式のメッセージがログに書き込まれます。

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 は Message Processor の IP アドレスとポート番号です。

後で Router でヘルスチェックが実施されて、Message Processor が正常に機能していると判断されると、Message Processor が自動的にローテーションに戻されます。また、次の形式の「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