Configurer Cloud Logging pour Ruby

Vous pouvez écrire des journaux dans Cloud Logging à partir d'applications Ruby à l'aide de la bibliothèque Cloud Logging pour Ruby ou directement à l'aide de la bibliothèque cliente cloud Cloud Logging pour Ruby.

Il n'est pas nécessaire d'installer l'agent Cloud Logging pour utiliser la bibliothèque Cloud Logging pour Ruby sur une instance de VM Compute Engine.

Avant de commencer

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the Cloud Logging API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  4. Installez Ruby 2.2+ ou une version ultérieure.

Installer la bibliothèque

Nous fournissons une bibliothèque Cloud Logging pour Ruby implémentant un enregistreur facile à utiliser pour les frameworks Web Ruby basés sur Rack :

  1. Ajoutez le gem Google Cloud Observability à votre fichier Gemfile :

    gem "stackdriver"
  2. Utilisez Bundler pour installer le gem :

    bundle install
    

Activer la bibliothèque

Si vous utilisez Ruby on Rails, Bundler charge automatiquement la bibliothèque dans votre application au démarrage, ce qui définit l'enregistreur par défaut Rails.logger sur une instance de l'enregistreur Cloud Logging.

D'autres applications basées sur Rack peuvent utiliser le middleware Rack pour remplacer l'enregistreur Rack par l'enregistreur Cloud Logging, si votre framework Web est compatible avec l'enregistreur Rack :

require "google/cloud/logging"

use Google::Cloud::Logging::Middleware

Configurer la bibliothèque

Vous pouvez personnaliser le comportement de la bibliothèque Cloud Logging pour Ruby. Consultez la configuration de la bibliothèque pour obtenir la liste des options de configuration possibles.

Utiliser l'enregistreur Cloud Logging

Une fois que la bibliothèque Cloud Logging pour Ruby est activée, vous pouvez utiliser l'enregistreur dans votre application :

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

Pour plus d'informations sur l'installation, consultez la documentation de la bibliothèque Cloud Logging pour Ruby. Vous pouvez également signaler d'éventuels problèmes à l'aide de l' outil de suivi des problèmes.

Écrire des journaux avec la bibliothèque cliente Cloud Logging

Pour savoir comment utiliser directement la bibliothèque cliente Cloud Logging pour Ruby, consultez la page Bibliothèques clientes Cloud Logging.

Exécuter sur Google Cloud

Pour qu'une application écrive des journaux à l'aide de la bibliothèque Cloud Logging pour Ruby, le compte de service de la ressource sous-jacente doit disposer du rôle IAMroles/logging.logWriter Rédacteur de journaux (). La plupart des Google Cloud environnements configurent automatiquement le compte de service par défaut pour qu'il dispose de ce rôle.

App Engine

Cloud Logging est automatiquement activé pour App Engine et le compte de service par défaut de votre application dispose des autorisations IAM par défaut permettant d'écrire des entrées de journal.

Pour en savoir plus, consultez Écrire et afficher des journaux.

Google Kubernetes Engine (GKE)

GKE attribue automatiquement le rôle IAM Rédacteur de journaux (roles/logging.logWriter) au compte de service par défaut. Si vous utilisez Workload Identity Federation for GKE avec ce compte de service par défaut pour permettre aux charges de travail d'accéder à des Google Cloud API spécifiques, aucune configuration supplémentaire n'est requise. Toutefois, si vous utilisez Workload Identity Federation for GKE avec un compte de service IAM personnalisé, assurez-vous que ce compte dispose du rôle Rédacteur de journaux (roles/logging.logWriter).

Si nécessaire, vous pouvez également utiliser la commande suivante pour ajouter le niveau d'accès logging.write lors de la création du cluster :

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

Compute Engine

Lorsque vous utilisez des instances de VM Compute Engine, ajoutez le cloud-platform niveau d'accès à chaque instance. Lorsque vous créez une instance via la Google Cloud console, vous pouvez le faire dans la section Identité et accès à l'API du panneau Créer une instance. Utilisez le compte de service par défaut de Compute Engine ou un autre compte de service de votre choix, puis sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud dans la section Identité et accès à l'API. Quel que soit le compte de service sélectionné, vérifiez qu'il dispose du rôle Rédacteur de journaux dans la section IAM et administration de la Google Cloud console.

Exécuter en local et depuis un autre emplacement

Pour utiliser la bibliothèque Cloud Logging pour Ruby en dehors de Google Cloud, y compris en l'exécutant sur votre propre station de travail, sur les ordinateurs de votre centre de données ou sur les instances de VM d'un autre fournisseur de services cloud, vous devez configurer les Identifiants par défaut de l'application (ADC, Application Default Credentials) dans votre environnement local pour vous authentifier auprès de la bibliothèque Cloud Logging pour Ruby.

Pour en savoir plus, consultez Configurer les Identifiants par défaut de l'application pour un autre fournisseur de services cloud ou sur site.

Utiliser l'interface de configuration de Ruby on Rails

Si vous utilisez le framework Ruby on Rails, fournissez les paramètres via l'interface de configuration de 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

Vous pouvez également définir une configuration partagée pour l'ensemble des gems Google Cloud Observability comme suit :

# 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

Logging est activé par défaut lorsque Rails est exécuté en mode de production. Pour activer Logging en mode de développement, intégrez les ajouts suivants :

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

Utiliser l'interface de configuration d'instrumentation :

Lorsque vous utilisez d'autres applications basées sur Rack, fournissez les paramètres via l'interface de configuration :

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

Vous pouvez également définir une configuration partagée pour l'ensemble des gems Google Cloud Observability comme suit :

require "stackdriver"

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

Afficher les journaux

Dans la Google Cloud console, accédez à la Explorateur de journaux :

Accéder à l'explorateur de journaux

Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

Dans l'explorateur de journaux, vous devez spécifier une ou plusieurs ressources, mais leur sélection peut ne pas être évidente. Voici quelques conseils pour vous aider à faire vos premiers pas :

Pour en savoir plus, consultez la page Utiliser l'explorateur de journaux.