設定 Ruby 適用的 Stackdriver Logging

您可以使用 Ruby 適用的 Stackdriver Logging 程式庫,或直接使用 Ruby 適用的 Stackdriver Logging Cloud 用戶端程式庫,將記錄從 Ruby 應用程式寫入至 Stackdriver Logging。

您不必安裝 Stackdriver Logging 代理程式,就可以在 Compute Engine VM 執行個體上使用 Ruby 適用的 Stackdriver Logging 程式庫。

事前準備

  1. 登入您的 Google 帳戶。

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

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

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

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

    瞭解如何啟用計費功能

  4. 啟用Stackdriver Logging API。

    啟用 API

  5. 安裝 Ruby 2.2+ 或以上版本。

安裝程式庫

我們提供 Ruby 適用的 Stackdriver Logging 程式庫,這是一款專為 Rack 式 Ruby 網路架構提供的易用記錄器:

  1. 將 Stackdriver Gem 新增至 Gemfile:

    gem "stackdriver"
  2. 使用 Bundler 安裝 Gem:

    bundle install
    

啟用程式庫

如果您正在使用 Ruby on Rails,Bundler 會在程式庫啟動時將程式庫自動載入到您的應用程式,這樣會為 Stackdriver Logging 記錄器的執行個體設定預設 Rails.logger

如果您的網路架構支援 Rack 記錄器,其他 Rack 式應用程式可以使用 Rack 中介軟體將 Rack 記錄器取代為 Stackdriver Logging 記錄器:

require "google/cloud/logging"

use Google::Cloud::Logging::Middleware

設定程式庫

您可以自訂 Ruby 適用的 Stackdriver Logging 程式庫的行為。如需可能設定選項的清單,請參閱程式庫的設定一文。

使用 Stackdriver Logging 記錄器

啟用 Ruby 適用的 Stackdriver Logging 程式庫之後,您就可以在應用程式中使用記錄器了:

logger.info "Hello World!"
logger.error "Oh No!"

如要進一步瞭解安裝,請參閱 Ruby 適用的 Stackdriver Logging 程式庫的說明文件。您也可以使用問題追蹤工具報告問題。

直接使用 Cloud 用戶端程式庫

如要瞭解如何直接使用 Ruby 適用的 Stackdriver Logging Cloud 用戶端程式庫,請參閱 Stackdriver Logging 用戶端程式庫一文。

在 Google Cloud Platform 上執行

您必須具備 GCP 上的 Cloud IAM 記錄寫入者角色,才能使用 Ruby 適用的 Stackdriver Logging 程式庫。在預設情況下,大部分 GCP 環境都提供這個角色。

App Engine

在預設情況下,App Engine 會授予記錄寫入者角色

不需要明確提供憑證,即可使用 Ruby 適用的 Stackdriver Logging 程式庫。

所有 App Engine 應用程式都會自動啟用 Stackdriver Logging,您不須另外進行設定。

Google Kubernetes Engine

Google Kubernetes Engine 上,您必須在建立叢集時新增 logging.write 存取權範圍:

gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

使用 Compute Engine VM 執行個體時,請將 cloud-platform 存取權範圍新增到每個執行個體。透過 Google Cloud Platform 主控台建立新執行個體時,您可在「Create Instance」 (建立執行個體) 面板的「Identity and API access」 (身分及 API 存取權) 區段執行這項操作。請使用 Compute Engine 預設服務帳戶或您選擇的其他服務帳戶,並選取「Identity and API access」 (身分及 API 存取權) 區段的 [Allow full access to all Cloud APIs] (允許所有 Cloud API 的完整存取權)。無論您選取哪個服務帳戶,請確認該帳戶已在 GCP 主控台的「IAM & admin」(IAM 與管理員) 區段取得記錄寫入者角色

在本機及其他位置執行

如要在 Google Cloud Platform 之外使用 Ruby 適用的 Stackdriver Logging 程式庫,包括在您自己的工作站、資料中心的電腦或其他雲端服務供應商的 VM 執行個體上執行該程式庫,您都必須將 GCP 專案 ID 和適當的服務帳戶憑證直接提供給 Ruby 適用的 Stackdriver Logging 程式庫。

您可以手動建立及取得服務帳戶憑證。當您指定「Role」(角色) 欄位時,請使用記錄寫入者角色。如要進一步瞭解 Cloud Identity and Access Management 角色,請參閱存取權控管指南一文。

*使用 Ruby on Rails 設定介面:

如果您使用 Ruby on Rails 架構,請透過 Ruby on Rails 設定介面提供參數:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Logging specific parameters
  config.google_cloud.logging.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.logging.keyfile    = "/path/to/service-account.json"
end

您也可以使用以下方式為所有 Stackdriver Gem 設定共用設定:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Shared parameters
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
end

Rails 在實際工作環境模式下執行時,預設為啟用 Logging。如要在開發模式下啟用 Logging,請新增以下內容:

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_logging = true
end

使用檢測設定介面:

在其他 Rack 式應用程式中使用時,請透過設定介面提供參數:

require "google/cloud/logging"

Google::Cloud.configure do |config|
  # Stackdriver Logging specific parameters
  config.logging.project_id = "YOUR-PROJECT-ID"
  config.logging.keyfile    = "/path/to/service-account.json"
end

您也可以使用以下方式為所有 Stackdriver Gem 設定共用設定:

require "stackdriver"

Google::Cloud.configure do |config|
  # Stackdriver Shared parameters
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
end

查看記錄

部署之後,您可在 GCP 主控台記錄檢視器中查看記錄。

前往記錄檢視器

在記錄檢視器中,您必須指定一或多個資源,但資源的選取可能並不明顯。下列提示可協助您著手操作:

  • 如果您將應用程式部署至 App Engine 或使用 App Engine 特定程式庫,請將您的資源設定為 GAE 應用程式

  • 如果您在 Compute Engine 上部署應用程式,請將資源設定為 GCE VM 執行個體

  • 如果您在 Google Kubernetes Engine 上部署應用程式,叢集的記錄設定可決定記錄項目的資源類型。如需關於舊版 Stackdriver 與 Stackdriver Kubernetes Monitoring 解決方案的詳細討論,以及這些選項影響資源類型的方式,請參閱遷移至 Stackdriver Kubernetes Monitoring 一文。

  • 如果您的應用程式直接使用 Stackdriver Logging API,資源取決於 API 與您的設定。例如,在您的應用程式中,您可以指定資源或使用預設資源。

  • 如果您在記錄檢視器中看不到任何記錄,若要查看所有記錄項目,請切換至進階篩選器模式並使用空白篩選器。

    1. 若要切換至進階篩選器模式,請按一下記錄檢視器頂端的選單 (▾),然後選取 [Convert to advanced filter] (轉換為進階篩選器)
    2. 清除顯示在篩選器方塊中的內容。
    3. 按一下 [Submit Filter] (提交篩選器)

    您可以檢查個別項目,以識別您的資源。

詳情請參閱查看記錄進階記錄篩選器這兩篇文章。

本頁內容對您是否有任何幫助?請提供意見:

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

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