查看轉送至 Pub/Sub 的記錄檔

本文說明如何找出從 Cloud Logging 轉送至 Pub/Sub 主題的記錄項目,這些記錄項目會以近乎即時的方式傳送。 建議您使用 Pub/Sub 將 Cloud Logging 記錄檔與第三方軟體整合。

將記錄項目轉送至 Pub/Sub 主題時,Logging 收到記錄項目後,會立即將每個項目發布為 Pub/Sub 訊息。路由記錄項目通常會在抵達記錄服務後的幾秒內可供使用,其中 99% 的記錄項目會在 60 秒內可供使用。

事前準備

如要進一步瞭解接收端的概念,請參閱「轉送和儲存空間模式總覽:接收端」。

如需轉送記錄項目的操作說明,請參閱「將記錄轉送至支援的目的地」。

查看記錄

如要查看透過 Pub/Sub 串流傳送的記錄,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Topics」(主題) 頁面:

    前往「主題」

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

  2. 針對用於記錄接收器的主題尋找或建立訂閱項目,然後從中提取記錄項目。您可能必須等待新記錄項目發佈完成。

記錄檔組織

每則訊息的 data 欄位都是採用 base64 編碼的 LogEntry 物件。舉例來說,Pub/Sub 訂閱者可能會從接收記錄項目的主題中提取下列物件。顯示的物件包含含有單一訊息的清單,但如果有幾個記錄項目,Pub/Sub 可能會傳回多個訊息。為了方便閱讀,我們已縮短 data 值 (約 600 個半形字元) 和 ackId 值 (約 200 個半形字元):

{
 "receivedMessages": [
  {
   "ackId": "dR1JHlAbEGEIBERNK0EPKVgUWQYyODM...QlVWBwY9HFELH3cOAjYYFlcGICIjIg",
   "message": {
    "data": "eyJtZXRhZGF0YSI6eyJzZXZ0eSI6Il...Dk0OTU2G9nIjoiaGVsbG93b3JsZC5sb2cifQ==",
    "attributes": {
     "compute.googleapis.com/resource_type": "instance",
     "compute.googleapis.com/resource_id": "123456"
    },
    "messageId": "43913662360"
   }
  }
 ]
}

如果您將 data 欄位解碼並設定格式,會得到下列 LogEntry 物件:

{
  "log": "helloworld.log",
  "insertId": "2015-04-15|11:41:00.577447-07|10.52.166.198|-1694494956",
  "textPayload": "Wed Apr 15 20:40:51 CEST 2015 Hello, world!",
  "timestamp": "2015-04-15T18:40:56Z",
  "labels": {
    "compute.googleapis.com\/resource_type": "instance",
    "compute.googleapis.com\/resource_id": "123456"
  },
  "severity": "WARNING"
  }
}

第三方與 Pub/Sub 的整合

您可以將記錄項目路由至 Pub/Sub 主題。第三方會訂閱相同主題,接收您的記錄項目。Logging 支援與第三方整合記錄,例如 Splunk 或 Datadog。如需目前的整合項目清單,請參閱 Google Cloud Observability 整合項目的合作夥伴

如要執行整合,預期會執行如下操作:

  1. 在記錄項目來源的專案中,建立含有預設訂閱項目的 Pub/Sub 主題:

    1. 啟用 Pub/Sub API。

      Enable the API

    2. 在 Google Cloud 控制台中,前往「Topics」(主題) 頁面:

      前往「主題」

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

    3. 按一下「建立主題」

    4. 在「主題 ID」欄位中輸入主題 ID,例如:projects/my-project-id/topics/my-pubsub-topic

      傳送至主題的每則訊息都會在 Pub/Sub 訊息 attributes 中加入已路由記錄項目的時間戳記,例如:

      "attributes": {
        "logging.googleapis.com/timestamp": "2024-07-01T00:00:00Z"
      }
      
    5. 保留「Add a default subscription」(新增預設訂閱) 選項。請勿選取任何其他選項。

    6. 按一下「建立主題」

  2. 在記錄項目產生的專案中,設定 Logging 將記錄項目轉送至主題:

    1. 在 Google Cloud 控制台中,前往「Log Router」頁面:

      前往「記錄檔路由器

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

    2. 按一下「建立接收端」,輸入接收端的名稱和說明,然後按一下「下一步」
    3. 在「Sink Service」(接收器服務) 選單中,選取「Cloud Pub/Sub 主題」,選取 Pub/Sub 主題,然後按一下「Next」(下一步)
    4. 選取要納入接收器的記錄項目,然後點選「下一步」
    5. 選用步驟:選取要排除的記錄項目。
    6. 按一下「建立接收器」

      畫面上會顯示「Sink created」對話方塊,這則訊息表示已成功建立接收器,且接收器有權將日後相符的記錄項目路由至您選取的目標位置。

    7. Pub/Sub 發布者 (roles/pubsub.publisher) 角色授予接收器的寫入者身分。如要進一步瞭解如何取得作者身分並授予角色,請參閱「設定目的地權限」。

    Cloud Logging 現在會將記錄項目傳送至 Pub/Sub 主題。

  3. 建立訂閱項目。

    舉例來說,如果您使用 Dataflow 從 Pub/Sub 主題提取資料,並將資料傳送至 Datadog,則需要執行兩個步驟:

    1. 建立或取得服務帳戶,然後授予該帳戶訂閱主題所需的 IAM 角色。服務帳戶至少需要下列角色:

      如需詳細資訊,請參閱下列文件:

    2. 運用範本建立工作,然後執行該工作。在本例中,您會使用 Pub/Sub 到 Datadog 範本

您的第三方應該會立即開始接收記錄項目。

如要瞭解使用 Pub/Sub 的常見記錄路由情境,請參閱「從 Cloud Logging 匯出資料的情境:Splunk」。

疑難排解

如果記錄項目似乎未出現在接收端的目的地上,或是您懷疑接收端未正確轉送記錄項目,請參閱「疑難排解轉送記錄」。

定價

Cloud Logging 不會針對將記錄檔轉送至支援的目的地收費,但目的地可能會收取費用。除了 _Required 記錄檔值區,Cloud Logging 會針對將記錄檔串流至記錄檔值區,以及超過記錄檔值區預設保留期限的儲存空間收取費用。

複製記錄、建立記錄範圍分析檢視畫面,或是透過 Logs Explorer 或 Log Analytics 頁面發出的查詢,Cloud Logging 不會收取費用。

如需詳細資訊,請參閱下列文件: