Configuración de Stackdriver Logging para Ruby

Puedes escribir registros en Stackdriver Logging desde las aplicaciones de Ruby con la biblioteca de Stackdriver Logging para Ruby o directamente con la biblioteca cliente de Cloud de Stackdriver Logging para Ruby.

No hace falta que el agente de Stackdriver Logging esté instalado a fin de usar la biblioteca de Stackdriver Logging para Ruby en una instancia de VM de Compute Engine.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En GCP Console, en la página de selección de proyecto, selecciona o crea un proyecto de GCP.

    Ir a la página de selección de proyecto

  3. Asegúrate de tener habilitada la facturación para tu proyecto de Google Cloud Platform. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.

  4. Habilita lasStackdriver Logging APIAPInecesarias.

    Habilita lasAPI

  5. Instala Ruby 2.2+ o una versión superior.

Instala la biblioteca

Proporcionamos una biblioteca de Stackdriver Logging para Ruby, que brinda una implementación de registrador fácil de usar en los marcos de trabajo web de Ruby basados en Rack:

  1. Agrega la gema de Stackdriver a tu Gemfile:

    gem "stackdriver"
  2. Usa Bundler para instalar la gema:

    bundle install
    

Habilita la biblioteca

Si usas Ruby on Rails, Bundler carga de forma automática la biblioteca en tu aplicación cuando se inicia, lo que establece el Rails.logger predeterminado en una instancia del registrador de Stackdriver Logging.

Otras aplicaciones basadas en Rack pueden usar el middleware de Rack para reemplazar el registrador de Rack por el de Stackdriver Logging si tu marco de trabajo web es compatible con el registrador de Rack:

require "google/cloud/logging"

use Google::Cloud::Logging::Middleware

Configura la biblioteca

Puedes personalizar el comportamiento de la biblioteca de Stackdriver Logging para Ruby. Consulta la configuración de la biblioteca para obtener una lista de las posibles opciones de configuración.

Usa el registrador de Stackdriver Logging

Una vez que se habilita la biblioteca de Stackdriver Logging para Ruby, puedes usar el registrador en tu aplicación:

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

Si deseas obtener más información sobre la instalación, consulta la documentación de la biblioteca de Stackdriver Logging para Ruby. También puedes informar problemas con la Herramienta de seguimiento de errores.

Usa la biblioteca cliente de Cloud directamente

Si deseas obtener información sobre cómo usar directamente la biblioteca cliente de Cloud en Stackdriver Logging para Ruby, consulta la página sobre las bibliotecas cliente de Stackdriver Logging.

Ejecuta en Google Cloud

A fin de usar la biblioteca de Stackdriver Logging para Ruby, se requiere la función de escritor de registros de Cloud IAM en Google Cloud. La mayoría de los entornos de Google Cloud proporcionan esta función de forma predeterminada.

App Engine

App Engine otorga la función de escritor de registros de forma predeterminada.

La biblioteca de Stackdriver Logging para Ruby se puede usar sin tener que proporcionar credenciales de manera explícita.

Stackdriver Logging se habilita de forma automática para las aplicaciones de App Engine. No se requiere ninguna configuración adicional.

Google Kubernetes Engine

En Google Kubernetes Engine, debes agregar el nivel de acceso logging.write cuando creas el clúster:

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

Compute Engine

Cuando uses las instancias de VM de Compute Engine, agrega el nivel de acceso cloud-platform a cada instancia. Si creas una instancia nueva a través de Google Cloud Console, puedes hacerlo en la sección Identidad y acceso a la API del panel Crear instancia. Usa la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio diferente y selecciona Permitir acceso total a las API de Cloud en la sección Identidad y acceso a la API. Asegúrate de que la cuenta de servicio que selecciones tenga la función de escritor de registros en la sección IAM y administración de Cloud Console.

Ejecuta de forma local y en otros lugares

Si quieres usar la biblioteca de Stackdriver Logging para Ruby fuera de Google Cloud, lo que incluye ejecutar la biblioteca en tu estación de trabajo, en las computadoras de tu centro de datos o en las instancias de VM de otro proveedor de servicios en la nube, debes proporcionar el ID del proyecto de Google Cloud y las credenciales de la cuenta de servicio correspondientes directamente a la biblioteca de Stackdriver Logging para Ruby.

Puedes crear y obtener credenciales de cuentas de servicio de forma manual. Cuando especifiques el campo Función, usa la función escritor de registros. Para obtener más información sobre las funciones de Cloud Identity and Access Management, consulta la Guía de control de acceso.

Usa la interfaz de configuración de Ruby on Rails:

Si usas el marco de trabajo de Ruby on Rails, proporciona los parámetros mediante su interfaz de configuración:

# 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

También puedes establecer la configuración compartida para todas las gemas de Stackdriver mediante el siguiente comando:

# 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 se habilita de forma predeterminada cuando Rails se ejecuta en el modo de producción. Para habilitar Logging en el modo de desarrollo, agrega lo siguiente:

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

Usa la interfaz de configuración de instrumentación:

Cuando se use en otras aplicaciones basadas en Rack, proporciona los parámetros a través de la interfaz de configuración:

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

También puedes establecer la configuración compartida para todas las gemas de Stackdriver mediante el siguiente comando:

require "stackdriver"

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

Visualiza los registros

Después de la implementación, puedes ver los registros en el visor de registros de Cloud Console.

Ir al visor de registros

En el visor de registros, debes especificar uno o más recursos, aunque la selección de recursos puede no ser obvia. Aquí encontrarás algunas sugerencias que te ayudarán a comenzar:

  • Si implementas tu aplicación en App Engine o mediante las bibliotecas específicas de App Engine, configura tu recurso como Aplicación de GAE.

  • Si implementas tu aplicación en Compute Engine, configura el recurso como Instancia de VM de GCE.

  • Si implementas tu aplicación en Google Kubernetes Engine, la configuración de registro de tu clúster determina el tipo de recurso de las entradas de registro. Para obtener más información sobre las soluciones de Stackdriver heredado y Stackdriver Kubernetes Monitoring, y sobre cómo estas opciones afectan el tipo de recurso, consulta Migración a Kubernetes Monitoring.

  • Si tu aplicación usa directamente la API de Stackdriver Logging, el recurso depende de la API y de tu configuración. Por ejemplo, en tu aplicación, puedes especificar un recurso o usar un recurso predeterminado.

  • Si no ves ningún registro en el visor de registros, cambia al modo de consulta avanzada y usa una consulta vacía para ver todas las entradas de registro.

    1. Para cambiar al modo de consulta avanzada, haz clic en menú (▾) en la parte superior del visor de registros y selecciona Convertir en filtro avanzado.
    2. Borra el contenido que aparece en la casilla de filtro.
    3. Haz clic en Enviar filtro.

    Puedes examinar las entradas individuales para identificar tus recursos.

Para obtener más información, consulta Visualiza los registros y la página sobre consultas de registros avanzadas.