モニタリング対象

Edge for Private Cloud v4.19.01

通常、本番環境では 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、PostgreSQL データベース、Qpid がこれに該当します。

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

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

Apigee 固有の Java サービス

管理サーバー

Message Processor

Qpid サーバー

Postgres サーバー

サードパーティのサービス

Apache Cassandra

Apache ZooKeeper

OpenLDAP

PostgreSQL データベース

Qpid

Nginx ルーター

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

システムのヘルスチェック

CPU 使用率、メモリ使用率、ポート接続などのシステムヘルス パラメータをより高いレベルで測定することは非常に重要です。次のパラメータをモニタリングすると、システムの状態に関する基本的な情報を取得できます。

  • CPU Utilization: CPU 使用率に関する基本的な統計情報(ユーザー / システム / I/O 待機 / アイドル)を指定します。例: システムが使用する合計 CPU。
  • 空きメモリ/使用メモリ: システムメモリの使用状況をバイト単位で指定します。 例: システムで使用される物理メモリ。
  • Disk Space Usage: 現在のディスク使用量に基づいてファイル システムの情報を指定します。例: システムが使用するハードディスク容量。
  • 負荷平均: 実行を待機しているプロセスの数。
  • ネットワーク統計情報: 送受信されたネットワーク パケットやバイト数と、特定のコンポーネントに関する伝送エラー。

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

プロセスレベルでは、実行中のすべてのプロセスに関する重要な情報を確認できます。たとえば、プロセスやアプリケーションが使用するメモリや 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

  • ルーター: 8081
  • Message Processor: 8082
  • etc.

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

この呼び出しは「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 をローテーションから解除できます。その場合、Router は「Mark Down」メッセージを Router のログファイル /opt/apigee/var/log/edge-router/logs/system.log に書き込みます。

これらのメッセージがないか 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 が正常に機能していると判断すると、Router は自動的に Message Processor をローテーションに戻します。また、次の形式で「マークアップ」メッセージがログに書き込まれます。

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