次の方法で共有


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

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

Azure Monitor を使用すると、Azure API Management サービスのメトリックまたはログを視覚化、クエリ、ルーティング、アーカイブし、メトリックとログに対してアクションを実行できます。 Azure Monitor for API Management の概要については、「API Management の監視」を参照してください。

ヒント

API チームは、ワークスペースでこの機能を使用できます。 ワークスペースは、API と独自の API ランタイム環境への分離された管理アクセスを提供します。

このチュートリアルでは、次の作業を行う方法について説明します。

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

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

前提条件

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

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

  • 容量 - API Management サービスのアップグレードとダウングレードの判断に役立ちます。 このメトリックは 1 分ごとに出力され、報告時の見積もりゲートウェイの容量を反映しています。 メトリックの範囲は 0 から 100 で、CPU やメモリの使用率などのゲートウェイ リソースおよび他の要因に基づいて計算されます。

    ヒント

    v2 サービス レベルワークスペース ゲートウェイでは、API Management によってゲートウェイ容量メトリックが個別の CPU とメモリ使用率のメトリックに置き換えられました。 これらのメトリックは、スケーリングに関する決定とトラブルシューティングにも使用できます。 詳細情報

  • 要求 - 対象の API Management サービスを通過する API トラフィックを分析する際に役立ちます。 メトリックは 1 分ごとに出力され、ゲートウェイ要求の数をディメンションと共に報告します。 応答コード、場所、ホスト名、エラーで要求をフィルター処理します。

要求メトリックはワークスペースでは使用できません。

重要

次のメトリックは廃止されました: 合計ゲートウェイ要求数、成功したゲートウェイ要求数、未承認ゲートウェイ要求数、失敗したゲートウェイ要求数、その他のゲートウェイ要求数。 同等の機能を提供する要求メトリックに移行してください。

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. [条件] タブで:

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

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

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

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

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

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

  8. 必要に応じて、アラート ルールをテストします。このためには、HTTP クライアントを使用して、アラートをトリガーする要求をシミュレートします。 たとえば、ターミナルで次のコマンドを実行します。API Management のホスト名を実際の API Management インスタンスのホスト名に置き換えてください。

    curl GET https://contoso.azure-api.net/non-existent-endpoint HTTP/1.1 
    

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

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

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

アクティビティ ログ

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

アクティビティ ログには、読み取り (GET) 操作と Azure portal で実行された操作は含まれません。

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

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

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

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

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

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

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

リソース ログ

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

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

ヒント

ワークスペースを含む API Management インスタンスでは、API Management サービス全体のフェデレーション ログに API プラットフォーム チームがアクセスして一元化された API 監視を行うことができますが、ワークスペース チームはワークスペースの API に固有のログにアクセスできます。 ワークスペースを使用した Azure Monitor のログ記録の詳細

リソース ログの収集の診断設定を構成するには:

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

  2. 左側のメニューの [監視] で、[診断設定]>[+ 診断設定を追加する] を選択します。

    ポータルで診断設定を追加するスクリーンショット。

  3. [診断設定] ページで、設定の詳細を次のように入力または選択します。

    1. [診断設定名]: わかりやすい名前を入力します。
    2. [カテゴリ グループ]: 必要に応じて、シナリオを選択します。
    3. [ カテゴリ]: 1 つ以上のカテゴリを選択します。 たとえば、 ApiManagement ゲートウェイに関連するログを 選択して、API Management ゲートウェイに対するほとんどの要求のログを収集します。
    4. [宛先の詳細]: 1 つ以上のオプションを選択し、宛先の詳細を指定します。 たとえば、Azure Log Analytics ワークスペースにログを送信したり、ログをストレージ アカウントにアーカイブしたり、イベント ハブにストリーミングしたりできます。 詳しくは、「Azure Monitor の診断設定」をご覧ください。
    5. [保存] を選択します。

    ヒント

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

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

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

API Management ワークスペースの診断設定を有効にするには、「ワークスペースの 作成と管理」を参照してください。

Azure Log Analytics でログとメトリックを表示する

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

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

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

  2. 左側のメニューの [ 監視] で、[ ログ] を選択します。

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

    ApiManagementGatewayLogs
    | where TimeGenerated > ago(1d) 
    

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

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

API ログ設定を変更する

ポータルを使用して、API Management ゲートウェイまたは生成 AI ゲートウェイ (LLM) ログの収集を有効にする診断設定を作成すると、既定の設定でログ記録が有効になります。 既定の設定には、要求や応答本文などの要求または応答の詳細は含まれません。 すべての API に対するログ設定を調整することも、それらをオーバーライドして個々の API を対象にすることもできます。 たとえば、ゲートウェイ ログ データのサンプリング レートや詳細度を調整したり、LLM 要求または応答メッセージのログ記録を有効にしたり、一部の API のログ記録を無効にしたりできます。

ログ設定の詳細については、「 診断 - 作成または更新 」および 「API 診断 - REST API の作成または更新 」のリファレンス ページを参照してください。

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

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

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

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

重要

API Management では、Azure Monitor に送信されるログ エントリのサイズに 32 KB の制限が適用されます。 ログ エントリが制限を超えた場合の動作は、ログ カテゴリとログに記録されるデータ属性によって異なります。

  • API Management ゲートウェイ ログ - ログ エントリに記録された要求または応答ペイロード (収集された場合) は、それぞれ最大 8,192 バイトにすることができます。 エントリ内の属性の合計サイズが 32 KB を超える場合、API Management は、すべての本文とトレースコンテンツを削除することでエントリをトリミングします。
  • 生成 AI ゲートウェイ ログ - 収集された場合、最大 32 KB のサイズの LLM 要求または応答メッセージが 1 つのエントリで送信されます。 32 KB を超えるメッセージは分割され、後で再構築するためにシーケンス番号を含む 32 KB のチャンクに記録されます。 要求メッセージと応答メッセージは、それぞれ 2 MB を超えることはできません。

次のステップ

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

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

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