使用 Log Analytics 查詢及分析記錄檔

本文說明如何使用記錄檔分析功能查詢及分析記錄檔資料。這項功能提供以 SQL 為基礎的查詢介面。您可以使用 SQL 執行下列工作:計算符合模式的欄位記錄檔項目。記錄檔分析提供 SQL 編輯器和以選單為基礎的查詢建構系統。 如要查看查詢結果,可以使用表格形式,也可以將資料以圖表呈現。您可以將圖表儲存至自訂資訊主頁。

您可以查詢記錄檔值區中的記錄檢視畫面,或數據分析檢視畫面。查詢記錄檢視時,結構定義會對應至 LogEntry 資料結構的結構定義。由於資料檢視的建立者會決定結構定義,因此資料檢視的用途之一,就是將 LogEntry 格式的記錄資料轉換成更適合您的格式。

記錄分析不會重複記錄項目,這可能會影響您編寫查詢的方式。此外,使用記錄檔分析工具時會有一些限制。 如要進一步瞭解這些主題,請參閱下列文件:

關於連結的資料集

記錄分析支援建立連結的 BigQuery 資料集,讓 BigQuery 擁有基礎資料的讀取權限。如果選擇建立連結的資料集,則可以執行下列操作:

本文不會說明如何建立連結的資料集,也不會說明如何設定 Log Analytics,以便在預留的時段執行查詢。如要瞭解這些主題,請參閱「在 BigQuery 中查詢連結的資料集」。

事前準備

本節說明使用記錄分析前必須完成的步驟。

設定記錄檔 bucket

確認記錄檔 bucket 已升級,可使用記錄檔分析功能:

  1. 在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:

    前往「Logs Storage」(記錄檔儲存空間)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 針對要查詢記錄檢視區塊的每個記錄 bucket,請確認「可使用記錄檔分析」欄顯示「開啟」。如果顯示「升級」,請按一下「升級」並完成對話方塊。

設定 IAM 角色和權限

本節說明使用記錄檔分析功能所需的 IAM 角色或權限:

  • 如要取得使用記錄檔分析和查詢記錄檔檢視畫面所需的權限,請要求管理員將專案的下列 IAM 角色授予您:

    • 如要查詢 _Required_Default 記錄檔值區: 記錄檢視器 (roles/logging.viewer)
    • 如要查詢專案中的所有記錄檢視區塊: 「記錄檢視存取者」 (roles/logging.viewAccessor)

    如要將主體限制為特定記錄檢視畫面,請在專案層級授予記錄檢視畫面存取者角色時新增 IAM 條件,或是在記錄檢視畫面的政策檔案中新增 IAM 繫結。詳情請參閱控管記錄檢視畫面存取權

    您必須具備這些權限,才能在「記錄檔探索器」頁面查看記錄項目。如要瞭解查詢使用者定義值區中的檢視畫面,或查詢 _Default 記錄檔值區的 _AllLogs 檢視畫面時,需要哪些其他角色,請參閱「Cloud Logging 角色」。

  • 如要取得查詢 Analytics 檢視畫面所需的權限,請要求管理員授予您專案的「可觀測性 Analytics 使用者」 (roles/observability.analyticsUser) IAM 角色。

查詢記錄檔資料

本節說明可用於查詢記錄資料的方法:

  • 載入系統定義的查詢、編輯查詢,然後執行查詢。
  • 輸入並執行自訂查詢。舉例來說,您可以貼上或撰寫查詢。自訂查詢可包含聯結、巢狀查詢和其他複雜的 SQL 陳述式。如需範例,請參閱「SQL 查詢範例」。
  • 選取選單選項來建構查詢,然後執行該查詢。 記錄檔分析會將您的選取項目轉換為 SQL 查詢,您可查看及編輯查詢。

載入、編輯及執行系統定義查詢

  1. 在 Google Cloud 控制台中,前往「Log Analytics」(記錄檔分析) 頁面:

    前往「Log Analytics」(記錄檔分析)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 在「資料檢視」選單中,前往「區隔」「記錄」或「資料表」「數據分析資料檢視」部分,然後選取要查詢的資料檢視。

    如要尋找要查詢的檢視區塊,請使用「篩選」列,或捲動清單:

    • 記錄檢視會依 BUCKET_ID.LOG_VIEW_ID 列出,這些欄位是指記錄 bucket 和記錄檢視的 ID。

    • Analytics 資料檢視會依 LOCATION.ANALYTICS_VIEW_ID 列出,其中這些欄位是指 Analytics 資料檢視的位置和 ID。分析檢視畫面目前為公開測試版。

  3. 執行下列其中一個步驟:

    • 如要載入依據「查詢產生器」定義的系統查詢 (可透過選單選項定義查詢),請確認「查詢」窗格顯示「查詢產生器」。如果系統顯示 SQL 編輯器,請按一下「建構工具」圖示

    • 如要載入擷取 JSON 值的系統定義查詢,請確認「查詢」窗格顯示 SQL 編輯器。如果這個窗格顯示「查詢產生器」,請按一下 「SQL」

  4. 在「結構定義」窗格中選取「查詢」,然後按一下「覆寫」

    「Query」(查詢) 窗格會顯示系統定義的查詢。如果您選取「查詢產生器」模式,但想查看 SQL 查詢,請按一下 「SQL」

  5. 選用:修改查詢。

  6. 如要執行查詢,請前往工具列並選取「執行查詢」

    記錄分析會以表格形式呈現查詢結果。不過,您可以建立圖表,也可以將表格或圖表儲存至自訂資訊主頁。詳情請參閱「繪製 SQL 查詢結果圖表」。

    如果工具列顯示「在 BigQuery 中執行」,則需要切換 Log Analytics,使用預設查詢引擎。如要進行這項變更,請在「查詢」窗格的工具列中,依序點選 「設定」和「Analytics (預設)」

輸入並執行自訂查詢

如要輸入 SQL 查詢,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Log Analytics」(記錄檔分析) 頁面:

    前往「Log Analytics」(記錄檔分析)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 在「查詢」窗格中,按一下「SQL」

    • 如要指定時間範圍,建議使用時間範圍選取器。如果您新增指定 timestamp 欄位的 WHERE 子句,該值就會覆寫時間範圍選取器中的設定,且該選取器會停用。

    • 如需範例,請參閱「SQL 查詢範例」。

    • 您可以查詢記錄檢視畫面數據分析檢視畫面。請使用下列格式表示 FROM 子句:

      • 記錄檢視畫面:

        FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
        
      • Analytics 資料檢視:

        FROM `analytics_view.PROJECT_ID.LOCATION.ANALYTICS_VIEW_ID`
        

      上述運算式中的欄位具有下列意義:

      • PROJECT_ID:專案的 ID。
      • LOCATION:記錄檢視畫面或數據分析檢視畫面的位置。
      • BUCKET_ID:記錄值區的名稱或 ID。
      • LOG_VIEW_ID:記錄檢視的 ID,最多 100 個字元,只能包含英文字母、數字、底線和連字號。
      • ANALYTICS_VIEW_ID:Analytics 檢視區塊的 ID,最多 100 個字元,只能包含英文字母、數字、底線和連字號。

    如果查詢窗格顯示的錯誤訊息參照 FROM 陳述式,表示系統找不到檢視區塊。如要瞭解如何解決這項失敗問題,請參閱Error FROM clause must contain exactly one log view

  3. 如要執行查詢,請前往工具列並選取「執行查詢」

    記錄分析會以表格形式呈現查詢結果。不過,您可以建立圖表,也可以將表格或圖表儲存至自訂資訊主頁。詳情請參閱「繪製 SQL 查詢結果圖表」。

    如果工具列顯示「在 BigQuery 中執行」,則需要切換 Log Analytics,使用預設查詢引擎。如要進行這項變更,請在「查詢」窗格的工具列中,依序點選 「設定」和「Analytics (預設)」

建構、編輯及執行查詢

您可以在「查詢產生器」介面中,從選單中選取項目來建立查詢。記錄檔分析工具會將您的選取項目轉換為 SQL 查詢,您可以查看及編輯。舉例來說,您可能會先使用查詢建構工具介面,然後切換至 SQL 編輯器來修正查詢。

記錄檔分析功能一律會將查詢建構工具介面中的選單選項轉換為 SQL 查詢。不過,並非所有 SQL 查詢都能以查詢建構工具介面表示。舉例來說,這個介面無法表示含有聯結的查詢。

如要建構查詢,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Log Analytics」(記錄檔分析) 頁面:

    前往「Log Analytics」(記錄檔分析)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 如果「查詢」窗格顯示 SQL 編輯器,請選取 「建構工具」,開啟「查詢建構工具」窗格。

  3. 使用「來源」和「欄位」選單,選取要在結果表格中顯示的檢視畫面和資料欄。您選取的項目會對應至 SQL 查詢中的 FROMSELECT 子句。

  4. 選用:使用下列選單限制或格式化結果表格:

    • 搜尋所有欄位:搜尋相符的字串。所選項目會對應至 SQL 查詢中的 WHERE 子句。

    • 篩選器:如要將查詢範圍限制在含有特定屬性或時距 ID 的時距,請新增篩選器。選單會列出所有可用的篩選器選項。所選項目會對應至 SQL 查詢中的 WHERE 子句。

    • 排序依據:設定要排序的資料欄,以及排序方式為遞增或遞減。所選項目會對應至 SQL 查詢中的 ORDER BY 子句。

    • 限制:設定結果表格中的資料列數量上限。系統會將您的選取項目對應至 SQL 查詢中的 LIMIT 子句。

  5. 如要執行查詢,請前往工具列並選取「執行查詢」

    記錄分析會以表格形式呈現查詢結果。不過,您可以建立圖表,也可以將表格或圖表儲存至自訂資訊主頁。詳情請參閱「繪製 SQL 查詢結果圖表」。

    如果工具列顯示「在 BigQuery 中執行」,則需要切換 Log Analytics,使用預設查詢引擎。如要進行這項變更,請在「查詢」窗格的工具列中,依序點選 「設定」和「Analytics (預設)」

顯示結構定義

結構定義會指定資料的儲存方式,包括欄位和資料類型。這項資訊對您來說非常重要,因為結構定義會決定您查詢的欄位,以及是否需要將欄位轉換為其他資料類型。舉例來說,如要編寫查詢來計算 HTTP 要求的平均延遲時間,您必須瞭解如何存取延遲時間欄位,以及該欄位是以整數 (如 100) 還是字串 (如 "100") 形式儲存。如果延遲資料是以字串形式儲存,查詢必須先將值轉換為數值,才能計算平均值。

如要找出結構定義,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Log Analytics」(記錄檔分析) 頁面:

    前往「Log Analytics」(記錄檔分析)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 在「資料檢視」選單中,前往「區隔」「記錄」或「資料表」「數據分析資料檢視」部分,然後選取要查詢的資料檢視。

    「結構定義」窗格會更新。如果資料類型為 JSON,Log Analytics 會自動推斷資料欄的欄位。如要查看這些推斷欄位在資料中出現的頻率,請按一下「選項」,然後選取「查看資訊和說明」

    記錄檢視畫面會使用固定結構定義,對應於 LogEntry。如果是分析檢視畫面,您可以修改 SQL 查詢來變更結構定義。

後續步驟