Container Insights のログ スキーマ

Container Insights では、収集されたログ データが ContainerLogV2 というテーブルに格納されます。 この記事では、このテーブルのスキーマと、従来の ContainerLog テーブルとの比較と移行について説明します。

重要

ContainerLogV2 は、CLI バージョン 2.54.0 以降の ConfigMap を使用した既定のスキーマになります。 ContainerLogV2 は、ARM、Bicep、Terraform、Policy、Portal のオンボードを使用してマネージド ID 認証でコンテナー分析情報をオンボードするお客様の既定のインジェスト形式になります。 ContainerLogV2 は、データ収集設定を使用して、CLI バージョン 2.51.0 以降で明示的に有効にすることができます。

ContainerLog テーブルのサポートは、2026 年 9 月 30 日に廃止されます。

テーブルの比較

次の表に、ContainerLog と ContainerLogV2 のスキーマを使用する場合の主な違いを示します。

機能の違い ContainerLog ContainerLogV2
[スキーマ] ContainerLog の詳細。 ContainerLogV2 の詳細。
その他の列は次のとおりです。
- ContainerName
- PodName
- PodNamespace
オンボード ConfigMap を使用してのみ構成可能。 ConfigMap と DCR の両方を使用して構成可能。 1
価格 完全な価格の分析ログとのみ互換性があります。 分析ログに加えて、低コストの基本ログ レベルをサポートします。
クエリ実行 標準クエリに対してインベントリ テーブルを使用する複数の結合操作が必要です。 クエリの複雑さと結合操作を減らすために、追加のポッドとコンテナーのメタデータが含まれています。
Multiline サポートされていません。複数行のエントリは複数の行に分割されます。 複数行の出力に対して統合された単一エントリを可能にするために、複数行ログがサポートされます。

サービス プリンシパル認証ベースのクラスターを使用するクラスターでは、1 つのDCR 構成はサポートされていません。 このエクスペリエンスを使用するには、サービス プリンシパルを持つクラスターをマネージド ID に移行してください。

Note

受信 LogMessage が有効な JSON でない場合、イベント ハブ とストレージ アカウントへのエクスポートはサポートされません。 最適なパフォーマンスを得るには、JSON 形式でコンテナー ログを出力することをお勧めします。

既存のアラートに対する影響を評価する

ContainerLogsV2 スキーマを有効にする前に、ContainerLog テーブルに依存する警告ルールがあるかどうかを評価する必要があります。 このようなアラートは、新しいテーブルを使用するために更新する必要があります。

ContainerLog テーブルを参照しているアラートをスキャンして見つけるには、次の Azure Resource Graph クエリを実行してください。

resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "ContainerLog"
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

ContainerLogV2 スキーマを有効にする

クラスターに対して ContainerLogV2 スキーマを有効にするには、クラスターのデータ収集規則 (DCR) または ConfigMap を使用してください。 両方の設定が有効になっている場合、ConfigMap が優先されます。 Stdout ログと stderr ログは、DCR と ConfigMap の両方が明示的に off に設定されている場合にのみ ContainerLog テーブルに取り込まれます。

コンテナー分析情報での複数行のログ

複数のログが有効になっている場合は、以前に分割されたコンテナー ログが結合され、ContainerLogV2 テーブルに単一のエントリとして送信されます。 結合されたログ行が 64 KB を超える場合は、Log Analytics ワークスペースの制限により切り捨てられます。 この機能では、.NET、Go、Python、Java スタック トレースもサポートされています。ContainerLogV2 テーブルに単一エントリとして表示されます。 ConfigMap を使用した Container Insights でのデータ収集の構成に説明されているように、ConfigMapで複数行のログ記録を有効にしてください。

Note

configmap に言語仕様オプションが追加されました。ここでは、顧客が必要な言語のみを選択できます。 この機能を有効にするには、configmap の stacktrace_languages オプションで言語を編集します。

次のスクリーンショットは、Go 例外スタック トレースの複数行のログを示しています。

複数行ログが無効な場合

Screenshot that shows Multi-line logging disabled.

複数行ログが有効な場合

Screenshot that shows Multi-line enabled.

Java スタック トレース

Screenshot that shows Multi-line enabled for Java.

Python スタック トレース

Screenshot that shows Multi-line enabled for Python.

次のステップ