Azure Container Apps のログ ストレージと監視オプション

Azure Container Apps には、アプリケーション ログを格納および表示するためのオプションが用意されています。 ログ オプションは、ログの宛先を選択する Container Apps 環境で構成されます。

Container Apps アプリケーション ログは、次の 2 つの異なるカテゴリで構成されます。

  • コンテナー コンソールの出力 (stdout/stderr) メッセージ。
  • Azure Container Apps によって生成されたシステム ログ。
  • Spring App コンソール ログ。

これらのログの宛先から選ぶことができます。

  • Log Analytics: Azure Monitor Log Analytics は既定のストレージと表示オプションです。 ログは Log Analytics ワークスペースに格納され、Log Analytics クエリを使用して表示および分析できます。 Log Analytics の詳細については、Azure Monitor Log Analytics に関するページを参照してください。
  • Azure Monitor: Azure Monitor によって、ログが 1 つまたは複数の宛先にルーティングされます。
    • 表示と分析のための Log Analytics ワークスペース。
    • アーカイブする Azure ストレージ アカウント。
    • データ インジェストおよび分析サービス用の Azure イベント ハブ。 詳細については、Azure Event Hubs に関するページを参照してください。
    • Datadog、Elastic、Logz.io などの Azure パートナー監視ソリューション。 詳細については、「パートナー ソリューション」を参照してください。
  • なし: ログ データの格納を無効にすることができます。 無効にした場合でも、コンテナー アプリのログ ストリーム機能を使用して、リアルタイムのコンテナー ログを引き続き表示できます。 詳細については、「ログ ストリーミング」を参照してください。

[なし] または [Azure Monitor] の宛先が選択されている場合、Azure portal の Log Analytics クエリ エディターを提供する [ログ] メニュー項目は無効になります。

Azure portal を介してオプションを構成する

Azure portal で Container Apps 環境のログ オプションを構成するには、これらの手順を使用します。

  1. ポータルの [Container Apps 環境] ウィンドウの [ログ オプション] に移動します。 Screenshot of logs destinations.
  2. 次の [ログの宛先] オプションから選ぶことができます。
    • Log Analytics: このオプションでは、ログ データを格納する Log Analytics ワークスペースを選択します。 ログは Log Analytics クエリを使用して表示できます。 Log Analytics の詳細については、Azure Monitor Log Analytics に関するページを参照してください。
    • Azure Monitor: Azure Monitor によって、ログが宛先にルーティングされます。 このオプションを選択する場合は、このページで [保存] を選択した後、[診断設定] を選んで構成を完了する必要があります。
    • なし: このオプションを選択すると、ログ データの格納が無効になります。
  3. [保存] を選択します。 Screenshot Logging options page.
  4. ログの宛先として [Azure Monitor] を選択した場合は、[診断設定] を構成する必要があります。 [診断設定] 項目は、[ログ オプション] メニュー項目の下に表示されます。

診断設定

ログの宛先として [Azure Monitor] を選択する場合は、宛先の詳細を構成する必要があります。 ポータルの [Container Apps 環境] ウィンドウの左側のメニューから [診断設定] を選択します。

Screenshot Diagnostic setting menu item.

宛先の詳細は ''診断設定'' として保存されます。 コンテナー アプリ環境には、最大 5 つの診断設定を作成できます。 診断設定ごとに異なるログ カテゴリを構成できます。 たとえば、1 つの診断設定を作成してシステム ログ カテゴリを 1 つの宛先に送信するようにし、もう 1 つはコンテナー コンソール ログ カテゴリを別の宛先に送信するために作成します。

新しい診断設定を作成するには:

  1. [診断設定の追加] を選択します。 Screenshot Diagnostic setting Add new diagnostic setting.

  2. 診断設定の名前を入力します。 Screenshot Diagnostics settings dialog.

  3. この宛先に送信するログの [カテゴリ グループ] または [カテゴリ] を選択します。 1 つまたは複数のカテゴリを選択できます。

  4. 1 つまたは複数の [宛先の詳細] を選択します。

    • Log Analytics ワークスペースに送信: 既存の Log Analytics ワークスペースから選択します。 Screenshot diagnostic settings Log Analytics destination.
    • ストレージ アカウントへのアーカイブ: 既存のストレージ アカウントから選ぶことができます。 個々のログ カテゴリが選択されている場合は、各カテゴリの [リテンション期間 (日)] を設定できます。 Screenshot Diagnostic settings storage destination.
    • イベント ハブへのストリーム: Azure イベント ハブから選択します。
      Screenshot Diagnostic settings event hub destination.
    • パートナー ソリューションに送信する: Azure パートナー ソリューションから選択します。
  5. [保存] を選択します。

診断設定の詳細については、「Azure Monitor の診断設定」を参照してください。

Azure CLI を使用してオプションを構成する

Azure CLI az containerapp create および az containerapp update コマンドと --logs-destination 引数を使用して、Container Apps 環境のログの宛先を構成します。

宛先の値は、log-analyticsazure-monitornone です。

たとえば、既存の Log Analytics ワークスペースをログの宛先として使用して Container Apps 環境を作成するには、log-analytics 引数に値 --logs-destination および --logs-destination-id 引数に Log Analytics ワークスペース リソース ID の値を指定する必要があります。 リソース ID は、Azure portal の Log Analytics ワークスペース ページまたは az monitor log-analytics workspace show コマンドから取得できます。

''<プレースホルダー>'' は実際の値に置き換えてください。

az containerapp env create \
  --name <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --logs-destination log-analytics \
  --logs-workspace-id <WORKSPACE_ID>

ログの宛先として Azure Monitor を使用するように既存の Container Apps 環境を更新するには:

''<プレースホルダー>'' は実際の値に置き換えてください。

az containerapp env update \
  --name <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --logs-destination azure-monitor 
  

--logs-destinationazure-monitor に設定されている場合は、診断設定を作成し、az monitor diagnostics-settings コマンドを使用してログ カテゴリの宛先の詳細を構成します。

Azure Monitor 診断設定コマンドの詳細については、「az monitor diagnostic-settings」を参照してください。 Container Apps のログ カテゴリは ContainerAppConsoleLogsContainerAppSystemLogs です。

次のステップ