モニタリング対象

Edge for Private Cloud バージョン 4.16.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、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。
  • Free/Used Memory – システムメモリの使用率をバイト単位で指定します。 例: システムで使用される物理メモリ。
  • Disk Space Usage - 現在のディスク使用量に基づいてファイル システムの情報を指定します。例: システムが使用するハードディスク容量。
  • Load Average: 実行を待機しているプロセスの数。
  • ネットワーク統計情報 – 送受信されたネットワーク パケットおよびバイト数と、特定のコンポーネントに関する伝送エラー。

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

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

注: 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 は「Mark Down」メッセージをルーターのログファイル(/<inst root>/apigee4/var/log/apigee/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

ヘルスチェックを行うように 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