本文說明如何找出從 Cloud Logging 轉送至 Pub/Sub 主題的記錄項目,這些記錄項目會以近乎即時的方式傳送。 建議您使用 Pub/Sub 將 Cloud Logging 記錄檔與第三方軟體整合。
將記錄項目轉送至 Pub/Sub 主題時,Logging 收到記錄項目後,會立即將每個項目發布為 Pub/Sub 訊息。路由記錄項目通常會在抵達記錄服務後的幾秒內可供使用,其中 99% 的記錄項目會在 60 秒內可供使用。
事前準備
如要進一步瞭解接收端的概念,請參閱「轉送和儲存空間模式總覽:接收端」。
如需轉送記錄項目的操作說明,請參閱「將記錄轉送至支援的目的地」。
查看記錄
如要查看透過 Pub/Sub 串流傳送的記錄,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往「Topics」(主題) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Pub/Sub」的結果。
針對用於記錄接收器的主題尋找或建立訂閱項目,然後從中提取記錄項目。您可能必須等待新記錄項目發佈完成。
記錄檔組織
每則訊息的 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 整合項目的合作夥伴。
如要執行整合,預期會執行如下操作:
在記錄項目來源的專案中,建立含有預設訂閱項目的 Pub/Sub 主題:
啟用 Pub/Sub API。
-
在 Google Cloud 控制台中,前往「Topics」(主題) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Pub/Sub」的結果。
按一下「建立主題」。
在「主題 ID」欄位中輸入主題 ID,例如:
projects/my-project-id/topics/my-pubsub-topic
。傳送至主題的每則訊息都會在 Pub/Sub 訊息
attributes
中加入已路由記錄項目的時間戳記,例如:"attributes": { "logging.googleapis.com/timestamp": "2024-07-01T00:00:00Z" }
保留「Add a default subscription」(新增預設訂閱) 選項。請勿選取任何其他選項。
按一下「建立主題」。
在記錄項目產生的專案中,設定 Logging 將記錄項目轉送至主題:
-
在 Google Cloud 控制台中,前往「Log Router」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
- 按一下「建立接收端」,輸入接收端的名稱和說明,然後按一下「下一步」。
- 在「Sink Service」(接收器服務) 選單中,選取「Cloud Pub/Sub 主題」,選取 Pub/Sub 主題,然後按一下「Next」(下一步)。
- 選取要納入接收器的記錄項目,然後點選「下一步」。
- 選用步驟:選取要排除的記錄項目。
按一下「建立接收器」。
畫面上會顯示「Sink created」對話方塊,這則訊息表示已成功建立接收器,且接收器有權將日後相符的記錄項目路由至您選取的目標位置。
將 Pub/Sub 發布者 (
roles/pubsub.publisher
) 角色授予接收器的寫入者身分。如要進一步瞭解如何取得作者身分並授予角色,請參閱「設定目的地權限」。
Cloud Logging 現在會將記錄項目傳送至 Pub/Sub 主題。
-
建立訂閱項目。
舉例來說,如果您使用 Dataflow 從 Pub/Sub 主題提取資料,並將資料傳送至 Datadog,則需要執行兩個步驟:
建立或取得服務帳戶,然後授予該帳戶訂閱主題所需的 IAM 角色。服務帳戶至少需要下列角色:
- Pub/Sub 訂閱者 (
roles/pubsub.subscriber
) - Dataflow 管理員 (
roles/dataflow.admin
) - Dataflow 工作者 (
roles/dataflow.worker
)
如需詳細資訊,請參閱下列文件:
- Pub/Sub 訂閱者 (
運用範本建立工作,然後執行該工作。在本例中,您會使用 Pub/Sub 到 Datadog 範本。
您的第三方應該會立即開始接收記錄項目。
如要瞭解使用 Pub/Sub 的常見記錄路由情境,請參閱「從 Cloud Logging 匯出資料的情境:Splunk」。
疑難排解
如果記錄項目似乎未出現在接收端的目的地上,或是您懷疑接收端未正確轉送記錄項目,請參閱「疑難排解轉送記錄」。
定價
Cloud Logging 不會針對將記錄檔轉送至支援的目的地收費,但目的地可能會收取費用。除了 _Required
記錄檔值區,Cloud Logging 會針對將記錄檔串流至記錄檔值區,以及超過記錄檔值區預設保留期限的儲存空間收取費用。
複製記錄、建立記錄範圍或分析檢視畫面,或是透過 Logs Explorer 或 Log Analytics 頁面發出的查詢,Cloud Logging 不會收取費用。
如需詳細資訊,請參閱下列文件:
- Cloud Logging 定價摘要
目的地費用:
- 如果您傳送虛擬私人雲端流程記錄檔到 Cloud Logging 後又將其排除,系統會向您收取虛擬私人雲端流程記錄檔產生費用。