圖表 SQL 查詢結果

本文件說明如何繪製 Log Analytics 查詢結果,協助您找出記錄檔資料中的模式和趨勢。您可以使用 SQL 查詢,透過 Log Analytics 搜尋及匯總記錄檔,產生實用的洞察資訊。

執行查詢後,您可以查看查詢結果表格或將查詢結果轉換為圖表,並將查詢和圖表化結果儲存到資訊主頁。舉例來說,如要查看記錄產生的嚴重性類型,請建立圖表,顯示過去 12 小時內產生的記錄數量,並依 severity 細分記錄。下圖顯示資料點細分為不同嚴重性類型:

範例圖表:按嚴重性劃分。

事前準備

本節說明您必須完成的步驟,才能使用 Log Analytics。

設定記錄檔 bucket

確認記錄檔值區已升級,可使用 Log Analytics:

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

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

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

  2. 針對每個含有您要查詢的記錄檢視畫面的記錄值區,請確認「可用 Log Analytics」欄顯示「開啟」。如果畫面顯示「Upgrade」,請按一下「Upgrade」,然後完成對話方塊。

設定 IAM 角色和權限

本節說明使用 Log Analytics 所需的 IAM 角色或權限:

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

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

    您可以將特定記錄檢視畫面限制給特定使用者,方法是將 IAM 條件新增至專案層級的記錄檢視畫面存取者角色授權,或是將 IAM 繫結新增至記錄檢視畫面的政策檔案。詳情請參閱「控管對記錄檢視畫面的存取權」。

    這些權限與您在「Logs Explorer」頁面上查看記錄項目時所需的權限相同。如要瞭解需要其他角色才能查詢使用者定義值區的檢視畫面,或查詢 _Default 記錄值區的 _AllLogs 檢視畫面,請參閱「Cloud Logging 角色」。

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

  • 如要取得建立圖表所需的權限,請要求管理員為您授予專案的 Monitoring 編輯者 (roles/monitoring.editor) IAM 角色。

選取要繪製圖表的資料

如要設定圖表要顯示的資料,請使用 SQL 建構查詢。選取「圖表」分頁後,圖表會顯示查詢結果。執行查詢並產生圖表後,您可以變更圖表類型並選取資料欄,以自訂圖表設定,查看不同的資料。

如要將查詢結果以圖表形式查看,請按照下列步驟執行查詢:

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

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

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

  2. 在「查詢」窗格中輸入查詢,然後點選「執行」

  3. 查詢完成後,請在「結果」分頁中選取查詢結果的檢視方式:

    • 表格:僅限表格格式。

    • 圖表:僅限圖表格式

    • 兩者皆有:圖表和表格格式。

      選取查詢結果的查看方式後,您可以為所選視覺化項目設定任何欄位,然後將查詢和結果儲存到自訂資訊主頁。選取「表格」選項後,系統會以表格格式儲存資料。否則,格式為圖表。

      針對圖表,視覺化選項可讓您選取圖表類型,以及要繪製的資料列和資料欄。如要進一步瞭解圖表設定,請參閱「自訂圖表設定」。

自訂圖表設定

您可以變更圖表類型、選取要納入圖表的維度和評估指標,以及套用細目資料,來自訂圖表設定。維度用於分組或分類資料列,也是 X 軸值。「評估」或 Y 軸值,是根據 Y 軸繪製的資料序列。

變更圖表類型

您可以根據所選列和欄的類型 (做為維度和指標),以及您希望如何呈現資料,從下列圖表類型中選擇。

  • 長條圖 (預設):長條圖會在兩個軸上繪製資料。如果圖表使用類別或字串做為維度,您可以將長條圖的圖表設定設為水平或垂直,這樣維度和測量軸就會互換。

  • 折線圖:折線圖可用來顯示資料隨時間的變化。使用折線圖時,每個時間序列都會以不同的線條顯示,對應您選取的指標。

    如果 X 軸是時間軸,則每個資料點都會置於時間間隔的開頭。每個資料點都會透過線性內插連接。

  • 堆疊面積圖:面積圖是以折線圖為基礎,每條折線下方的區域都會著色。在面積圖中,資料系列會以堆疊方式顯示。舉例來說,如果您有兩個相同的序列,這些序列會在折線圖中重疊,但在面積圖中會堆疊陰影區域。

  • 圓餅圖或圓形圖:圓餅圖會使用圓圈代表整個資料集,圓圈內的扇形則代表資料集中的類別,藉此顯示資料集中的類別與整個資料集的關係。楔形的大小表示該類別占總值的比重 (通常以百分比表示)。

  • 表格:表格會顯示查詢結果中的每個資料列。資料表中的資料欄由 SELECT 子句定義。如果您打算在資訊主頁上以表格形式顯示資料,請使用 LIMIT 子句,限制結果中的列數量少於幾百個。

  • 量測儀或評量表:量測儀和評量表會根據該值與一組閾值的比較結果,提供最新值和綠色、琥珀色或紅色的指標。與只顯示最近值資訊的儀表不同,分數卡還可納入過去值的資訊。

    只有在查詢結果至少包含一列,且該列包含含有時間戳記的欄和含有數值資料的欄時,儀表和分數卡才能顯示查詢結果。查詢結果可包含多個資料列和兩個以上的欄。

    如要將時間為依據的匯總作業納入查詢,請執行下列操作:

    • 設定查詢,以便匯總特定時間間隔內的資料、依時間戳記遞減排序結果,以及限制結果中的資料列數。您可以使用 LIMIT 子句或時間範圍選取器,限制查詢結果中的資料列數量。

      舉例來說,下列查詢會查詢記錄檢視畫面,並按小時匯總資料、套用限制並排序結果:

      SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count
      FROM `TABLE_NAME_OF_LOG_VIEW`
      WHERE severity IS NOT NULL AND severity = "DEFAULT"
      GROUP BY hour,severity
      ORDER BY hour DESC
      LIMIT 10
      
    • 將「維度」設為與回報時間單位的欄一致。舉例來說,如果查詢會以一小時為單位匯總資料,並建立名為 hour 的資料欄,請將「維度」選單設為 hour

    • 由於查詢已指定匯總間隔,請選取「停用間隔」。在這個範例中,這個間隔為一小時。

    • 將「評估」設為數值欄,並將函式設為「無」

    如果您想讓 Log Analytics 為您執行以時間為依據的匯總作業,請執行下列操作:

    • 設定時間範圍選取器,這會影響查詢結果中的資料列數量。
    • 將「維度」設為與回報時間單位的欄一致。舉例來說,您可以將這個選單設為 timestamp
    • 將「Interval」選單設為匯總時間間隔,以便指定時間間隔。例如,將這個欄位的值設為 1 hour。請勿選取「自動間隔」
    • 將「度量」設為數值欄,然後選取「加總」等函式。

變更維度和測量指標

您可以選取維度和測量結果欄位,選擇要繪製的資料列和資料欄。

  • 維度

    維度必須是時間戳記、數字或字串欄。根據預設,維度會設為結構定義中第一個以時間戳記為準的資料欄。如果查詢中沒有時間戳記,系統會選取第一個字串欄做為維度。您也可以在「圖表顯示」面板中自訂維度。選取時間戳記欄做為維度時,圖表會顯示資料隨時間變化的情形。選取字串資料欄做為長條圖的維度時,您可以依遞增或遞減方式排序資料,以便依字典順序排序維度。您也可以保留「預設」排序順序,系統會根據對應計量的值以遞減順序排序維度。

    根據預設,系統會自動設定時間戳記的間隔,但您也可以選取自訂間隔。自動間隔會根據時間範圍選擇器變更值,以維持相似大小的群組。

    您也可以停用間隔,這樣一來,您就能在查詢中指定自己的匯總和時間範圍,以便進行更複雜的分析。停用間隔後,測量指標的匯總函式會設為 none。停用維度間隔時,只能使用數值測量指標。

  • 測量

    您可以在「圖表顯示」面板中選取多個指標。選取評估指標時,您必須一併選取要對其分組值執行的匯總函式,例如 countsumaveragepercentile-99。舉例來說,count-distinct 會傳回指定資料欄中的不重複值數量。

    如果您為維度選取「停用間隔」核取方塊,none匯總函式選項就會顯示。如果維度是字串值,系統不會顯示「停用間隔」核取方塊。不過,將測量指標的匯總函式設為 none 也會停用間隔。

新增明細

如要根據另一個資料欄將單一資料序列分割為多個資料序列,請新增細目。

選取細目資料時,請選擇包含少量短而有意義的標籤的資料欄,例如 region_name,而非可能包含大量字串或長字串的欄位,例如 textPayload

例如,請參閱下列圖表設定,其中「維度」欄位設為「類型」、「測量指標」欄位設為「列數」,而「細目」欄位設為「嚴重程度」

新增細目資料的圖表設定範例。

以下圖表為新增細目資料的圖表範例:

範例圖表,內含依嚴重性細分的資料。

在先前的螢幕截圖中,您會看到堆疊資料序列,其中資源類型 k8s_container 會分割為不同的 severity 類型。這可讓您瞭解特定資源產生的各嚴重性類型記錄數量。

將圖表儲存至自訂資訊主頁

從查詢產生圖表後,您可以將圖表儲存到自訂資訊主頁。您可以使用各種小工具類型,透過自訂儀表板顯示及整理對您有用的資訊。這些資訊主頁也讓您定義變數,也就是資訊主頁層級篩選器,只套用至特定小工具。如要將變數套用至小工具,您必須修改查詢。詳情請參閱「將變數套用至小工具」。

舉例來說,您可以建立資訊主頁,提供 Cloud Storage 值區用量的詳細資料:

資訊主頁範例,顯示 Cloud Storage 值區的用量。

如要將圖表儲存至資訊主頁,請按照下列步驟操作:

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

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

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

  2. 執行查詢以產生圖表,然後按一下「圖表」分頁中的 「儲存圖表」

  3. 在「Save to dashboard」對話方塊中,輸入圖表的標題,然後選取要儲存圖表的資訊主頁。

  4. 選用步驟:如要查看自訂資訊主頁,請在彈出式訊息中按一下「查看資訊主頁」

如要查看包含 SQL 查詢產生圖表的自訂資訊主頁清單,請按一下「儲存圖表」按鈕,然後點選 「選單」

編輯儲存至自訂資訊主頁的圖表

您可以在圖表儲存至資訊主頁後進行修改。詳情請參閱「修改小工具的設定」。在「Configure widget」對話方塊中,您可以執行下列操作:

  • 變更查詢的資料。
  • 編輯用於產生圖表的查詢。
  • 自訂圖表設定,以便以圖形呈現不同的資料。

限制

  • 如果 Google Cloud 專案位於使用 Assured Workloads 的資料夾中,則您產生的圖表無法顯示在自訂資訊主頁上。

  • 資訊主頁層級篩選器不適用於透過 SQL 查詢產生的圖表。

查詢範例

本節提供可用於繪製查詢結果的 SQL 查詢範例。如要從記錄中獲得更多實用的洞察資料,請自訂圖表設定。如要使用查詢範例,請執行下列操作:

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

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

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

  2. 找出要查詢的記錄檢視畫面的資料表名稱。

    如要找出這個名稱,請前往「記錄檢視畫面」清單,找出記錄檢視畫面,然後選取「查詢」。「查詢」窗格會填入預設查詢,其中包含要查詢的記錄檢視畫面資料表名稱。資料表名稱的格式為 project_ID.region.bucket_ID.view_ID

    如要進一步瞭解如何存取預設查詢,請參閱「查詢記錄檢視畫面」。

  3. TABLE_NAME_OF_LOG_VIEW 替換為您要查詢的記錄檢視畫面的資料表名稱,然後複製查詢。

  4. 在「Query」窗格中貼上查詢,然後點選「Run query」

依據位置和嚴重性繪製記錄項目圖表

以下查詢會選取 locationseverity,並將位置轉換為字串:

SELECT
  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
  severity,
FROM
  `TABLE_NAME_OF_LOG_VIEW`

範例圖表和圖表設定如下所示:

範例圖表:顯示位置和嚴重性等級的記錄項目。

在先前的螢幕截圖中,圖表設定包含下列圖表設定:

  • 圖表類型:長條圖 (橫式)
  • 維度location,上限為 10
  • 評估:計算資料列
  • 細目severity,上限為五項

繪製 BigQuery 資料存取稽核記錄

以下查詢會篩選 BigQuery data_access 稽核記錄,並選取特定欄位,例如 user_emailipauth_permissionjob_execution_project。舉例來說,您可以建立圖表,以視覺化方式呈現每位主要使用者 BigQuery API 使用頻率隨時間變化情形。

SELECT
  timestamp,
  proto_payload.audit_log.authentication_info.principal_email as user_email,
  proto_payload.audit_log.request_metadata.caller_ip as ip,
  auth.permission as auth_permission,
  auth.granted as auth_granted,
  JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `TABLE_NAME_OF_LOG_VIEW` as data_access,
  UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
  log_id="cloudaudit.googleapis.com/data_access"
  AND data_access.resource.type = 'bigquery_dataset'

範例圖表和圖表設定如下所示:

BigQuery 資料存取稽核記錄範例圖表

在上一個螢幕截圖中,圖表設定包含下列圖表設定:

  • 圖表類型:垂直長條圖
  • 維度user_email,上限為五個
  • 評估:計算資料列
  • 細目auth_permission,最多五個

限制

  • 所選欄至少應包含一個非空值的資料列。

  • 如果您儲存查詢並自訂圖表設定,系統就不會儲存自訂圖表設定。

  • 如果查詢已包含匯總,則系統會自動套用其他匯總,因此產生的圖表可能會有所不同。

  • 您必須將 JSON 路徑轉換為字串和數字,才能繪製圖表。

後續步驟