容器深入解析記錄架構

容器深入解析會將它收集的記錄數據儲存在名為 ContainerLogV2 的數據表中。 本文說明此數據表的架構及其從舊版 ContainerLog 數據表的比較和移轉。

重要

ContainerLogV2 是透過 CLI 2.54.0 版和更新版本的 ConfigMap 的默認架構。 ContainerLogV2 將會是使用 ARM、Bicep、Terraform、原則和入口網站上線將容器深入解析與受控識別驗證上線的客戶的預設擷取格式。 ContainerLogV2 可以使用資料收集設定,透過 CLI 2.51.0 版或更高版本明確啟用。

ContainerLog 數據表的支援將於 2026 年 9 月 30 日淘汰。

數據表比較

下表醒目提示使用 ContainerLogV2 和 ContainerLog 架構之間的主要差異。

功能差異 ContainerLog ContainerLogV2
結構描述 ContainerLog 的詳細 數據 ContainerLogV2 的詳細數據。
其他資料列包括:
- ContainerName
- PodName
- PodNamespace.
登入 只能透過 ConfigMap 進行設定。 可透過 ConfigMap 和 DCR 來設定。 1
定價 只與全價分析記錄相容。 除了分析記錄之外,還支援低成本 的基本記錄 層。
查詢 針對標準查詢,需要具有清查數據表的多個聯結作業。 包含額外的Pod和容器元數據,以減少查詢複雜性和聯結作業。
多行 不支援多行專案會分割成多個數據列。 支援多行記錄,以允許多行輸出的合併單一專案。

1使用服務主體驗證型叢集的叢集不支援 DCR 設定。 使用服務主體將叢集移轉至受控識別 ,以使用此體驗。

注意

如果傳入的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 架構

您可以使用叢集的數據收集規則 (DCR) 或 ConfigMap,為叢集啟用 ContainerLogV2 架構。 如果啟用這兩個設定,則 ConfigMap 會優先使用。 當 DCR 和 ConfigMap 明確設定為關閉時,Stdout 和 stderr 記錄只會內嵌至 ContainerLog 數據表。

Container Insights 中的多行記錄

啟用多行記錄后,先前分割的容器記錄會合併在一起,並以單一專案傳送至 ContainerLogV2 數據表。 如果縫合的記錄行大於 64 KB,則會因為 Log Analytics 工作區限制而遭到截斷。 這項功能也支援 .NET、Go、Python 和 Java 堆棧追蹤,其會顯示為 ContainerLogV2 數據表中的單一專案。 使用 ConfigMap 啟用多行記錄,如使用 ConfigMap 在容器深入解析中設定數據收集中所述

下列螢幕快照顯示 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.

下一步