Configurazione di Cloud Logging per Ruby

Puoi scrivere i log in Cloud Logging dalle applicazioni Ruby utilizzando la libreria Cloud Logging per Ruby o mediante Libreria client Cloud di Cloud Logging per Ruby direttamente.

Per utilizzare l'agente Cloud Logging, non è necessario installare Libreria Cloud Logging per Ruby su un'istanza VM di Compute Engine.

Prima di iniziare

  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. Installa Ruby 2.2 o versioni successive.

Installazione della libreria

Forniamo una libreria Cloud Logging per Ruby, che fornisce un logger facile da usare implementazione per framework web Ruby basati su rack:

  1. Aggiungi il gem Google Cloud Observability al tuo file Gem:

    gem "stackdriver"
  2. Usa Bundler per installare il gem:

    bundle install
    

Attivazione della raccolta

Se utilizzi Ruby su Rails, Bundler carica automaticamente la libreria dell'applicazione all'avvio. Il valore predefinito Rails.logger è impostato su del logger Cloud Logging.

Altre applicazioni basate su Rack possono utilizzare il middleware Rack per sostituire il logger Rack con il logger Cloud Logging se il tuo framework web supporta il logger Rack:

require "google/cloud/logging"

use Google::Cloud::Logging::Middleware

Configurazione della libreria

Puoi personalizzare il comportamento della libreria Cloud Logging per Ruby. Vedi la configurazione della libreria per un elenco di possibili opzioni di configurazione.

Utilizzo di Cloud Logging Logger

Una volta abilitata la libreria Cloud Logging per Ruby, puoi utilizzare il logger la tua applicazione:

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

Per ulteriori informazioni sull'installazione, consulta la documentazione della libreria Cloud Logging per Ruby. Puoi anche segnalare problemi utilizzando il tracker dei problemi.

Scrivi i log con la libreria client di Cloud Logging

Per informazioni sull'utilizzo diretto della libreria client di Cloud Logging per Ruby, consulta la sezione Librerie client di Cloud Logging.

Esegui su Google Cloud

Affinché un'applicazione possa scrivere log utilizzando la libreria Cloud Logging per Ruby, l'account di servizio per la risorsa sottostante deve avere Ruolo Autore log (roles/logging.logWriter) IAM. La maggior parte degli ambienti Google Cloud configura automaticamente per avere questo ruolo.

App Engine

Cloud Logging è abilitato automaticamente per App Engine e default service account ha le autorizzazioni IAM per scrivere voci di log per impostazione predefinita.

Per ulteriori informazioni, consulta la sezione Scrittura e visualizzazione. log.

Google Kubernetes Engine (GKE)

GKE concede automaticamente l'account di servizio predefinito del ruolo IAM Writer log (roles/logging.logWriter). Se utilizzi Federazione delle identità dei carichi di lavoro per GKE con questo account di servizio predefinito per consentire ai carichi di lavoro di accedere API Google Cloud, non sono necessarie ulteriori configurazioni. Tuttavia, se utilizzi la federazione delle identità per i carichi di lavoro per GKE con un account di servizio IAM personalizzato, assicurati che l'account di servizio personalizzato abbia il ruolo di autore di log (roles/logging.logWriter).

Se necessario, puoi anche utilizzare il seguente comando per aggiungere logging.write quando crei il cluster:

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

Compute Engine

Quando utilizzi istanze VM di Compute Engine, aggiungi cloud-platform di ambito di accesso a ogni istanza. Quando crei una nuova istanza tramite Console Google Cloud, puoi farlo nella sezione Identità e accesso API. del riquadro Crea istanza. Utilizza l'account di servizio predefinito di Compute Engine o un altro account di servizio a tua scelta e seleziona Consenti l'accesso completo a tutte le API Cloud nella sezione Identità e accesso API. Qualunque servizio l'account selezionato, accertati di aver ricevuto Ruolo Writer log in IAM e Amministratore di nella console Google Cloud.

Eseguire in locale e altrove

Per utilizzare la libreria Cloud Logging per Ruby al di fuori di Google Cloud, compresa l'esecuzione della libreria sulla tua workstation, sul data center computer o sulle istanze VM di un altro cloud provider, fornisci l'ID progetto Google Cloud e i dati account di servizio le credenziali direttamente alla libreria Cloud Logging per Ruby.

Per gli account di servizio esistenti:

  1. Concedi all'account di servizio l'accesso IAM Ruolo IAM Autore di log (roles/logging.logWriter). Per ulteriori informazioni su IAM vedi Controllo dell'accesso.

  2. Configura Credenziali predefinite dell'applicazione.

Se non hai un account di servizio, creane uno. Per informazioni su questo processo, vedi Creare account di servizio.

Per informazioni generali sui metodi che puoi utilizzare per l'autenticazione, consulta Terminologia: account di servizio.

Utilizzo dell'interfaccia di configurazione Ruby on Rails:

Fornisci i parametri tramite l'interfaccia di configurazione Ruby on Rails se stai utilizzando il framework 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

Puoi anche impostare una configurazione condivisa per tutti i gem di Google Cloud Observability utilizzando:

# 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

Il logging è abilitato per impostazione predefinita quando Rails è in esecuzione in modalità di produzione. A abilita Logging in modalità sviluppo, aggiungi il seguente annuncio:

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

Utilizzo dell'interfaccia di configurazione della strumentazione:

Fornire i parametri tramite l'interfaccia di configurazione, se utilizzati in altre applicazioni basate su 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

Puoi anche impostare una configurazione condivisa per tutti i gem di Google Cloud Observability utilizzando:

require "stackdriver"

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

Visualizza i log

Nella console Google Cloud, vai alla pagina Esplora log:

Vai a Esplora log

Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

In Esplora log devi specificare una o più risorse, ma la risorsa la selezione potrebbe non essere ovvia. Ecco alcuni suggerimenti per iniziare:

  • Se esegui il deployment della tua applicazione in App Engine o utilizzi specifiche di App Engine, imposta la risorsa su Applicazione GAE.

  • Se stai eseguendo il deployment dell'applicazione su Compute Engine, imposta la risorsa su Istanzia VM GCE.

  • Se esegui il deployment dell'applicazione su Google Kubernetes Engine, la configurazione di logging del cluster determina il tipo di risorsa delle voci di log. Per una panoramica Discussione su Legacy Google Cloud Observability e Google Cloud Observability le soluzioni di Kubernetes Monitoring e il modo in cui queste opzioni influiscono risorsa, consulta Migrazione a Kubernetes Monitoring di Google Cloud Observability.

  • Se la tua applicazione utilizza direttamente l'API Cloud Logging, La risorsa dipende dall'API e dalla configurazione. Ad esempio, nella tua applicazione puoi specificare una risorsa o utilizzare una risorsa predefinita.

  • Se non vedi nessun log in Esplora log, per visualizzare tutte le voci dei log, passa alla modalità di query avanzata e utilizza una query vuota.

    1. Per passare alla modalità di query avanzata, fai clic su menu (▾) nella parte superiore di Esplora log e seleziona Converti in filtro avanzato.
    2. Cancella i contenuti visualizzati nella casella del filtro.
    3. Fai clic su Invia filtro.

    Puoi esaminare le singole voci per identificare le risorse.

Per ulteriori informazioni, consulta Utilizzo di Esplora log.