Cómo configurar Cloud Logging para Ruby

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

No es necesario instalar el agente de Cloud Logging a fin de usar la biblioteca de Cloud Logging para Ruby en una instancia de VM de Compute Engine.

Antes de comenzar

  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. Instala Ruby 2.2+ o superior.
  9. Instala la biblioteca

    Proporcionamos una biblioteca de Cloud Logging para Ruby, que proporciona una implementación del registrador fácil de usar para los frameworks web de Ruby basados en Rack:

    1. Agrega la gema de Google Cloud Observability a tu Gemfile:

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

      bundle install
      

    Habilita la biblioteca

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

    Otras aplicaciones basadas en Rack pueden usar el middleware de Rack para reemplazar el registrador de Rack con el registrador de Cloud Logging si tu framework 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 Cloud Logging para Ruby. Consulta la configuración de la biblioteca para obtener una lista de las opciones de configuración posibles.

    Usa el registrador de Cloud Logging

    Una vez que esté habilitada la biblioteca de Cloud Logging para Ruby, puedes usar el registrador en tu aplicación:

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

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

    Escribe registros con la biblioteca cliente de Cloud Logging

    Si deseas obtener información para usar directamente la biblioteca cliente de Cloud Logging para Ruby, consulta Bibliotecas cliente de Cloud Logging.

    Ejecutar en Google Cloud

    Para que una aplicación escriba registros con la biblioteca de Cloud Logging para Ruby, la cuenta de servicio del recurso subyacente debe tener el rol de escritor de registros (roles/logging.logWriter) de IAM. La mayoría de los entornos de Google Cloud configuran automáticamente la cuenta de servicio predeterminada para que tenga este rol.

    App Engine

    Cloud Logging se habilita automáticamente para App Engine, y la cuenta de servicio predeterminada de tu app tiene los permisos de IAM de forma predeterminada para escribir entradas de registro.

    Para obtener más información, consulta Escribe y visualiza registros.

    Google Kubernetes Engine (GKE)

    GKE otorga automáticamente a la cuenta de servicio predeterminada el rol de IAM de Escritor de registros (roles/logging.logWriter). Si usas la federación de identidades para cargas de trabajo para GKE con esta cuenta de servicio predeterminada para permitir que las cargas de trabajo accedan a APIs deGoogle Cloud específicas, no se requiere ninguna configuración adicional. Sin embargo, si usas Workload Identity Federation for GKE con una cuenta de servicio de IAM personalizada, asegúrate de que la cuenta de servicio personalizada tenga el rol de escritor de registros (roles/logging.logWriter).

    Si es necesario, también puedes usar el siguiente comando para agregar el permiso 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 permiso de acceso cloud-platform a cada instancia. Si creas una instancia nueva a través de la consola deGoogle Cloud , 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 la consola deGoogle Cloud .

    Ejecuta de forma local y en otros lugares

    Para usar la biblioteca de Cloud Logging para Ruby fuera de Google Cloud, lo que incluye ejecutar la biblioteca en tu propia 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 configurar las credenciales predeterminadas de la aplicación (ADC) en tu entorno local para autenticarte en la biblioteca de Cloud Logging para Ruby.

    Para obtener más información, consulta Configura el ADC para un entorno local o para otro proveedor de servicios en la nube.

    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 Google Cloud Observability con 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 Google Cloud Observability con 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

    Consulta los registros

    En la consola de Google Cloud , ve a la página Explorador de registros.

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

    En el Explorador 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 utilizas 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 información detallada sobre las soluciones de Google Cloud Observability heredado y Kubernetes Monitoring de Google Cloud Observability, y cómo estas opciones afectan el tipo de recurso, consulta Migra a Kubernetes Monitoring de Google Cloud Observability.

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

    • Si no ves ningún registro en el Explorador 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 a filtro avanzado.
      2. Borra el contenido que aparece en el cuadro de filtro.
      3. Haz clic en Enviar filtro.

      Puedes examinar las entradas individuales para identificar tus recursos.

    Para obtener más información, consulta Usa el Explorador de registros.