次の方法で共有


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

Azure Container Apps には、アプリケーション ログを格納および表示するためのオプションが用意されています。 ログ オプションは、Container Apps 環境レベルで構成できます。 ログの保存先として Azure Monitor を選択した場合は、環境レベルとコンテナー アプリ レベルの両方で診断設定を構成できます。

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 で環境のログ オプションを構成するには、次の手順に従います。

  1. ポータルで Container Apps 環境を参照します。

  2. [ 監視>ログ オプションを選択します。

  3. 次の ログ宛先 オプションから選択できます。

    • Azure Log Analytics: このオプションでは、ログ データを格納する Log Analytics ワークスペースを選択します。 ログは Log Analytics クエリを使用して表示できます。 Log Analytics の詳細については、Azure Monitor Log Analytics に関するページを参照してください。
    • Azure Monitor: Azure Monitor によって、ログが宛先にルーティングされます。 このオプションを選択する場合は、このページで [保存] を選択した後、[診断設定] を選んで構成を完了する必要があります。
    • [ログを保存しない]: このオプションを選択すると、ログ データのストレージが無効になります。
  4. [保存] を選択します。

診断設定

ログの保存先として Azure Monitor を選択した場合は、診断設定も構成する必要があります。 診断設定は、環境レベルとコンテナー アプリ レベルの両方で構成できます。

環境レベルで診断設定を構成する

環境の診断設定を構成するには、次の手順に従います。

  1. ポータルの中で環境を参照します。

  2. [監視]>[診断設定] を選択します。 環境のログの宛先を Azure Monitor に設定しただけの場合は、この構成項目が表示されるようにページを更新する必要がある場合があります。

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

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

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

  2. [ 診断設定名] に、診断設定の名前を入力します。

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

  4. アプリ レベルのメトリックを送信する場合は、[>] を選択します。

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

    • Log Analytics ワークスペースに送信: 既存の Log Analytics ワークスペースから選択します。
    • ストレージ アカウントへのアーカイブ: Azure ストレージ アカウントから選択します。
    • イベント ハブへのストリーム: Azure イベント ハブから選択します。
    • パートナー ソリューションに送信する: Azure パートナー ソリューションから選択します。
  6. [保存] を選択します。

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

コンテナー アプリ レベルで診断設定を構成する

コンテナー アプリの診断設定を構成するには、次の手順に従います。

  1. ポータルでコンテナー アプリを参照します。

  2. [監視]>[診断設定] を選択します。 コンテナー アプリ環境のログの保存先を Azure Monitor に設定しただけの場合は、この構成項目が表示されるようにページを更新する必要がある場合があります。

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

  4. [ 診断設定名] に、診断設定の名前を入力します。

  5. [メトリック][AllMetrics] を選択します。

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

    • Log Analytics ワークスペースに送信: 既存の Log Analytics ワークスペースから選択します。
    • [ストレージ アカウントへのアーカイブ]: このオプションは非推奨です。
    • イベント ハブへのストリーム: Azure イベント ハブから選択します。
    • パートナー ソリューションに送信する: Azure パートナー ソリューションから選択します。
  7. [保存] を選択します。

ログ オプションを構成する

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

まず、 Microsoft.Insights 名前空間を登録します。

az provider register --namespace Microsoft.Insights

Log Analytics ワークスペースに送信する

ログの宛先として既存の Log Analytics ワークスペースを使用して Container Apps 環境を作成するには、次のコマンドを実行します。 <PLACEHOLDERS> は、実際の値に置き換えます。 Log Analytics ワークスペースのリソース ID は、Azure portal の Log Analytics ワークスペース ページまたは az monitor log-analytics workspace show コマンドから取得できます。

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

--logs-destination引数は、log-analyticsazure-monitor、およびnoneの値を受け取ります。

Azure Monitor に送信する

ログの保存先として Azure Monitor を使用するように既存の Container Apps 環境を更新するには、次のコマンドを実行します。 <PLACEHOLDERS> は、実際の値に置き換えます:

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

診断設定を構成する

--logs-destinationazure-monitor に設定されている場合は、診断設定を作成して、az monitor diagnostics-settings コマンドを使用してログ カテゴリの宛先の詳細を構成する必要があります。 これらの診断設定は、環境レベルとコンテナー アプリ レベルの両方で構成できます。

環境レベルで診断設定を作成するには、次のコマンドを実行します。 <PLACEHOLDERS> は、実際の値に置き換えます。 環境 ID は、Azure portal の [環境] ページまたは az containerapp env show コマンドから取得できます。

az monitor diagnostic-settings create \
  --name "AllMetricsToLogAnalytics" \
  --resource <ENVIRONMENT_ID> \
  --logs '[{"categoryGroup":"allLogs","enabled":true}]' \
  --metrics '[{"category":"AllMetrics","enabled":true}]' \
  --workspace <LOG_ANALYTICS_RESOURCE_ID>

--logsパラメーターと--metrics パラメーターに指定された JSON 値にスペースがないことを確認します。

--logs パラメーターには、categoryまたはcategoryGroupを指定できますが、一度に両方を指定することはできません。 categoryGroupの場合、使用可能な値はauditされ、allLogsされます。 categoryの場合、使用可能な値はContainerAppConsoleLogsされ、ContainerAppSystemLogsされます。

--metrics パラメーターの場合、使用可能なカテゴリはAllMetricsのみです。

詳細については、「 LogSettingsMetricSettings」を参照してください。

コンテナー アプリ レベルで診断設定を作成するには、次のコマンドを実行します。 <PLACEHOLDERS> は、実際の値に置き換えます。 コンテナー アプリ ID は、Azure portal または az containerapp show コマンドから取得できます。

コンテナー アプリ レベルで診断設定を作成する場合、 --logs パラメーターはサポートされず、 --metrics パラメーターの場合、使用可能なカテゴリは AllMetricsのみです。

az monitor diagnostic-settings create \
--name "AllMetricsToLogAnalytics" \
--resource <CONTAINER_APP_ID> \
--metrics '[{"category":"AllMetrics","enabled":true}]' \
--workspace <LOG_ANALYTICS_RESOURCE_ID>

Azure Monitor 診断設定コマンドの詳細については、「az monitor diagnostic-settings」を参照してください。

制限事項

ログ オプションを設定する際には、次の制限が適用されます。

  • プライベート リンク: Private Link を介した Log Analytics ワークスペースへのログの直接送信はサポートされていません。 ただし、Azure Monitor を使用して、同じ Log Analytics ワークスペースにログを送信できます。 この間接参照は、システム ログ データの損失を防ぐために必要です。

次のステップ