チュートリアル:発行された API を監視する

適用対象: すべての API Management レベル

Azure Monitor を使用すると、Azure API Management サービスのメトリックまたはログを視覚化、クエリ、ルーティング、アーカイブし、メトリックとログに対してアクションを実行できます。

このチュートリアルでは、以下の内容を学習します。

  • API のメトリックを表示する
  • アラート ルールを設定する
  • アクティビティ ログを表示する
  • リソース ログを有効にして表示する

Note

API Management では、組み込みの分析Application Insights との統合などの、API を監視するためのさまざまな追加ツールがサポートされています。 詳細情報

前提条件

API のメトリックを表示する

API Management はメトリックを 1 分ごとに出力するので、API の状態と正常性をほぼリアルタイムで把握できます。 最も頻繁に使用される 2 つのメトリックを次に示します。 使用可能なすべてのメトリックの一覧については、サポートされているメトリックに関する記事をご覧ください。

  • 容量 - API Management サービスのアップグレードとダウングレードの判断に役立ちます。 このメトリックは 1 分ごとに出力され、報告時の見積もりゲートウェイの容量を反映しています。 メトリックの範囲は 0 から 100 で、CPU やメモリの使用率などのゲートウェイ リソースに基づいて計算されます。
  • 要求 - 対象の API Management サービスを通過する API トラフィックを分析する際に役立ちます。 メトリックは 1 分ごとに出力され、ゲートウェイ要求の数をディメンションと共に報告します。 応答コード、場所、ホスト名、エラーで要求をフィルター処理します。

重要

次のメトリックは 2019 年 5 月の時点で非推奨であり、2023 年 8 月に廃止される予定です: ゲートウェイ要求の合計、成功したゲートウェイ要求、未承認ゲートウェイ要求、失敗したゲートウェイ要求、その他のゲートウェイ要求。 同等の機能を提供する要求メトリックに移行してください。

API Management の [概要] のメトリックのスクリーンショット

メトリックにアクセスするには、次の手順に従います。

  1. Azure portal で、API Management インスタンスに移動します。 [概要] ページの [モニター] タブで、API の主要メトリックを確認します。

  2. メトリックを詳細に調査するには、左側のメニューから [メトリック] を選択します。

    ポータルの [監視] メニューの [メトリック] 項目のスクリーンショット。

  3. ドロップダウン リストで、関心のあるメトリックを選択します。 Requestsなど。

  4. グラフには、API 呼び出しの合計数が表示されます。 対象期間に集中するように時間範囲を調整します。

  5. [Requests](要求数) メトリックのディメンションを使用してグラフをフィルター処理できます。 たとえば、[フィルターの追加] を選択し、[Backend Response Code Category] (バックエンド応答コード カテゴリ) を選択して、値として「500」を入力します。 API バックエンドで失敗した要求の数がグラフに表示されます。

アラート ルールを設定する

メトリックとアクティビティ ログに基づいて、アラートを受け取ることができます。 Azure Monitor で、トリガー時にアクションを実行するようにアラート ルールを構成します。 一般的なアクションには、次のようなものがあります。

  • 電子メール通知を送信する
  • Webhook を呼び出す
  • Azure Logic App を呼び出す

要求メトリックに基づいてサンプル アラート ルールを構成するには、次の手順に従います。

  1. Azure portal で、API Management インスタンスに移動します。

  2. 左側のメニューから [アラート] を選択します。

    ポータルの [監視] メニューの [アラート] オプションのスクリーンショット。

  3. [+ 作成]>[アラート ルール] を選択します。

  4. [条件] タブの [Select a signal] (シグナルの選択) ウィンドウで、次の手順を実行します。

    1. [シグナルの種類][メトリック] を選択します。
    2. [シグナル名][要求] を選択します。
    3. [アラート ロジック] で、超えるとアラートをトリガーする発生数の [しきい値] を指定します。
    4. [Split by dimensions](ディメンションによる分割)[ディメンション名] で、 [Gateway Response Code Category](ゲートウェイ応答コード カテゴリ) を選択します。
    5. [ディメンション値] で、承認されていない要求や無効な要求などのクライアント エラーに対応する、 [4xx] を選択します。 ディメンション値が表示されない場合は、[カスタム値を追加] を選択し、「4xx」と入力します。
    6. [評価するタイミング] で、既定の設定をそのまま使用するか、他の設定を選択してルールを実行する頻度を構成します。 [次へ] を選択します。

    ポータルでのアラート ロジックの構成のスクリーンショット。

  5. [アクション] タブで、1 つ以上の "アクション グループ" を選択または作成して、アラートについてユーザーに通知し、アクションを実行します。 たとえば、通知メールを admin@contoso.com に送信する新しいアクション グループを作成します。 詳細については、「Azure portal でのアクション グループの作成および管理」をご覧ください。

    ポータルで新しいアクション グループの通知を構成するスクリーンショット。

  6. [アラート ルールの作成][詳細] タブで、アラート ルールの名前と説明を入力し、重大度レベルを選択します。

  7. オプションで残りの設定を構成します。 次に、[確認と作成] タブで、[作成] を選択します。

  8. 次に、API キーなしで Conference API を呼び出してアラート ルールをテストします。 次に例を示します。

    curl GET https://apim-hello-world.azure-api.net/conference/speakers HTTP/1.1 
    

    アラートは評価期間に基づいてトリガーされ、電子メールを admin@contoso.com に送信します。

    アラートは、API Management インスタンスの [アラート] ページにも表示されます。

    ポータルでのアラートのスクリーンショット。

アクティビティ ログ

アクティビティ ログからは、API Management サービスで実行された操作に関する分析情報が提供されます。 アクティビティ ログを使用すると、API Management サービスで発生した書き込み操作 (PUT、POST、DELETE) について、"いつ誰が何を" 行ったのかを確認できます。

Note

アクティビティ ログには、読み取り (GET) 操作、Azure Portal で実行された操作、または元の管理 API の使用に関する情報は含まれません。

アクティビティ ログには API Management サービスでアクセスするか、Azure Monitor ですべての Azure リソースのログにアクセスできます。

ポータルでのアクティビティ ログのスクリーンショット。

アクティビティ ログを表示するには、次の手順に従います。

  1. Azure portal で、API Management インスタンスに移動します。

  2. [アクティビティ ログ] を選択します。

    ポータルの [監視] メニューの [アクティビティ ログ] 項目のスクリーンショット。

  3. 目的のフィルター処理の範囲を選択し、 [適用] を選択します。

リソース ログ

リソース ログ (Azure Monitor ログ) からは、監査とトラブルシューティングを行うために重要な、API Management の操作とエラーについての豊富な情報が提供されます。 診断設定を通じて有効にすると、ログは、API Management ゲートウェイによって受信および処理された API 要求に関する情報を収集します。

Note

従量課金レベルでは、リソース ログの収集はサポートされていません。

リソース ログを構成するには、次の手順に従います。

  1. Azure portal で、API Management インスタンスに移動します。

  2. [診断設定] を選択します。

    ポータルの [監視] メニューの [診断設定] 項目のスクリーンショット。

  3. [+ 診断設定の追加] を選択します。

  4. 収集するログまたはメトリックを選択します。

    ログとメトリックを送信する場所については、いくつかのオプションがあります。 たとえば、リソース ログをメトリックとともにストレージ アカウントにアーカイブし、それらをイベント ハブにストリーム配信したり、Log Analytics ワークスペースに送信したりするなどです。

    ヒント

    Log Analytics ワークスペースを選択した場合は、リソース固有の ApiManagementGatewayLogs テーブルにデータを格納するか、一般的な AzureDiagnostics テーブルに格納するかを選択できます。 リソース固有のテーブルをサポートするログの宛先には、それを使用することをお勧めします。 詳細情報

  5. ログの宛先の詳細を構成したら、[保存] を選択します。

Note

API Management サービスの MinApiVersion プロパティが、2022-09-01-preview より高い API バージョンに設定されている場合、診断設定オブジェクトを追加するとエラーが発生する可能性があります。

詳細については、「プラットフォーム ログとメトリックを異なる宛先に送信するための診断設定を作成する」を参照してください。

Azure Monitor で診断データを表示する

Log Analytics ワークスペースでログまたはメトリックの収集を有効にした場合、データが Azure Monitor に表示されるまでに数分かかることがあります。

データを表示するには、次の手順に従います。

  1. Azure portal で、API Management インスタンスに移動します。

  2. 左のメニューから [ログ] を選択します。

    ポータルの [監視] メニューの [ログ] 項目のスクリーンショット。

  3. クエリを実行してデータを表示します。 サンプル クエリがいくつか用意されています。自分で用意したものを実行してもかまいません。 たとえば、次のクエリでは、ApiManagementGatewayLogs テーブルから直近の 24 時間のデータを取得します。

    ApiManagementGatewayLogs
    | where TimeGenerated > ago(1d) 
    

    ポータルでの ApiManagementGatewayLogs テーブルのクエリのスクリーンショット。

API Management にリソース ログを使用する方法の詳細については、以下を参照してください。

API ログ設定を変更する

既定では、リソース ログの収集を有効にする診断設定を作成すると、既定の設定ですべての API に対してログ記録が有効になります。 すべての API に対するログ設定を調整することも、それらをオーバーライドして個々の API を対象にすることもできます。 たとえば、データのサンプリング レートや詳細度を調整したり、一部の API のログ記録を無効にしたりできます。

ログ設定の詳細については、「診断ログ設定のリファレンス」を参照してください。

すべての API に対してログ設定を構成するには:

  1. API Management インスタンスの左のメニューで [API]>[すべての API] を選択します。
  2. 上部のバーの [設定] タブを選択します。
  3. [診断ログ] セクションまで下にスクロールし、[Azure Monitor] タブを選択します。
  4. 設定を確認し、必要に応じて変更します。 [保存] を選択します。

特定の API に対してログ設定を構成するには:

  1. API Management インスタンスの左のメニューで、[API] を、次に API の名前を選択します。
  2. 上部のバーの [設定] タブを選択します。
  3. [診断ログ] セクションまで下にスクロールし、[Azure Monitor] タブを選択します。
  4. 設定を確認し、必要に応じて変更します。 [保存] を選択します。

次のステップ

このチュートリアルでは、以下の内容を学習しました。

  • API のメトリックを表示する
  • アラート ルールを設定する
  • アクティビティ ログを表示する
  • リソース ログを有効にして表示する

次のチュートリアルに進みます。