分享方式:


使用 Azure 監視器記錄的容器群組和執行個體記錄

Log Analytics 工作區提供集中式位置,不僅可讓您從 Azure 資源儲存及查詢記錄資料,對於內部部署資源與其他雲端中的資源,也可執行這些作業。 Azure 容器執行個體包含將記錄和事件資料傳送至 Azure 監視器記錄的內建支援。

若要將容器群組記錄和事件資料傳送至 Azure 監視器記錄,請在設定容器群組時,指定現有的 Log Analytics 工作區識別碼和工作區索引鍵。

下列各節說明如何建立已啟用記錄功能的容器群組,以及如何查詢記錄。 您也可以使用工作區識別碼和工作區索引鍵來更新容器群組,以啟用記錄功能。

注意

本文最近有所更新,改為使用「Azure 監視器記錄」一詞,而非 Log Analytics。 記錄資料仍儲存在 Log Analytics 工作區中,並仍由相同的 Log Analytics 服務收集和分析。 我們會持續更新術語,以更精確地反映 Azure 監視器記錄的角色。 如需詳細資料,請參閱 Azure 監視器遙測變更

必要條件

若要在您的容器執行個體中啟用記錄,您必須具備下列項目:

取得 Log Analytics 認證

Azure 容器執行個體必須具備將資料傳送至 Log Analytics 工作區的權限。 若要授與此權限並啟用記錄,您必須在建立容器群組時提供 Log Analytics 工作區識別碼,以及它的其中一個金鑰 (主要或次要)。

若要取得記錄分析工作區識別碼和主要金鑰:

  1. 在 Azure 入口網站中瀏覽至您的 Log Analytics 工作區
  2. 在 [設定] 之下,選取 [代理程式管理]
  3. 記下:
    • 工作區識別碼
    • 主要金鑰

建立容器群組

現在您已有記錄分析工作區識別碼和主要金鑰,接下來即可建立已啟用記錄的容器群組。

下列範例示範建立由單一 fluentd 容器組成之容器群組的兩種方式:Azure CLI,以及搭配 YAML 範本使用的 Azure CLI。 Fluentd 容器在其預設組態中會產生數行輸出。 此輸出會傳送到您的 Log Analytics 工作區,因此很適合用來示範記錄的檢視和查詢。

使用 Azure CLI 進行部署

若要使用 Azure CLI 進行部署,請在 az container create 命令中指定 --log-analytics-workspace--log-analytics-workspace-key 參數。 在執行下列命令之前,請先將兩個工作區值取代為您在先前的步驟中取得的值 (並更新資源群組名稱)。

注意

下列範例會從 Docker Hub 提取公用容器映像。 建議您設定提取祕密,以使用 Docker Hub 帳戶進行驗證,而不是發出匿名提取要求。 若要改善使用公用內容時的可靠性,請在私人 Azure 容器登錄中匯入和管理映像。 深入了解使用公用映像

az container create \
    --resource-group myResourceGroup \
    --name mycontainergroup001 \
    --image fluent/fluentd:v1.3-debian-1 \
    --log-analytics-workspace <WORKSPACE_ID> \
    --log-analytics-workspace-key <WORKSPACE_KEY>

使用 YAML 進行部署

如果您想要使用 YAML 部署容器群組,請使用此方法。 下列 YAML 會定義具有單一容器的容器群組。 請將 YAML 複製到新檔案中,然後將 LOG_ANALYTICS_WORKSPACE_IDLOG_ANALYTICS_WORKSPACE_KEY 取代為您在先前的步驟中取得的值。 將檔案儲存為 deploy-aci.yaml

注意

下列範例會從 Docker Hub 提取公用容器映像。 建議您設定提取祕密,以使用 Docker Hub 帳戶進行驗證,而不是發出匿名提取要求。 若要改善使用公用內容時的可靠性,請在私人 Azure 容器登錄中匯入和管理映像。 深入了解使用公用映像

apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
  containers:
  - name: mycontainer001
    properties:
      environmentVariables: []
      image: fluent/fluentd:v1.3-debian-1
      ports: []
      resources:
        requests:
          cpu: 1.0
          memoryInGB: 1.5
  osType: Linux
  restartPolicy: Always
  diagnostics:
    logAnalytics:
      workspaceId: LOG_ANALYTICS_WORKSPACE_ID
      workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups

接下來,執行下列命令以部署容器群組。 請將 myResourceGroup 取代為您訂用帳戶中的資源群組 (或先建立名為 "myResourceGroup" 的資源群組):

az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml

在發出命令不久後,您應該就會收到 Azure 的回應,其中包含部署詳細資料。

檢視記錄

在您部署容器群組之後,可能需要幾分鐘的時間 (最多 10 分鐘),第一個記錄項目才會出現在 Azure 入口網站中。

若要在 ContainerInstanceLog_CL 資料表中檢視容器群組的記錄:

  1. 在 Azure 入口網站中瀏覽至您的 Log Analytics 工作區
  2. 在 [一般] 之下,選取 [記錄]
  3. 執行下列查詢:ContainerInstanceLog_CL | limit 50
  4. 選取 [執行]

您應該會看到查詢所顯示的數個結果。 如果一開始未看到任何結果,請等候數分鐘,然後再選取 [執行] 按鈕重新執行查詢。 根據預設,記錄項目會以 [資料表] 格式顯示。 接著,您可以展開資料列來查看個別記錄項目的內容。

Azure 入口網站中的記錄搜尋結果

檢視事件

您也可以在 Azure 入口網站中,檢視容器執行個體的事件。 事件包括執行個體的建立時間和啟動時間。 若要在 ContainerEvent_CL 資料表中檢視事件資料:

  1. 在 Azure 入口網站中瀏覽至您的 Log Analytics 工作區
  2. 在 [一般] 之下,選取 [記錄]
  3. 執行下列查詢:ContainerEvent_CL | limit 50
  4. 選取 [執行]

您應該會看到查詢所顯示的數個結果。 如果一開始未看到任何結果,請等候數分鐘,然後再選取 [執行] 按鈕重新執行查詢。 根據預設,項目會以 [資料表] 格式顯示。 接著,您可以展開資料列來查看個別項目的內容。

Azure 入口網站中的事件搜尋結果

查詢容器記錄

Azure 監視器記錄包含涵蓋範圍廣大的查詢語言,可從可能高數千行的記錄輸出中提取資訊。

查詢的基本結構是一個來源資料表 (在本文為 ContainerInstanceLog_CLContainerEvent_CL),後面接著一系列由管道字元 (|) 隔開的運算子。 您可以鏈結數個運算子,以找出更精確的結果及執行進階函式。

若要查看範例查詢結果,請將下列查詢貼到查詢文字方塊中,然後選取 [執行] 按鈕以執行查詢。 此查詢會顯示 [訊息] 欄位中包含「警告」一詞的所有記錄項目:

ContainerInstanceLog_CL
| where Message contains "warn"

此外也支援更複雜的查詢。 例如,下列查詢只會顯示過去一小時內為 "mycontainergroup001" 容器群組產生的記錄項目:

ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))

記錄檔結構描述

若要了解 Log Analytics 的 Azure 監視器舊版結構描述,請參閱舊版 Log Analytics 資料表

使用診斷設定

較新的資料表需要使用診斷設定,將資訊路由傳送至 Log Analytics。 容器執行個體的診斷設定處於公開預覽狀態,而且可透過 Azure 入口網站中的預覽功能選項來啟用。

若要深入了解,請參閱 Azure 監視器 Log Analytics 資料表

下一步

Azure 監視器記錄

如需關於在 Azure 監視器記錄中查詢記錄和設定警示的詳細資訊,請參閱:

監視容器 CPU 和記憶體

如需監視容器執行個體 CPU 和記憶體資源的相關資訊,請參閱: