概述
Stackdriver Logging
讓你可以在 Google Cloud Platform 的服務上,針對紀錄作儲存,分析,搜尋,監控,以及警告還有事件,包含 BigQuery 服務。Stackdriver
也提供匯出特定記錄到接收器的功能,例如 Cloud Pub/Sub
, Cloud Storage
, 或 BigQuery
在本教程中,你將在 Stackdriver 中檢視 BigQuery 的紀錄,設定接收器來匯出記錄到 BigQuery, 然後使用 SQL 來分析這些紀錄
前言
本篇主要是利用 Google 的 Qwiklab 平台學習的同時,做的一份學習筆記
為避免翻譯誤解,專業術語在本篇將不會被翻譯,保留原文
設定及要求
Qwiklabs setup
在你按下 Start Lab 按鈕之前
詳讀所有的教學。Labs 是有時間限制的,而且你不可以停止時間倒數。倒數計時器在你按下 Start Lab 按鈕後開始倒數,上面顯示的時間為你還能使用 Cloud 資源的時間。
Quiklabs 的手把手環境,讓你可以在真實環境中來操作進行 Quiclabs 上提供的課程,而不是在一個模擬或是展示的環境。我們透過提供你一個全新的、暫時的帳號密碼,在計時器歸零之前,你可以用來登入並存取 Google Cloud Platform。
你需要什麼?
要完成這個 lab ,你需要:
- 一個一般的網路瀏覽器(推薦 Chrome)
- 完成這個 lab 的時間
備註: 如果你已經有你自己的個人 GCP 帳號或專案,請不要使用在這一個 lab
現在你已經開始你的 lab
, 你將會登入 Google Cloud Shell
主控台,然後開啟命令列工具
如何開始你的 lab ,然後登入 Console?
- 按下 Start Lab 按鈕。如果你需要付費,會有一個彈出視窗來讓你選擇付費的方式。在左方你會看到一個面板,上面有暫時的帳號密碼,你必須使用這些帳號密碼在此次 lab
- 複製
username
, 然後點擊Open Google Console
。 Lab 會開啟另外一個視窗,顯示選擇帳號
的頁面
tip: 開啟一個全新的視窗,然後跟原本的頁面並排
- 在
選擇帳號
頁面, 點擊Use Another Account
- 登入頁面開啟,貼上之前複製的
username
以及password
,然後貼上
重要:必須使用之前於 Connection Details 面板
取得的帳號密碼,不要使用你自己的 Qwiklabs 帳號密碼。 如果你有自己的 GCP 帳號,請不要用在這裡(避免產生費用)
- 點擊並通過接下來的頁面:
- 接受
terms
以及conditions
- 不要增加
recovery optoins
或two factor authentication
(因為這只是一個臨時帳號) - 不要註冊免費體驗
- 接受
稍待一些時候, GCP 控制台將會在這個視窗開啟。
注意:按下左上方位於Google Cloud Platform
隔壁的 Navigation menu
,你可以瀏覽選單,裡面有一系列的 GCP 產品以及服務
啟動 Google Cloud Shell
Google Cloud Shell
是載有開發工具的虛擬機器。它提供了5GB的 home 資料夾,並且運行在 Google Cloud
上。 Google Cloud Shell
讓你可以利用 command-line 存取 GCP
資源
- 在
GCP 控制台
,右上的工具列,點擊Open Cloud Shell
按鈕
- 在打開的對話框裡,按下
START CLOUD SHELL
:
你可以立即按下 START CLOUD SHELL
當對話視窗打開。
連結並提供環境會需要一點時間。當你連結成功,這代表你已成功獲得授權,且此專案已被設為你的專案ID,例如:
gcloud 是 Google Cloud Platform
的 command-line 工具,他已事先被安裝在 Cloud Shell
並且支援自動補齊
使用這個 command ,你可以列出有效帳戶名稱:
gcloud auth list |
輸出:
Credentialed accounts: |
範例輸出:
Credentialed accounts: |
你可以使用以下 command 來列出專案 ID
gcloud config list project |
輸出:
[core] |
範例輸出:
[core] |
gcloud
的完整文件可以參閱 Google Cloud gcloud Overview
打開 BigQuery
打開 Big Query 主控台
在 Google Cloud Console, 選擇 Navigation menu > BigQuery
Welcome to BigQuery in the Cloud Console 訊息視窗彈出。這個訊息視窗提供快速導覽的連結,以及一些更新訊息
點擊 Done
BigQuery
主控台開啟
建立資料組
- 在 Resources 區塊中,點擊
qwiklabs-gcp-
開頭的資源 - 點擊 CREATE DATASET
- 設定
Dataset ID
到 bq_logs - 點擊 Create dataset
執行一個查詢
首先,執行一個簡單的查詢,在 Stackdriver
中產生一筆紀錄。 之後,你將使用這個紀錄來簡單設置匯出功能,從 Stackdriver
到 BigQuery
複製底下代碼,然後在
BigQuery
的查詢編輯器中貼上SELECT current_date
點擊 Run
設定從 Stackdriver 匯出紀錄
在 Stackdriver 檢視紀錄
- 在 Google Cloud Console 選擇 Navigation menu > Logging > Logs Viewer
- 在第一個下拉視窗的搜索框中,選擇
BigQuery
應會看到幾筆紀錄出現
尋找含有 “jobcompleted” 字串的紀錄
- 點擊位於左方,下圖中的三角箭頭來打開數據,然後在右手邊點擊 Expand all
這將以 JSON 格式來顯示數據,往下滑看看不一樣的欄位
- 回到剛剛的開頭處,點擊 ‘jobcompleted’ 然後選擇 Show Matching Entries
這將會完成正確的搜尋設定
建立匯出
現在你有需要的紀錄了,很簡單的就可以設定匯出
- 在搜尋框上方,點擊 Create Export
- 在右手邊,依照下面給的資訊輸入
- (1) Sink name: JobComplete
- (2) Sink Service: BigQuery
- (3) Sink Destination: bq_logs (我們之前設定的資料組)
- 點擊 Create Sink
- 點擊 CLOSE
之後任何的紀錄都會被匯出到這一個 bq_logs
資料組
執行範例查詢
為了讓新的表格載入入一些紀錄,我們需要執行一些範例的查詢
移動到 Cloud Shell , 複製下面的代碼,然後貼到 Cloud Shell 上
bq query --location=us --use_legacy_sql=false --use_cache=false ' |
bq query --location=us --use_legacy_sql=false --use_cache=false ' |
bq query --location=us --use_legacy_sql=false --use_cache=false ' |
你將會看到每筆查詢回應的結果
在 BigQuery 中檢視紀錄
- 移動到 BigQuery (Navigation menu > BigQuery)
- 展開 qwiklabs-gcp- 開頭的資源,並且檢查 bq_logs 資料組
你應該可以看到一個表格
名字可能會跟下面的不太一樣,但看起來應該差不多
“cloudaudit_googleapis_com_data_access_2019-06-19”
- 檢查表格的結構,然後注意到它有很大數量的欄位
如果你試著預覽,並且想知道為什麼它沒有顯示出你最近查詢的紀錄,那是因為紀錄是被串流到表格,這顯示新的資料可以被查詢但不會立即顯示在預覽
為了提高表格可用性,你可以建立 VIEW, 它可以取出子欄位的資料,然後執行一些計算來獲得查詢時間的指標
- 在 BigQuery 的查詢編輯器,將
替換成你的 project name (在 Qwiklab 視窗左手邊可以很簡單的複製) 後,執行以下的 SQL
CREATE OR REPLACE VIEW |
現在可以查詢
VIEW
, 執行以下指令SELECT * FROM bq_logs.v_querylogs
檢視結果
檢視你之前執行的三筆查詢,跟下圖類似
恭喜
你已經完成本教程
留言