次の方法で共有


Azure Log Analytics を使用して Azure Container Instances のスタンバイ プール イベントを監視する

Von Bedeutung

スタンバイ プールでリソースを正常に作成および管理するには、サブスクリプション内の関連リソースへのアクセスが必要です。 スタンバイ プールが正常に機能するためには、スタンバイ プール リソース プロバイダーに適切なアクセス許可が割り当てられていることを確認します。 詳細な手順については、 スタンバイ プールのロールのアクセス許可の構成に関する記事を参照してください。

Azure Log Analytics は、Azure Container Instances のスタンバイ プールからのイベントを監視および分析するための強力なプラットフォームを提供します。 スタンバイ プールを Log Analytics ワークスペースと統合することで、主要なメトリックの追跡、傾向の分析、重要なイベントのアラートの設定を行うことができます。

使用可能なメトリックとテーブル

スタンバイ プールに関連付けられているログを表示できる主なテーブルには、 SCGPoolRequestLogSCGPoolExecutionLogの 2 つがあります。

テーブル名 説明
SCGPoolRequestLog プール設定の更新など、ユーザーが開始したイベントのログが含まれます。
SCGrPoolExecutionLog 機能低下モード、コンテナーの再利用、プールのリフィルなどのスタンバイ プール操作など、システムによって開始されるイベントのログが含まれます。

上記の表では、次に示すように、特定のプール関連イベントに対してクエリを実行できます。

イベント名 説明
StandbyPoolExhaustedPool プールの最大準備容量がコンテナー グループ インスタンス数以下であるため、スタンバイ プール インスタンス数が 0 に達し、コンテナーを作成できない場合にトリガーされます。 これは通常、最小準備容量が構成されていない場合に発生します。
StandbyPoolReuseSuccess コンテナー インスタンスがスタンバイ プールからコンテナー グループに正常に移動されたときにトリガーされます。
StandbyPoolReuseFailure コンテナー グループがスタンバイ プールからコンテナーを要求したが、提供できない場合にトリガーされ、コンテナー グループによって直接新しいコンテナーが作成されます。
StandbyPoolSettingsUpdated 最小/最大の準備容量やコンテナーの状態の調整など、スタンバイ プール リソースの設定が変更されたときにトリガーされます。
StandbyPoolMaxReadyPool スタンバイ プール内のインスタンスの数が、顧客によって設定された最大準備容量を満たすのに十分な量補充されるとトリガーされます。
StandbyPoolDegradedPool スタンバイ プール内のインスタンスが要求されたリソースを正常にプロビジョニングできず、プールが 30 秒間機能低下モードになった場合にトリガーされます。
StandbyPoolExitDegradedPool 低下モードのタイムアウトが期限切れになり、プールがリソースの再作成を試みるときにトリガーされます。

スタンバイ プール用に Log Analytics を構成する

Log Analytics ワークスペースは、Azure Monitor の一元化されたデータ リポジトリであり、さまざまな Azure リソースやサービスからテレメトリ データを収集、分析、クエリできます。

Log Analytics ワークスペースを作成する

スタンバイ プールの監視を構成する前に、Log Analytics ワークスペースが設定されていることを確認します。

  1. Azure Portal に移動します。
  2. 検索バーに 「Log Analytics ワークスペース」 と入力し、結果から選択します。
  3. をクリックしてを作成します。
  4. 必須欄に入力してください。
    • サブスクリプション: ワークスペースに関連付けるサブスクリプションを選択します。
    • リソース グループ: 既存のリソース グループを選択するか、新しいリソース グループを作成します。
    • [名前]: ワークスペースの一意の名前を入力します。
    • リージョン: ワークスペースのリージョンを選択します。
  5. [ 確認と作成] をクリックし、[ 作成] をクリックしてワークスペースをデプロイします。

スタンバイ プールの診断設定を構成する

構成された Log Analytics ワークスペースに情報を送信するには、スタンバイ プール リソースの診断設定を設定します。 診断設定を構成した後、ログが Log Analytics ワークスペースに表示されるまでに約 30 分かかります。 ログ分析ワークスペースを構成する前に発生したイベントは含まれません。

スタンバイ プール リソースの診断設定を有効にすることは、Azure portal からはまだ使用できません。 代わりに、PowerShell や CLI などの代替 SDK を使用して診断設定を有効にします。

az monitor diagnostic-settings create \
  --name "standbyPoolLogs" \
  --resource "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.StandbyPool/standbyContainerPools/{standbyPool}" \
  --workspace "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.OperationalInsights/workspaces/{logAnalyticsWorkspace}" \
  --logs '[{"categoryGroup": "allLogs", "enabled": true}]'

スタンバイ プール イベントのクエリを実行する

  1. Azure ポータルにアクセスします。
  2. 上部の検索バーに 「Log Analytics ワークスペース」 と入力し、結果から選択します。
  3. スタンバイ プール用に構成した Log Analytics ワークスペースを選択します。
  4. ワークスペース メニューの [全般] セクションで [ログ] をクリックして、クエリ エディターを開きます。

スタンバイ プール イベントのクエリを実行する

次のクエリを使用して、 SCGPoolRequestLog テーブルと SCGlExecutionLog テーブルのイベントを分析します。

SCGPoolRequestLog からユーザーが開始したイベントを表示する

SCGPoolRequestLog
| where TimeGenerated > ago(24h)
| project TimeGenerated, EventName, ResourceId, Details
| order by TimeGenerated desc

SCGPoolExecutionLogからシステムにより開始されたイベントを表示

SCGPoolExecutionLog
| where TimeGenerated > ago(24h)
| project TimeGenerated, EventName, ResourceId, Details
| order by TimeGenerated desc

種類別にイベントをカウントする

SCGPoolRequestLog
| summarize Count = count() by EventName
| union (
    SCGPoolExecutionLog
    | summarize Count = count() by EventName
)
| order by Count desc

特定のイベントのアラートを設定する

重要なイベントの通知を確実に受け取るために、 SCGPoolRequestLog テーブルと SCGPoolExecutionLog テーブルのイベントに基づいて Azure Monitor でアラートを設定できます。

失敗したスタンバイ プール アクションのアラートを作成する

  1. Azure Portal に移動します。

  2. 検索バーに 「Monitor」 と入力し、結果から選択します。

  3. [監視] メニューの [監視] セクションで [アラート] を選択します。

  4. [+ 新しいアラート ルール] をクリックします。

  5. アラートを構成します。

    • スコープ: Log Analytics ワークスペースを選択します。
    • 条件: 次のカスタム ログ クエリを使用します。
      SCGPoolExecutionLog
      | where EventName == "StandbyPoolReuseFailure"
      
    • アクション グループ: アクション グループを作成または選択して、通知方法を定義します。
    • アラート ルールの詳細: アラートの名前を指定し、重大度レベルを設定します。
  6. [ アラート ルールの作成 ] をクリックしてアラートを保存します。

使い果たされたスタンバイ プールのアラートを作成する

  1. 前の例の手順 1 から 4 に従います。

  2. アラートを構成します。

    • スコープ: Log Analytics ワークスペースを選択します。
    • 条件: 次のカスタム ログ クエリを使用します。
      SCGPoolExecutionLog
      | where EventName == "StandbyPoolExhaustedPool"
      
    • アクション グループ: 通知用のアクション グループを作成または選択します。
    • アラート ルールの詳細: アラートの名前を指定し、重大度レベルを設定します。
  3. [ アラート ルールの作成 ] をクリックしてアラートを保存します。

プール設定の頻繁な更新に関するアラートを作成する

  1. 最初の例の手順 1 から 4 に従います。

  2. アラートを構成します。

    • スコープ: Log Analytics ワークスペースを選択します。
    • 条件: 次のカスタム ログ クエリを使用します。
      SCGPoolRequestLog
      | where EventName == "StandbyPoolSettingsUpdated"
      | summarize Count = count() by bin(TimeGenerated, 1h)
      | where Count > 5
      
      このクエリは、1 時間以内にプール設定の更新が 5 件を超える場合にアラートをトリガーします。
    • アクション グループ: 通知用のアクション グループを作成または選択します。
    • アラート ルールの詳細: アラートの名前を指定し、重大度レベルを設定します。
  3. [ アラート ルールの作成 ] をクリックしてアラートを保存します。

次のステップ

  • スタンバイ プール内のイベントをシミュレートして、アラートをテストします。
  • より高度なアラート オプションについては 、Azure Monitor アラートのドキュメント を参照してください。