使用 Cloud SDK 的快速入門導覽課程

本快速入門導覽課程介紹一些 Stackdriver Logging 的功能,並說明如何:

  • 使用 Cloud SDK 寫入記錄項目。
  • 使用記錄檢視器查看及篩選記錄項目。
  • 使用 Cloud SDK 列出記錄項目。
  • 使用 Logging API 列出記錄項目。

事前準備

您必須擁有啟用計費功能的 Google Cloud Platform 專案,以完成此項快速入門導覽課程。如果您沒有 GCP 專案,或是專案沒有啟用計費功能,請執行下列指令:
  1. 登入您的 Google 帳戶。

    如果您沒有帳戶,請申請新帳戶

  2. 選取或建立 Google Cloud Platform 專案。

    前往「Manage resources」(管理資源) 頁面

  3. 請確認您已啟用 Google Cloud Platform 專案的計費功能。

    瞭解如何啟用計費功能

開始使用

您可以在本快速入門導覽課程中,針對 Cloud SDK 指令使用 Cloud Shell 環境或 Compute Engine VM 執行個體。

Cloud Shell

  1. Cloud SDK 已預先安裝在 Cloud Shell 環境中。您不需要安裝或設定其他任何軟體。

  2. 開啟 Cloud Shell 並驗證專案設定:

    1. 從 GCP 主控台,按一下右上角的「Activate Cloud Shell」(啟用 Cloud Shell) 按鈕:

      啟用 Cloud Shell

      Cloud Shell 隨即會開啟視窗並顯示歡迎訊息:

      歡迎使用 Cloud Shell

    2. 歡迎訊息會回應已設定的專案 ID。如果這不是您要使用的專案,請在您用專案 ID 替換 [PROJECT_ID] 後執行以下指令:

       gcloud config set project [PROJECT_ID]
      

VM 執行個體

  1. 建立 Compute Engine VM 執行個體:

    1. 從 GCP 主控台選取 [Compute Engine] > [VM instances] (VM 執行個體)。選取 [Create] (建立)。如果您看到如下訊息,請等待 Compute Engine 做好準備:

      正在啟用 Compute

    2. 在「Identity and API access」(身分及 API 存取權) 窗格中,選取 [Set access for each API] (針對各個 API 設定存取權)。向下捲動新窗格中的清單,直到您找到 Stackdriver Logging API 為止。將存取權從「Write only」(唯寫) 變更為「Full」(完整)

      正在啟用 Compute

    3. 將其他所有設定保留為預設值,並按一下 [Create] (建立)。之後您的 VM 執行個體即準備好供您使用。

  2. 如要連線至您的 VM 執行個體殼層,請前往 [SSH] > [Open in browser window] (在瀏覽器視窗中開啟)。之後 Debian GNU/Linux 殼層即開啟視窗並顯示歡迎訊息。

  3. Cloud SDK 已預先安裝在 GCM VM 執行個體中。驗證是否已為 Compute Engine 專案設定 Cloud SDK:

     gcloud config list
    
  4. 如果列出的專案並非您要使用的專案,請在將 [PROJECT_ID] 取代為您的專案 ID 之後執行下列指令:

     gcloud config set project [PROJECT_ID]
    

使用 Cloud SDK 寫入記錄項目

Logging 可支援包含結構化和非結構化資料的記錄項目。結構化資料包含 JSON 資料結構;例如 {"weather": "partly cloudy"}。非結構化資料是字元字串;例如 "A simple entry"。在接下來的步驟中,請使用 Cloud SDK 分別寫入具有非結構化和結構化資料的記錄項目:

  1. 將具有非結構化資料的記錄項目寫入記錄 my-test-log

    gcloud logging write my-test-log "A simple entry."
    

    指令完成後,您會看到訊息:Created log entry

  2. 將具有結構化資料的記錄項目寫入 my-test-log:

    gcloud logging write --payload-type=json my-test-log '{ "message": "My second entry", "weather": "partly cloudy"}'
    

    寫入具有結構化資料的記錄項目時,必須加入 --payload-type=json。如果您省略這個欄位,系統會將酬載解讀為非結構化文字。

如果記錄 my-test-log 不存在,則 Logging 會在收到記錄項目時建立記錄。

在記錄檢視器中查看記錄

記錄檢視器是可用於查看、篩選與下載記錄項目的工具。

  1. 前往 Google Cloud Platform 主控台中的「記錄檢視器」頁面。

    前往記錄檢視器頁面

    您會看見「Logs Viewer」(記錄檢視器) 頁面:

    記錄檢視器

    檢查 Google Cloud Platform 導覽列,確保已選取您的專案。如有必要,請使用專案下拉式清單選取專案。

  2. 在資源類型下拉式清單中選取 [Global] (通用),查看您寫入的記錄項目:

    通用記錄檢視器

    如果您沒看到 [Global] (通用) 的選單選項,或者找不到記錄項目,請稍候幾分鐘,並重新整理頁面。Logging 可能需要幾分鐘的時間才能接收記錄項目。

  3. 如要展開記錄項目,請按一下相應的「Disclosure」(展開) 按鈕 (arrow_right)。

    記錄檢視器

    第一筆記錄項目的資料儲存在 textPayload。第二筆記錄項目包含的結構化資料則是儲存在 jsonPayload。結構化酬載包含 messageweather 索引鍵。

如要進一步瞭解記錄項目資料格式,請參閱所有記錄的常用資料類型

篩選記錄項目

您可以使用文字欄位,依照索引與項目值篩選具有結構化記錄的記錄項目。例如,如要顯示所有含有文字 simple 的記錄項目:

  1. 在記錄選取器上方的篩選器方塊中,輸入 simple 字串。記錄顯示畫面只會顯示 A simple entry. 記錄項目。

  2. 查看記錄之後,請移除您新增的篩選字串,然後按一下記錄選取器上方的「Refresh」(重新整理) 按鈕 (refresh)。兩個記錄項目都會重新顯示在顯示畫面中。

如要顯示具有結構化資料的所有記錄項目,且結構化資料中已有 weather 索引,同時索引的 value 欄位包含 partly

  1. 按一下篩選器方塊最右側的「Disclosure」(展開) 按鈕 (arrow_drop_down),然後選取 [Convert to advanced filter] (轉換為進階篩選器),就可以切換到進階篩選器模式。
  2. 篩選器方塊中有 resource.type="global"。在這一行下方輸入:

    jsonPayload.weather:partly
    
  3. 按一下 [Submit filter] (提交篩選器)。結果會產生單一記錄項目 My second entry

    記錄項目的進階篩選器

如要進一步瞭解篩選器,請參閱進階記錄篩選器一文。

使用 Cloud SDK 列出記錄項目

您可以從 Logging 擷取記錄項目,並使用 Cloud SDK 顯示這些項目。例如,如要擷取並顯示資源類型為 global 的記錄項目,請執行下列指令:

gcloud logging read "resource.type=global"

指令會傳回類似以下的結果:

---
insertId: jpj9zjf73t1mn
jsonPayload:
  message: My second entry
  weather: partly cloudy
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:31.114507977Z'
resource:
  labels:
    project_id: myloggingproject
  type: global
timestamp: '2018-11-01T18:39:31.114507977Z'
---
insertId: vd4m1if7h7u1a
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:19.718100792Z'
resource:
  labels:
    project_id: myloggingproject
  type: global
textPayload: A simple entry
timestamp: '2018-11-01T18:39:19.718100792Z'

使用 API Explorer 列出記錄項目

您可以使用 API Explorer 執行 Logging API 方法,而不用編寫任何程式碼。如要從 Logging 讀取記錄項目清單:

  1. 前往 entries.list API 方法的 API 參考資料頁面:

    前往 entries.list API 頁面

  2. API Explorer 小工具已連結至該頁面的右側或底部。小工具的標頭為試用這個 API。複製下列文字並將其貼到要求主體中。在您按一下 [Execute] (執行) 之前,請先替換 PROJECT_ID

      "resourceNames": [
        "projects/[PROJECT_ID]"
      ],
      "filter": "resource.type=global"
    

    下面是具有這些設定的已完成要求主體範例:

    試用這個 API

  3. 按一下 [Execute] (執行)。方法會傳回類似以下的回應:

    {
      "entries": [
        {
          "textPayload": "A simple entry",
          "insertId": "vd4m1if7h7u1a",
          "resource": {
            "type": "global",
            "labels": {
              "project_id": "myloggingproject"
            }
          },
          "timestamp": "2018-11-01T18:39:19.718100792Z",
          "logName": "projects/myloggingproject/logs/my-test-log",
          "receiveTimestamp": "2018-11-01T18:39:19.718100792Z"
        },
        {
          "insertId": "jpj9zjf73t1mn",
          "jsonPayload": {
            "message": "My second entry",
            "weather": "partly cloudy"
          },
          "resource": {
            "type": "global",
            "labels": {
              "project_id": "myloggingproject"
            }
          },
          "timestamp": "2018-11-01T18:39:31.114507977Z",
          "logName": "projects/myloggingproject/logs/my-test-log",
          "receiveTimestamp": "2018-11-01T18:39:31.114507977Z"
        }
      ]
    }
    

疑難排解

  • 若存在打字錯誤與不明的欄位名稱,會導致 Cloud SDK 指令在完成時顯示引數無效的訊息。例如,如果您漏掉 resource.type 中的句點,會導致發生錯誤:

     ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'resourcetype'.
    
  • 若未授予 Stackdriver Logging 必要的存取權限,Cloud SDK 指令會在完成時顯示權限遭拒的訊息。例如,如果使用預設 Cloud API 設定來設定 Compute Engine VM 執行個體,list 指令會在完成時顯示權限遭拒的錯誤:

     ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.
    

    為了解決這個問題,請修改 Compute Engine VM 執行個體權限,為 Stackdriver Logging 授予讀取權限:

    1. 前往 VM 執行個體的「VM instance details」(VM 執行個體詳細資料) 頁面。按一下 [Stop] (停止)。這個動作可能需要一兩分鐘的時間才能完成。
    2. 如要修改設定,請按一下 [Edit] (編輯)
    3. 搜尋標頭 Cloud API 存取權範圍,然後點選 [Details] (詳細資料) 以顯示每個 API 的設定。將項目從 Stackdriver Logging API 變更為「Full」(完整)。按一下 [Save] (儲存)
    4. 如要重新啟動您的 VM 執行個體,請按一下 [Start] (啟動)。經過一段時間後,您的 VM 即準備好可供使用。
  • 當 API Explorer 無法完成您的指令,或需要其他授權時,其會顯示一則訊息或一個錯誤代碼:

    • 200 回應碼且沒有項目:如果顯示 nextPageToken 訊息,表示 API Explorer 沒有時間完成搜尋。將 pageToken 新增至您的要求,將值設為與 nextPageToken 索引指定的值完全相同,接著重試指令。
    • 400 回應碼:篩選器值無效。例如,您將 global 拼錯為 gloobal,出現的訊息會是 Unsupported resource type: gloobal
    • 404 回應碼:專案 ID 無效。檢查專案 ID 的拼寫。
    • 系統可能會要求您登入 Google 帳戶,並允許 API Explorer 存取您的帳戶。

清除所用資源

如何避免系統向您的 GCP 帳戶收取您在本快速入門中所用資源的相關費用:

  1. (選用) 如要刪除您建立的記錄項目,請執行下列 gcloud 指令:

    gcloud logging logs delete my-test-log
    

    如果您不刪除記錄項目,這些項目將會到期並遭到移除。請參閱配額政策說明。

後續步驟

  • 如要深入瞭解記錄檢視器,請參閱記錄檢視器
  • 請參閱匯出記錄,進一步瞭解如何將記錄項目匯出至 Cloud Storage、BigQuery 及 Cloud Pub/Sub。
  • 要瞭解如何在 Logging 中收集來自虛擬機器執行個體的記錄項目,請參閱記錄代理程式的說明。
  • 如要瞭解稽核與法規遵循需求,請參閱稽核記錄的說明。
  • 如要瞭解如何從應用程式中讀取、寫入及設定記錄,請參閱 Stackdriver Logging API
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Logging
需要協助嗎?請前往我們的支援網頁