圖表 SQL 查詢結果

本文說明如何繪製記錄檔分析查詢結果的圖表,以便找出記錄檔資料中的模式和趨勢。記錄檔分析功能可讓您使用 SQL 查詢搜尋及匯總記錄檔,進而產生實用的洞察結果。

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

範例圖表,說明按嚴重程度劃分的細目。

事前準備

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

設定記錄檔 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 角色。

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

選取要繪製圖表的資料

如要設定要在圖表上顯示的資料,請使用 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

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

    • 將「測量」設為數值資料欄,並將函式設為「無」

    如要仰賴記錄檔分析執行時間型匯總,請按照下列步驟操作:

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

變更維度和指標

選取維度和指標欄位,即可選擇要繪製哪些資料列和資料欄。

  • 維度

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

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

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

  • 評估

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

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

新增明細

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

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

舉例來說,請參閱下列圖表設定,其中「維度」欄位設為「類型」、「指標」欄位設為「列數」,「細分」欄位則設為「嚴重程度」

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

下圖為新增細目後的圖表範例:

範例圖表:依嚴重程度細分。

在上一個螢幕截圖中,您會看到堆疊資料序列,其中資源類型 k8s_container 會分割成不同的 severity 類型。這有助於您瞭解特定資源產生了多少個各嚴重程度類型的記錄。

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

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

舉例來說,您可以建立資訊主頁,提供 Cloud Storage bucket 使用情況的詳細資料:

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

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

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

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

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

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

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

  4. 選用:如要查看自訂資訊主頁,請按一下祝賀訊息中的「查看資訊主頁」

如要查看含有 SQL 查詢所產生圖表的自訂資訊主頁清單,請前往「Save Chart」(儲存圖表) 按鈕,然後點選 「Menu」(選單)

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

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

  • 變更查詢的資料。
  • 編輯用於生成圖表的查詢。
  • 自訂圖表設定,以視覺化方式呈現不同資料。

限制

  • 如果您的 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 路徑必須轉換為字串和數字,才能繪製圖表。

後續步驟