Edge for Private Cloud v. 4.17.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 Server |
? |
? |
? |
|||
Postgres Server |
? |
? |
? |
|||
サードパーティのサービス |
Apache Cassandra |
? |
? |
|||
Apache ZooKeeper |
? |
? |
||||
OpenLDAP |
? |
? |
||||
PostgreSQL データベース |
? |
? |
||||
Qpid |
? |
? |
||||
Nginx Router |
? |
? |
? |
一般に、Apigee Edge をインストールした後、以下のモニタリング タスクを実施して Apigee Edge for Private Cloud のパフォーマンスを追跡できます。
システムのヘルスチェック
CPU 使用率、メモリ使用率、ポート接続などのシステムの健全性パラメータをより高いレベルで測定することが非常に重要です。次のパラメータをモニタリングすることで、システム健全性の基本を把握できます。
- CPU 使用率 - CPU 使用率に関する基本的な統計情報(ユーザー/システム/IO 待機/アイドル)を示します。たとえば、システムによって使用されている CPU の総量など。
- 空きメモリ/使用メモリ - システムメモリの使用状況をバイト単位で示します。たとえば、システムによって使用されている物理メモリの量など。
- ディスク使用状況 - 現在のディスク使用状況に基づいてファイル システムの情報を示します。たとえば、システムによって使用されているハードディスクの量など。
- 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 コンポーネントによって異なります。例:
管理サーバー: 8080
- ルーター: 8081
- Message Processor: 8082
- その他
各コンポーネントでこのコマンドを実行する方法については、以下の個別のセクションをご覧ください。
この呼び出しでは「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 のモニタリング方法
- ルーターの Apigee Monitoring ダッシュボード(ベータ版)の概要
Message Processor のルーター ヘルスチェック
Router は、どの Message Processor が期待どおりに動作しているかを判断するヘルスチェック メカニズムを実装します。ある Message Processor のダウンまたは処理速度の低下が検出された場合、Router はその Message Processor を自動的にローテーションから外すことができます。その場合は、「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 が正常に機能していると判断されると、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