Share via


使用 Log Analytics 監視 Azure Container Apps 中的記錄

Azure Container Apps 與 Azure 監視器 Log Analytics 整合,可監視和分析容器應用程式的記錄。 選取為記錄監視解決方案時,您的 Container Apps 環境會包含 Log Analytics 工作區,提供一個通用位置來儲存環境中執行之所有容器應用程式的系統和應用程式記錄資料。

使用 Azure CLI 透過 Azure 入口網站 或命令殼層查詢 Log Analytics 資料表,即可存取記錄專案。

容器應用程式有兩種類型的記錄。

  • 應用程式發出的主控台記錄。
  • 由 Container Apps 服務發出的系統記錄。

系統記錄

Container Apps 服務會在容器應用程式層級提供系統記錄訊息。 系統記錄會發出下列訊息:

Source 類型 訊息
Dapr 資訊 已成功使用範圍 < dapr-component-scope 建立 dapr 元件 < 元件名稱 >>
Dapr 資訊 已成功使用範圍 < 元件類型更新 dapr 元件 < 元件名稱 >>
Dapr 錯誤 建立 dapr 元件元件 < 名稱時發生錯誤>
磁片區掛接 資訊 已成功掛接修訂 < 修訂範圍的磁片 < 區磁片區名稱 >>
磁片區掛接 錯誤 掛接磁片區 < 名稱時發生錯誤>
網域系結 資訊 成功將網域 < 網域 > 系結至容器應用程式容器應用程式 < 名稱>
驗證 資訊 在應用程式上啟用驗證。 建立驗證設定
驗證 資訊 已成功建立驗證設定
流量權數 資訊 為修訂修訂 < 名稱設定百分比的流量權數 < 百分比 > \>
修訂布建 資訊 建立新的修訂: < revision-name>
修訂布建 資訊 已成功布建修訂 < 名稱>
修訂布建 資訊 停用 'ActiveRevisionsMode=Single' 後的舊修訂
修訂布建 錯誤 布建修訂修訂 < 名稱 > 時發生錯誤。 ErrorCode: < [ErrImagePull]|[逾時]|[ContainerCrashing]>

查詢資料表即可存取 ContainerAppSystemLogs_CL 系統記錄資料。 資料表中最常使用的容器應用程式特定資料行包括:

資料行 描述
ContainerAppName_s 容器應用程式名稱
EnvironmentName_s Container Apps 環境名稱
Log_s 記錄訊息
RevisionName_s 修訂名稱

主控台記錄

主控台記錄來自 stderr 容器應用程式和 Dapr 側車中容器的 和 stdout 訊息。 您可以查詢 ContainerAppConsoleLogs_CL 資料表來檢視主控台記錄。

提示

使用定義完善的記錄訊息檢測程式碼,可協助您瞭解程式碼的執行方式,以及偵錯問題。 若要深入瞭解最佳做法, 請參閱設計作業

ContainerAppConsoleLogs_CL中最常用的容器應用程式特定資料行包括:

資料行 描述
ContainerAppName_s 容器應用程式名稱
ContainerGroupName_g 複本名稱
ContainerId_s 容器識別碼
ContainerImage_s 容器映射名稱
EnvironmentName_s Container Apps 環境名稱
Log_s 記錄訊息
RevisionName_s 修訂名稱

使用記錄分析查詢記錄

Log Analytics 是Azure 入口網站中可用來檢視和分析記錄資料的工具。 使用 Log Analytics,您可以撰寫 Kusto 查詢,然後排序、篩選及視覺化圖表中的結果,以找出趨勢並找出問題。 您可以使用查詢結果以互動方式運作,或使用它們與其他功能,例如警示、儀表板和活頁簿。

Azure 入口網站

容器應用程式頁面上側邊欄中的 [記錄 ] 啟動 Log Analytics。 您也可以從 監視 > 記錄 啟動 Log Analytics。

您可以使用 [CustomLogs 類別 資料表] 索引標籤中列出的 資料表來查詢記錄。此類別中的資料表是 ContainerAppSystemlogs_CLContainerAppConsoleLogs_CL 資料表。

Screenshot of the Log Analytics custom log tables.

以下是 Kusto 查詢,其會顯示名為 album-api 之容器應用程式的主控台記錄專案。

ContainerAppConsoleLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s
| take 100

以下是 Kusto 查詢,其會顯示名為 album-api 之容器應用程式的系統記錄專案。

ContainerAppSystemLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, EnvName=EnvironmentName_s, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s
| take 100

如需 Log Analytics 和記錄查詢的詳細資訊,請參閱 Log Analytics 教學課程

Azure CLI/PowerShell

您可以使用 Azure CLI 來查詢 容器應用程式記錄。

這些範例 Azure CLI 查詢會輸出資料表,其中包含容器應用程式名稱 album-api 的記錄檔記錄。 資料表資料行是由 運算子之後 project 的參數所指定。 變數 $WORKSPACE_CUSTOMER_ID 包含 Log Analytics 工作區的 GUID。

此範例會 ContainerAppConsoleLogs_CL 查詢資料表:

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s, LogLevel_s | take 5" --out table

此範例會 ContainerAppSystemLogs_CL 查詢資料表:

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppSystemLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s, LogLevel_s | take 5" --out table

下一步