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 で環境のログ オプションを構成するには、次の手順に従います。
ポータルで Container Apps 環境を参照します。
[ 監視>ログ オプションを選択します。
次の ログ宛先 オプションから選択できます。
- Azure Log Analytics: このオプションでは、ログ データを格納する Log Analytics ワークスペースを選択します。 ログは Log Analytics クエリを使用して表示できます。 Log Analytics の詳細については、Azure Monitor Log Analytics に関するページを参照してください。
- Azure Monitor: Azure Monitor によって、ログが宛先にルーティングされます。 このオプションを選択する場合は、このページで [保存] を選択した後、[診断設定] を選んで構成を完了する必要があります。
- [ログを保存しない]: このオプションを選択すると、ログ データのストレージが無効になります。
[保存] を選択します。
診断設定
ログの保存先として Azure Monitor を選択した場合は、診断設定も構成する必要があります。 診断設定は、環境レベルとコンテナー アプリ レベルの両方で構成できます。
環境レベルで診断設定を構成する
環境の診断設定を構成するには、次の手順に従います。
ポータルの中で環境を参照します。
[監視]>[診断設定] を選択します。 環境のログの宛先を Azure Monitor に設定しただけの場合は、この構成項目が表示されるようにページを更新する必要がある場合があります。
宛先の詳細は ''診断設定'' として保存されます。 環境に対して最大 5 つの診断設定を作成できます。 診断設定ごとに異なるログ カテゴリを構成できます。 たとえば、1 つの診断設定を作成してシステム ログ カテゴリを 1 つの宛先に送信するようにし、もう 1 つはコンテナー コンソール ログ カテゴリを別の宛先に送信するために作成します。
新しい診断設定を作成するには:
[診断設定の追加] を選択します。
[ 診断設定名] に、診断設定の名前を入力します。
この宛先に送信するログの [カテゴリ グループ] または [カテゴリ] を選択します。 1 つまたは複数のカテゴリを選択できます。
アプリ レベルのメトリックを送信する場合は、[>] を選択します。
1 つまたは複数の [宛先の詳細] を選択します。
- Log Analytics ワークスペースに送信: 既存の Log Analytics ワークスペースから選択します。
- ストレージ アカウントへのアーカイブ: Azure ストレージ アカウントから選択します。
- イベント ハブへのストリーム: Azure イベント ハブから選択します。
- パートナー ソリューションに送信する: Azure パートナー ソリューションから選択します。
[保存] を選択します。
診断設定の詳細については、「Azure Monitor の診断設定」を参照してください。
コンテナー アプリ レベルで診断設定を構成する
コンテナー アプリの診断設定を構成するには、次の手順に従います。
ポータルでコンテナー アプリを参照します。
[監視]>[診断設定] を選択します。 コンテナー アプリ環境のログの保存先を Azure Monitor に設定しただけの場合は、この構成項目が表示されるようにページを更新する必要がある場合があります。
[診断設定の追加] を選択します。
[ 診断設定名] に、診断設定の名前を入力します。
[メトリック] で [AllMetrics] を選択します。
1 つまたは複数の [宛先の詳細] を選択します。
- Log Analytics ワークスペースに送信: 既存の Log Analytics ワークスペースから選択します。
- [ストレージ アカウントへのアーカイブ]: このオプションは非推奨です。
- イベント ハブへのストリーム: Azure イベント ハブから選択します。
- パートナー ソリューションに送信する: Azure パートナー ソリューションから選択します。
[保存] を選択します。
ログ オプションを構成する
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-analytics
、azure-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-destination
が azure-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
のみです。
詳細については、「 LogSettings と MetricSettings」を参照してください。
コンテナー アプリ レベルで診断設定を作成するには、次のコマンドを実行します。
<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 ワークスペースにログを送信できます。 この間接参照は、システム ログ データの損失を防ぐために必要です。