モニタリング対象

Edge for Private Cloud v. 4.16.09

一般に、本番環境の設定では、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 Router

?

?

?

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

システム ヘルスチェック

CPU 使用率、メモリ使用率、ポート接続などのシステム健全性パラメータを、より高いレベルで測定することが非常に重要です。次のパラメータをモニタリングすることで、システムの状態の基本を把握できます。

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

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

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

  • プロセス ID: 特定の 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 ソフトウェアがやり取りするバックエンド)で API 呼び出しを直接発行して、Apigee ソフトウェア環境内またはバックエンドにエラーが存在するかどうかを迅速に判断することもできます。

注: API プロキシをモニタリングするには、Apigee の API Health を使用することもできます。API Health は、API プロキシに対してスケジュールされた呼び出しを行い、失敗した場合はその方法を通知します。呼び出しが成功すると、API Health にレスポンス時間が表示されます。レスポンスのレイテンシが高い場合は、通知を受け取ることもできます。API Health は、世界中のさまざまなロケーションから呼び出しを行い、リージョン間の API の動作を比較できます。

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

Router と Message Processor から、メッセージ フローのパターン/統計情報に関するデータを収集できます。これにより、次のものをモニタリングできます。

  • アクティブなクライアントの数
  • 回答数(10X、20X、30X、40X、50X)
  • 接続エラー

これにより、API メッセージ フローのダッシュボードを提供できます。

Message Processor の Router ヘルスチェック

Router は、ヘルスチェック メカニズムを実装して、どの Message Processor が想定どおりに動作しているかを判断します。Message Processor がダウンしているか、処理が遅いことが検出されると、Router は Message Processor を自動的にローテーションから除外します。この場合、Router は /<inst root>/apigee4/var/log/apigee/router/logs/system.log の Router ログファイルに「Mark Down」メッセージを書き込みます。

これらのメッセージについては、ルーターのログファイルをモニタリングできます。たとえば、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 をローテーションに戻します。Router は、次の形式の「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

ヘルスチェックを行うように Router を構成するには、/<inst root>/apigee4/conf/apigee/router/router.properties で次のプロパティを true に設定します。

Client.pool.heartBeat.use.http=true

次に、Router を再起動します。

> /<inst-root>/apigee4/bin/apigee-service router restart