Cloud Logging für Ruby einrichten

Sie können Logs von Ruby-Anwendungen mithilfe der Cloud Logging-Bibliothek für Ruby nach Cloud Logging schreiben. Dies ist auch direkt über die Cloud Logging-Cloud-Clientbibliothek für Ruby möglich.

Der Cloud Logging-Agent muss nicht installiert sein, um die Cloud Logging-Bibliothek für Ruby auf einer Compute Engine-VM-Instanz auszuführen.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Google Cloud-Konto haben, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. 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

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

  4. Enable the Cloud Logging API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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

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

  7. Enable the Cloud Logging API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Installieren Sie Ruby 2.2 oder höher.

Bibliothek installieren

Wir stellen eine Cloud Logging-Bibliothek für Ruby zur Verfügung, die eine benutzerfreundliche Logger-Implementierung für rackbasierte Ruby-Web-Frameworks bietet:

  1. Fügen Sie das Google Cloud Observability-Gem in Ihr Gemfile ein:

    gem "stackdriver"
  2. Installieren Sie das Gem mit Bundler:

    bundle install
    

Bibliothek aktivieren

Wenn Sie Ruby on Rails verwenden, lädt Bundler die Bibliothek beim Anwendungsstart automatisch in Ihre Anwendung, wodurch der Standard-Rails.logger auf eine Instanz des Cloud Logging-Loggers festgelegt wird.

Andere rackbasierte Anwendungen können den Rack-Logger mithilfe der bereitgestellten Rack-Middleware durch den Cloud Logging-Logger ersetzen, wenn Ihr Web-Framework den Rack-Logger unterstützt:

require "google/cloud/logging"

use Google::Cloud::Logging::Middleware

Bibliothek konfigurieren

Sie können das Verhalten der Cloud Logging-Bibliothek für Ruby anpassen. Eine Liste der möglichen Konfigurationsoptionen finden Sie in der Konfiguration der Bibliothek.

Cloud Logging-Logger verwenden

Wenn die Cloud Logging-Bibliothek für Ruby aktiviert ist, können Sie den Logger in Ihrer Anwendung verwenden:

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

Weitere Informationen zur Installation finden Sie in der Dokumentation zur Cloud Logging-Bibliothek für Ruby. Probleme können Sie über die Problemverfolgung melden.

Logs mit der Cloud Logging-Clientbibliothek schreiben

Informationen zur direkten Verwendung der Cloud Logging-Clientbibliothek für Ruby finden Sie unter Cloud Logging-Clientbibliotheken.

Ausführen auf Google Cloud

Damit eine Anwendung Logs mit der Cloud Logging-Bibliothek für Ruby schreiben kann, muss das Dienstkonto für die zugrunde liegende Ressource die IAM-Rolle „Logautor“ (roles/logging.logWriter) haben. In den meisten Google Cloud Umgebungen wird das Standard dienstkonto automatisch so konfiguriert, dass es diese Rolle hat.

App Engine

Cloud Logging ist für App Engine automatisch aktiviert und das Standarddienstkonto Ihrer Anwendung hat standardmäßig die IAM-Berechtigungen zum Schreiben von Logeinträgen.

Weitere Informationen finden Sie unter Logs schreiben und ansehen.

Google Kubernetes Engine (GKE)

GKE gewährt dem Standarddienstkonto automatisch die IAM-Rolle „Logautor (roles/logging.logWriter)“. Wenn Sie die Identitätsföderation von Arbeitslasten für GKE mit diesem Standarddienstkonto verwenden, damit Arbeitslasten auf bestimmte Google Cloud APIs zugreifen können, ist keine zusätzliche Konfiguration erforderlich. Wenn Sie die Identitätsföderation von Arbeitslasten für GKE mit einem benutzerdefinierten IAM-Dienstkonto verwenden, muss das benutzerdefinierte Dienstkonto die Rolle „Logautor“ (roles/logging.logWriter) haben.

Bei Bedarf können Sie auch den folgenden Befehl verwenden, um beim Erstellen des Clusters den Zugriffsbereich logging.write hinzuzufügen:

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

Compute Engine

Wenn Sie Compute Engine-VM-Instanzen verwenden, fügen Sie der jeweiligen Instanz den cloud-platform Zugriffsbereich hinzu. In der Google Cloud Console können Sie das beim Erstellen einer neuen Instanz im Bereich Instanz erstellen im Abschnitt Identität und API-Zugriff erledigen. Verwenden Sie das Compute Engine-Standarddienstkonto oder ein anderes Dienstkonto und wählen Sie im Abschnitt Identität und API-Zugriff die Option Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus. Achten Sie darauf, dass jedem ausgewählten Dienst konto im Abschnitt IAM & Verwaltung der Google Cloud Console die Rolle Logautor zugewiesen ist.

Lokal und extern ausführen

Wenn Sie die Cloud Logging-Bibliothek für Ruby außerhalb von Google Cloudverwenden möchten, beispielsweise auf Ihrer eigenen Workstation, auf den Computern Ihres Rechenzentrums oder auf den VM-Instanzen eines anderen Cloud-Anbieters, müssen Sie in Ihrer lokalen Umgebung Standardanmeldedaten für Anwendungen (ADC) einrichten, um sich bei der Cloud Logging-Bibliothek für Ruby zu authentifizieren.

Weitere Informationen finden Sie unter ADC für lokale Umgebungen oder andere Cloud-Anbieter einrichten.

Konfigurationsoberfläche von Ruby on Rails verwenden :

Geben Sie die Parameter in der Konfigurationsoberfläche von Ruby on Rails an, wenn Sie das Framework von Ruby on Rails verwenden:

# 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

Sie können auch eine gemeinsame Konfiguration für alle Google Cloud Observability-Gems festlegen, wenn Sie Folgendes eingeben:

# 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 ist standardmäßig aktiviert, wenn Rails im Produktionsmodus ausgeführt wird. Zur Aktivierung von Logging im Entwicklungsmodus fügen Sie Folgendes hinzu:

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

Konfigurationsoberfläche für Instrumentierung verwenden

Geben Sie die Parameter über die Konfigurationsoberfläche an, wenn sie in anderen rackbasierten Anwendungen verwendet werden:

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

Sie können auch eine gemeinsame Konfiguration für alle Google Cloud Observability-Gems festlegen, wenn Sie Folgendes eingeben:

require "stackdriver"

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

Logs ansehen

Rufen Sie in der Google Cloud Console das Segment und die Seite Log-Explorer auf:

Zum Log-Explorer

Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.

Im Log-Explorer müssen Sie eine oder mehrere Ressourcen angeben. Die Auswahl der Ressourcen ist jedoch möglicherweise nicht offensichtlich. Hier sind ein paar Tipps für den Einstieg.

  • Wenn Sie Ihre Anwendung für App Engine bereitstellen oder die App Engine-spezifischen Bibliotheken verwenden, setzen Sie die Ressource auf GAE-Anwendung.

  • Wenn Sie Ihre Anwendung auf der Compute Engine bereitstellen, setzen Sie die Ressource auf GCE-VM-Instanz.

  • Wenn Sie Ihre Anwendung in Google Kubernetes Engine bereitstellen, wird der Ressourcentyp der Logeinträge von der Loggingkonfiguration des Clusters bestimmt. Weitere Informationen zur Legacy-Operations-Suite von Google Cloud und zu den Operations-Suite von Google Cloud Kubernetes Monitoring-Lösungen sowie zu deren Auswirkungen auf den Ressourcentyp finden Sie unter Zu Kubernetes Engine Monitoring migrieren.

  • Wenn Ihre Anwendung die Cloud Logging API direkt nutzt, ist die Ressource von der API und Ihrer Konfiguration abhängig. Sie können in Ihrer Anwendung zum Beispiel eine Ressource angeben oder eine Standardressource verwenden.

  • Wenn im Log-Explorer keine Logs zu sehen sind, wechseln Sie zum erweiterten Abfragemodus und verwenden Sie eine leere Abfrage, um alle Logeinträge zu sehen.

    1. Klicken Sie oben im Log-Explorer auf das Dreipunkt-Menü (▾) und wählen Sie In erweiterten Filter umwandeln aus, um zum erweiterten Abfragemodus zu wechseln.
    2. Löschen Sie den Inhalt, der im Filterfeld angezeigt wird.
    3. Klicken Sie auf Filter senden.

    Sie können die einzelnen Einträge prüfen, um Ihre Ressourcen zu identifizieren.

Weitere Informationen finden Sie unter Log-Explorer verwenden.