Deploy application

Check my progress

/ 50

Create a Log bucket

Check my progress

/ 25

create the log sink

Check my progress

/ 25

This lab may incorporate AI tools to support your learning.
This content is not yet optimized for mobile devices.
For the best experience, please visit us on a desktop computer using a link sent by email.

GSP1088

Google Cloud 自學實驗室

總覽

Cloud Logging 是全代管服務,可讓您儲存、搜尋、分析、監控 Google Cloud 的記錄資料和事件,以及接收相關警告。在本實驗室,您將瞭解 Cloud Logging 的功能和工具,以便深入瞭解應用程式。

課程內容

本實驗室的內容包括:

  • 有效運用 Cloud Logging,深入瞭解在 Google Kubernetes Engine (GKE) 執行的應用程式。
  • 使用 Observability Analytics 功能,有效建構及執行查詢。

實驗室中使用的示範應用程式

在本實驗室,您將根據部署至 GKE 叢集的微服務試用版應用程式,透過情境完成設定。此應用程式包含許多嵌入的微服務和依附元件。

圖表顯示許多微服務及其依附元件

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始實驗室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」按鈕。如果實驗室會產生費用,請在開啟的對話方塊中選取付款方式。右側的「Lab setup and access」面板會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 此實驗室所需的臨時憑證 (使用者名稱和密碼)
    • 完成此實驗室所需的其他資訊 (如有)

    請注意,實驗室計時器位於頁面頂端附近,會顯示剩餘時間。

  2. 按一下「Open Google Cloud console」。如果使用 Chrome 瀏覽器,也可以按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗並排開啟分頁。

    注意:頁面顯示「選擇帳戶」對話方塊時,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab setup and access」面板找到「Username」。

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab setup and access」面板找到「Password」。

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 繼續點按後續頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要使用 Google Cloud 產品和服務,請按一下「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。「導覽選單」圖示和搜尋欄位

啟動 Cloud Shell

Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 「啟動 Cloud Shell」圖示

  2. 系統顯示視窗時,請按照下列步驟操作:

    • 繼續操作 Cloud Shell 視窗。
    • 授權 Cloud Shell 使用您的憑證發出 Google Cloud API 呼叫。

連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID。輸出內容中有一行文字,宣告本工作階段的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。

  1. (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
  1. 點按「授權」

輸出內容:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需 gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南

工作 1:設定基礎架構

驗證 GKE 叢集

請連至 GKE 叢集,並確認該叢集已正確建立。

  1. 在 Cloud Shell 透過 gcloud 設定可用區:
gcloud config set compute/zone {{{project_0.default_zone|placeholder}}}
  1. 使用下列指令查看叢集狀態:
gcloud container clusters list

輸出內容大致如下:

NAME: day2-ops LOCATION: us-west1 MASTER_VERSION: 1.31.5-gke.1023000 MASTER_IP: 34.169.197.173 MACHINE_TYPE: e2-standard-2 NODE_VERSION: 1.31.5-gke.1023000 NUM_NODES: 3 STATUS: RUNNING

叢集狀態應顯示為「RUNNING」。如果仍為「PROVISIONING」,請稍候再重新執行上方的指令。重複此步驟直到狀態顯示為「RUNNING」。

您也能在 Google Cloud 控制台查看進度。依序點選「導覽選單」「導覽選單」圖示 >「Kubernetes Engine」>「叢集」

  1. 叢集狀態變成「RUNNING」後,請取得叢集憑證:
gcloud container clusters get-credentials day2-ops --region {{{project_0.default_region|placeholder}}}

輸出內容大致如下:

Fetching cluster endpoint and auth data. kubeconfig entry generated for day2-ops.
  1. 確認節點已建立:
kubectl get nodes

輸出內容大致如下:

NAME STATUS ROLES AGE VERSION gke-day2-ops-day2-ops-node-pool-0d9c7ef3-xc44 Ready <none> 11m v1.31.5-gke.1023000 gke-day2-ops-day2-ops-node-pool-b17ac6d6-tch7 Ready <none> 11m v1.31.5-gke.1023000 gke-day2-ops-day2-ops-node-pool-ed506ae8-wsc5 Ready <none> 11m v1.31.5-gke.1023000

工作 2:部署應用程式

接著,將稱為 Online Boutique 的微服務應用程式部署至叢集,建立可監控的實際工作負載。

  1. 執行下列指令,複製存放區:
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
  1. 前往 microservices-demo 目錄:
cd microservices-demo
  1. 使用 kubectl 安裝應用程式:
kubectl apply -f release/kubernetes-manifests.yaml
  1. 確認一切運作正常:
kubectl get pods

輸出內容大致如下。請重新執行指令,直到所有 Pod 狀態都顯示為「Running」,再繼續下個步驟。

NAME READY STATUS RESTARTS AGE adservice-55f94cfd9c-4lvml 1/1 Running 0 20m cartservice-6f4946f9b8-6wtff 1/1 Running 2 20m checkoutservice-5688779d8c-l6crl 1/1 Running 0 20m currencyservice-665d6f4569-b4sbm 1/1 Running 0 20m emailservice-684c89bcb8-h48sq 1/1 Running 0 20m frontend-67c8475b7d-vktsn 1/1 Running 0 20m loadgenerator-6d646566db-p422w 1/1 Running 0 20m paymentservice-858d89d64c-hmpkg 1/1 Running 0 20m productcatalogservice-bcd85cb5-d6xp4 1/1 Running 0 20m recommendationservice-685d7d6cd9-pxd9g 1/1 Running 0 20m redis-cart-9b864d47f-c9xc6 1/1 Running 0 20m shippingservice-5948f9fb5c-vndcp 1/1 Running 0 20m
  1. 執行下列指令,取得應用程式的外部 IP。
export EXTERNAL_IP=$(kubectl get service frontend-external -o jsonpath="{.status.loadBalancer.ingress[0].ip}") echo $EXTERNAL_IP

只有在服務部署完成後,系統才會傳回 IP 位址。您可能需要重複執行指令,直到系統指派外部 IP 位址為止。

指派 IP 位址後,輸出內容會與下列相似:

35.222.235.86
  1. 最後,確認應用程式已啟動並執行:
curl -o /dev/null -s -w "%{http_code}\n" http://${EXTERNAL_IP}

確認訊息看起來像這樣:

200

應用程式部署完成後,您也能在控制台查看狀態。

  1. 在「Kubernetes Engine」頁面的左側窗格,點選「工作負載」,確認所有 Pod 均正常運作。

  2. 在左側窗格中,依序點選「閘道、Service 與 Ingress」和「服務」分頁標籤,確認所有服務顯示「可用」狀態。

開啟應用程式

在「閘道、Service 與 Ingress」>「服務」頁面,點選 frontend-external 服務的端點 IP。

系統應會開啟與下列內容相似的示範網頁:

注意:如果出現提示訊息,您可能需要點選「繼續造訪網站」按鈕。 示範應用程式網頁

點選「Check my progress」,確認目標已達成。 部署應用程式

工作 3:管理記錄檔 bucket

啟用 Observability Analytics 的方式有兩種:升級現有 bucket;建立新的記錄檔 bucket,並啟用 Observability Analytics。

升級現有 bucket

您可以按照下列步驟升級現有的記錄檔 bucket。

  1. 前往控制台,依序點選「導覽選單」「導覽選單」圖示 >「查看所有產品」>「觀測能力」>「記錄」。點選「收藏」,以便在實驗室後續步驟中存取。

  2. 點選「記錄檔儲存空間」

  3. 在現有 bucket Default bucket 中,點選「升級」

  4. 在確認對話方塊,點選「升級」

  5. 等待狀態變更為「Upgraded」

  6. 點選「開啟」,然後選取查看 _AllLogs

「Observability Analytics」頁面隨即開啟。

建立新的記錄檔 bucket

您可以按照下列步驟建立新的記錄檔 bucket。

  1. 在左側窗格中,依序點選「記錄檔儲存空間」>「記錄檔儲存空間」視窗頂端的「建立記錄檔 bucket」

  2. 提供 bucket 名稱,例如 day2ops_log

  3. 勾選「升級即可使用 Observability Analytics」和「建立連至這個 bucket 的新 BigQuery 資料集」

  4. 「BigQuery 資料集名稱」請輸入 day2ops_log

  5. 「區域」請選取「全域」

選取「Create a linked dataset in BigQuery」後,如果資料集尚不存在,系統就會在 BigQuery 為您建立,這樣即可在 BigQuery 執行查詢。

  1. 點選「建立 bucket」,建立記錄檔 bucket。

點選「Check my progress」,確認目標已達成。 建立記錄檔 bucket

寫入新的記錄檔 bucket

您可以透過幾種方式建立記錄檔接收器,將記錄項目轉送至新的記錄檔 bucket:

  • 直接透過記錄路由器
  • 透過 Logs Explorer。您可以在建立接收器時執行記錄查詢,選取及篩選您有興趣的記錄。此方法的優勢在於系統會將記錄查詢自動複製到接收器設定,做為篩選器使用。
  1. 點選左側窗格中的「Logs Explorer」

  2. 在右上角啟用「顯示查詢」,並在查詢欄位執行下列查詢:

resource.type="k8s_container"
  1. 依序點選「動作」>「建立接收器」

  2. 「接收器名稱」請輸入 day2ops-sink

  3. 點選「繼續」

  4. 在接收器服務下拉式清單,選取「記錄檔 bucket」

  5. 選取剛建立的新記錄檔 bucket。

新的記錄檔 bucket 大致如下:

projects/qwiklabs-gcp-00-xxxxxxx/locations/global/buckets/day2ops-log
  1. 點選「繼續」

您應該會看到篩選器中已有資源類型查詢。

  1. 點選「建立接收器」

請稍候約一分鐘,接收器就會建立完成。

點選「Check my progress」,確認目標已達成。 建立記錄檔接收器

從新的記錄檔 bucket 讀取

在左側窗格,前往「Logs Explorer」。請注意,在「欄位」清單的「資源類型」專區,記錄有許多不同的資源類型。

  1. 為了查看新記錄檔 bucket 中的記錄,請依序點選 Logs Explorer 視窗左上方的「專案記錄」>「記錄檢視」> 剛建立的新記錄檔 bucket

  2. 點選「套用」

您會發現「Kubernetes 容器」現在是唯一的資源類型,且記錄項目數量也變少了。這是因為只有經過篩選的記錄才會傳送至 bucket。

工作 4:記錄檔分析

  • 點選左側窗格中的「Observability Analytics」,開啟頁面。

如果查詢欄位空白,或忘記要使用哪個資料表,請點選「執行查詢」按鈕,即可取回範例查詢。

您可以在查詢欄位執行自己的查詢。這項工作提供了一些範例。

重要事項:FROM 子句中的記錄檢視名稱會因記錄檔 bucket 而異。請務必使用正確的名稱。您可以使用上個步驟進行驗證。

查詢範例:找出最小、最大和平均延遲時間

在右側窗格中,選取「<> SQL」。點選「清除」按鈕,移除查詢編輯器中的現有內容。將查詢貼到編輯器,然後選取「執行查詢」,從容器擷取最近的錯誤。

使用查詢,找出前端服務在特定時間範圍內的最小、最大和平均延遲時間:

SELECT hour, MIN(took_ms) AS min, MAX(took_ms) AS max, AVG(took_ms) AS avg FROM ( SELECT FORMAT_TIMESTAMP("%H", timestamp) AS hour, CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64 ) AS took_ms FROM `{{{project_0.project_id | "PROJECT_ID"}}}.global.day2ops-log._AllLogs` WHERE timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR) AND json_payload IS NOT NULL AND SEARCH(labels, "frontend") AND JSON_VALUE(json_payload.message) = "request complete" ORDER BY took_ms DESC, timestamp ASC ) GROUP BY 1 ORDER BY 1

查詢範例:找出產品頁面造訪次數

使用查詢,找出過去一小時內使用者造訪特定產品頁面的次數:

SELECT count(*) FROM `{{{project_0.project_id | "PROJECT_ID"}}}.global.day2ops-log._AllLogs` WHERE text_payload like "GET %/product/L9ECAV7KIM %" AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)

查詢範例:找出有多少工作階段是以購物車結帳結束

使用查詢找出有多少工作階段是以結帳結束 (對 /cart/checkout 服務發出 POST 呼叫):

SELECT JSON_VALUE(json_payload.session), COUNT(*) FROM `{{{project_0.project_id | "PROJECT_ID"}}}.global.day2ops-log._AllLogs` WHERE JSON_VALUE(json_payload['http.req.method']) = "POST" AND JSON_VALUE(json_payload['http.req.path']) = "/cart/checkout" AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR) GROUP BY JSON_VALUE(json_payload.session)

恭喜!

您已學會使用 Cloud Logging 深入瞭解在 GKE 執行的應用程式,並運用 Observability Analytics 建構及執行查詢。

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2026 年 8 月 6 日

實驗室上次測試日期:2026 年 8 月 6 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

This content is not currently available

We can notify you via email when it becomes available

Great!

We can contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.