モニタリング対象

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、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 ソフトウェア環境内またはバックエンドにエラーが存在するかどうかを迅速に判断することもできます。

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

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

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

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

Message Processor の Router ヘルスチェック

Router は、どの Message Processor が想定どおりに動作しているかを判断するヘルスチェック メカニズムを実装しています。Message Processor がダウンしているか、処理が遅いことが検出されると、Router は Message Processor を自動的にローテーションから除外します。この場合、Router は /opt/apigee/var/log/edge-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