設定 Ruby 適用的 Cloud Logging

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

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

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Logging API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Logging API.

    Enable the API

  8. 安裝 Ruby 2.2+ 以上版本。
  9. 安裝程式庫

    我們提供 Ruby 適用的 Cloud Logging 程式庫,為以 Rack 為基礎的 Ruby 網路架構提供簡單易用的記錄器實作:

    1. 將 Google Cloud Observability Gem 新增至 Gemfile:

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

      bundle install
      

    啟用程式庫

    如果您使用的是 Ruby on Rails,Bundler 會在應用程式啟動時自動將程式庫載入應用程式,並將預設 Rails.logger 設為 Cloud Logging 記錄器的例項。

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

    require "google/cloud/logging"
    
    use Google::Cloud::Logging::Middleware

    設定程式庫

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

    使用 Cloud Logging 記錄器

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

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

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

    使用 Cloud Logging 用戶端程式庫寫入記錄

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

    在 Google Cloud上執行

    應用程式如要使用 Ruby 適用的 Cloud Logging 程式庫寫入記錄,底層資源的服務帳戶必須具備 Logs Writer (roles/logging.logWriter) IAM 角色。大多數環境都會自動將這個角色指派給預設服務帳戶。 Google Cloud

    App Engine

    App Engine 會自動啟用 Cloud Logging,而且您的應用程式預設服務帳戶預設會具備寫入記錄項目的 IAM 權限。

    詳情請參閱「寫入及查看記錄」。

    Google Kubernetes Engine (GKE)

    GKE 會自動授予預設服務帳戶「記錄檔寫入者 (roles/logging.logWriter)」 IAM 角色。如果您使用 Workload Identity Federation for GKE 搭配這個預設服務帳戶,讓工作負載存取特定Google Cloud API,則不需要額外設定。不過,如果您使用 Workload Identity Federation for GKE 搭配自訂 IAM 服務帳戶,請確認自訂服務帳戶具備「記錄寫入者」(roles/logging.logWriter) 角色。

    如有需要,您也可以在建立叢集時使用下列指令新增 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 主控台建立新執行個體時,您可在「Create Instance」面板的「Identity and API access」 部分中執行此操作。請使用 Compute Engine 預設服務帳戶或您選擇的其他服務帳戶,並選取「Identity and API access」(身分及 API 存取權) 區段的「Allow full access to all Cloud APIs」(允許所有 Cloud API 的完整存取權)。無論您選取哪個服務帳戶,請確認該帳戶已在Google Cloud 主控台的「IAM & Admin」區段中取得「Logs Writer」角色。

    在本機和其他位置執行

    如要在 Google Cloud以外使用 Ruby 適用的 Cloud Logging 程式庫,包括在您自己的工作站、資料中心的電腦或其他雲端服務供應商的 VM 執行個體上執行程式庫時,您必須在本機環境中設定應用程式預設憑證 (ADC),以便向 Ruby 適用的 Cloud Logging 程式庫進行驗證。

    詳情請參閱「為內部部署或其他雲端服務供應商設定 ADC」。

    使用 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

    您也可以使用下列方式為所有 Google Cloud Observability 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

    您也可以使用下列方式為所有 Google Cloud Observability 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

    查看記錄

    前往 Google Cloud 控制台的「Logs Explorer」頁面:

    前往「Logs Explorer」(記錄檔探索工具)

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

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

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

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

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

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

    • 如果您在記錄檔探索工具中看不到任何記錄,請切換至進階查詢模式並使用空白查詢,以便查看所有記錄項目。

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

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

    如需更多資訊,請參閱「使用記錄檔探索工具」。