Configurar y administrar receptores

En este documento, se explica cómo crear y administrar receptores para enrutar las entradas de registro a destinos compatibles.

Descripción general

Los receptores controlan cómo Cloud Logging enruta los registros. Si usas los receptores, puedes enrutar algunos o todos tus registros a los destinos compatibles.

Los receptores pertenecen a un recurso de Google Cloud determinado: proyectos de Cloud, cuentas de facturación, carpetas y organizaciones. Cuando el recurso recibe una entrada de registro, la enruta según los receptores que contiene ese recurso. La entrada de registro se envía al destino asociado con cada receptor coincidente.

También puedes crear receptores agregados para especificar que el receptor combine y enrute entradas de registro de los recursos de Google Cloud que contienen una organización o carpeta. . A fin de obtener instrucciones, consulta Configura receptores agregados.

Para crear y administrar receptores, puedes usar Cloud Console, la API de Cloud Logging y la herramienta de línea de comandos de gcloud. Usar Cloud Console tiene las siguientes ventajas sobre los otros métodos:

  • Visualiza y administra todos tus receptores en un solo lugar.
  • Obtén una vista previa de las entradas de registro que coinciden con el filtro de tu receptor antes de crearlo.
  • Crea y autoriza destinos de receptor para tus receptores.

Destinos admitidos

Puedes enrutar registros a los siguientes destinos:

  • Cloud Storage: archivos JSON almacenados en buckets de Cloud Storage
  • Pub/Sub: Mensajes JSON enviados a temas de Pub/Sub Admite integraciones de terceros, como Splunk, con Logging.
  • BigQuery: tablas creadas en conjuntos de datos de BigQuery.
  • Otro bucket de Cloud Logging: entradas de registro que se guardan en buckets de registro de Cloud Logging.

Antes de comenzar

Ten en cuenta que esta guía describe cómo crear y administrar receptores a nivel de proyecto de Cloud, pero puedes crear receptores (no agregados) para cuentas de facturación, carpetas y organizaciones. Cuando comiences, asegúrate de lo siguiente:

  • Tienes un proyecto de Google Cloud con registros que puedes ver en el Explorador de registros.

  • Tienes una de las siguientes funciones de IAM para el proyecto de Cloud de origen desde el que enrutas registros.

    • Propietario (roles/owner)
    • Administrador de Logging (roles/logging.admin)
    • Escritor de configuración de registros (roles/logging.configWriter)

    Los permisos contenidos en estas funciones te permiten crear, borrar o modificar receptores. Para obtener información sobre las funciones de IAM, consulta la Guía de control de acceso de Logging.

  • Tienes un recurso en un destino admitido o tienes la capacidad de crear uno.

    El destino de enrutamiento debe crearse antes que el receptor mediante la herramienta de línea de comandos de gcloud, Cloud Console o las API de Google Cloud. Puedes crear el destino en cualquier proyecto de Cloud en cualquier organización, pero debes asegurarte de que la cuenta de servicio del receptor tenga permisos para escribir en el destino.

Crea un receptor

A continuación, se brindan las instrucciones para crear un receptor en un proyecto de Cloud. En lugar de un proyecto de Cloud, puedes especificar una cuenta de facturación, una carpeta o una organización.

Puedes crear hasta 200 receptores por proyecto de Cloud.

Para crear un receptor, haz lo siguiente:

Console

  1. En Cloud Console, ve a la página Logging > Enrutador de registros.

    Ir al Enrutador de registros

  2. Selecciona un proyecto de Cloud existente.

  3. Selecciona Crear receptor.

  4. En el panel Detalles del receptor, ingresa los siguientes detalles:

    • Nombre del receptor: proporciona un identificador para el receptor. Ten en cuenta que después de crear el receptor, no puedes cambiarle el nombre, pero puedes borrarlo y crear uno nuevo.

    • Descripción del receptor (opcional): Describe el caso práctico o el caso del receptor.

  5. En el panel Destino del receptor, selecciona el servicio y el destino del receptor:

    • Selecciona el servicio del receptor: selecciona el servicio en el que deseas que se enruten tus registros.

    Según el servicio que selecciones, puedes elegir entre los siguientes destinos:

    • Cloud Logging bucket: Selecciona o crea un bucket de Logging.
    • Tabla de BigQuery: selecciona o crea el conjunto de datos específico para recibir los registros enrutados. También tienes la opción de usar tablas particionadas.
    • Bucket de Cloud Storage: Selecciona o crea el bucket de Cloud Storage en particular para recibir los registros enrutados.
    • Tema de Pub/Sub: selecciona o crea el tema específico para recibir los registros enrutados.
    • Splunk: Selecciona el tema de Pub/Sub para el servicio de Splunk.
    • Otro proyecto de Cloud: agrega de forma manual la información de destino y servicio de Logging, BigQuery, Cloud Storage o Pub/Sub en el siguiente formato:

      SERVICE.googleapis.com/projects/PROJECT_ID/SINK_DESTINATION/DESTINATION_ID
      

      Por ejemplo, si el destino de tu receptor es un conjunto de datos de BigQuery, el destino del receptor sería el siguiente:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      

      Ten en cuenta que, si enrutas registros entre proyectos de Cloud, aún necesitas los permisos de destino adecuados.

  6. En el panel Elige registros para incluir en el receptor, haz lo siguiente:

    1. Selecciona Incluir solo los registros transferidos por este recurso, lo que crea un receptor no agregado.

    2. En el campo Crear filtro de inclusión, ingresa una expresión de filtros que coincida con las entradas de registro que deseas incluir. Si no configuras un filtro, todos los registros del recurso seleccionado se enrutan al destino.

      Por ejemplo, es posible que desees compilar un filtro para enrutar todos los registros de acceso a los datos a un solo bucket de Logging. Este filtro se verá de la siguiente manera:

      LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")
      

      Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.

    3. Para verificar que ingresaste el filtro correcto, selecciona Obtener vista previa de los registros. Esto abrirá el Explorador de registros en una pestaña nueva con el filtro prepropagado.

  7. (Opcional) En el panel Elige registros para excluir del receptor, haz lo siguiente:

    1. En el campo Nombre de filtro de exclusión, ingresa un nombre.

    2. En la sección Compila un filtro de exclusión, ingresa una expresión de filtro que coincida con las entradas de registro que deseas excluir. También puedes usar la función sample para seleccionar una parte de las entradas de registro a fin de excluirlas.

    Puedes crear hasta 50 filtros de exclusión por receptor. Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.

  8. Selecciona Crear receptor.

API

  1. Para crear un receptor de registros en tu proyecto de Cloud, usa projects.sinks.create en la API de Logging. En el objeto LogSink, proporciona los valores obligatorios adecuados en el cuerpo de la solicitud del método:

    • name: Un identificador para el receptor. Ten en cuenta que después de crear el receptor, no puedes cambiarle el nombre, pero puedes borrarlo y crear uno nuevo.
    • destination: El servicio y el destino a los que deseas que se enruten los registros Por ejemplo, si el destino del receptor es un conjunto de datos de BigQuery, destination se vería de la siguiente manera:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      
  2. En el objeto LogSink, proporciona la información opcional adecuada:

    • filter : Establece la propiedad filter para que coincida con las entradas de registro que deseas incluir en tu receptor. Si no configuras un filtro, todos los registros de tu proyecto de Cloud se enrutan al destino. Ten en cuenta que la longitud de un filtro no puede superar los 20,000 caracteres.
    • exclusions: Configura esta propiedad para que coincida con las entradas de registro que deseas excluir del receptor. También puedes usar la función sample para seleccionar una parte de las entradas de registro a fin de excluirlas. Puedes crear hasta 50 filtros de exclusión por receptor.
    • description: Establece esta propiedad a fin de describir el propósito o el caso práctico del receptor.
  3. Llama a projects.sinks.create para crear el receptor.

  4. Recupera el nombre de la cuenta de servicio del campo writer_identity que muestra la respuesta de la API.

  5. Otorga permiso a esa cuenta de servicio para escribir en el destino del receptor.

    Si no tienes permiso para realizar ese cambio en el destino del receptor, envía el nombre de la cuenta de servicio a alguien que pueda realizarlo por ti.

    A fin de obtener más información sobre cómo otorgar permisos de cuentas de servicio para recursos, consulta la sección Configura permisos de destino.

Para obtener más información sobre cómo crear receptores con la API de Logging, consulta la referencia de LogSink.

gcloud

Para crear un receptor, ejecuta el siguiente comando:gcloud logging sinks create

Proporciona los valores adecuados para las variables en el comando de la siguiente manera:

  • SINK_NAME: Un identificador para el receptor. Ten en cuenta que después de crear el receptor, no puedes cambiarle el nombre, pero puedes borrarlo y crear uno nuevo.
  • SINK_DESTINATION: El servicio y el destino a los que deseas que se enruten los registros Por ejemplo, si el destino del receptor es un conjunto de datos de BigQuery, SINK_DESTINATION se vería de la siguiente manera:

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    
  • OPTIONAL_FLAGS incluye las siguientes marcas:

    • --log-filter : Usa esta marca para configurar un filtro que coincida con las entradas de registro que deseas incluir en el receptor. Si no configuras un filtro, todos los registros de tu proyecto de Cloud se enrutan al destino.
    • --exclusion: Usa esta marca a fin de establecer un filtro de exclusión para las entradas de registro que deseas excluir del receptor. También puedes usar la función sample para seleccionar una parte de las entradas de registro a fin de excluirlas. Esta marca se puede repetir; Puedes crear hasta 50 filtros de exclusión por receptor.
    • --description: Usa esta marca a fin de describir el propósito o el caso práctico del receptor.
gcloud logging sinks create SINK_NAME
SINK_DESTINATION OPTIONAL_FLAGS

Por ejemplo, para crear un receptor a un bucket de Logging, el comando podría verse de la siguiente manera:

gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \
  --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"

Para obtener más información sobre cómo crear receptores con la herramienta de línea de comandos de gcloud, además de más marcas y ejemplos, consulta la referencia de gcloud logging sinks. .

Para obtener información sobre cómo ver los registros en los destinos de receptor, consulta Encuentra registros enrutados.

Después de crear el receptor, puedes ver la cantidad y el volumen de las entradas de registro recibidas mediante las métricas logging.googleapis.com/exports/.

Si recibes notificaciones de errores, consulta Solución de problemas de enrutamiento y receptores.

Enruta registros entre buckets de registros en diferentes proyectos de Cloud

Puedes enrutar registros a un destino en un proyecto de Cloud diferente en el que se crea el receptor.

Para ello, debes realizar una de las siguientes acciones:

  • Otorga a la cuenta de servicio de tu receptor la función roles/logging.bucketWriter para escribir en el destino. Consulta Permisos de destino para obtener instrucciones.

  • Tener uno de los siguientes permisos de IAM para el proyecto de Cloud de origen desde el que envías registros

    • Propietario (roles/owner)
    • Administrador de Logging (roles/logging.admin)
    • Escritor de configuración de registros (roles/logging.configWriter)

    Si creas un bucket de Logging nuevo en el proyecto de Cloud de destino, debes tener uno de estos permisos.

Administra receptores

Después de crear los receptores, puedes realizar las siguientes acciones:

  • Visualiza los detalles del receptor
  • Actualiza receptores
  • Inhabilita receptores
  • Borra receptores

A continuación, se brindan las instrucciones para administrar un receptor en un proyecto de Cloud. En lugar de un proyecto de Cloud, puedes especificar una cuenta de facturación, una carpeta o una organización:

Console

Puedes ver y administrar tus receptores en la página Enrutador de registros:

Ir a Enrutador de registros

Asegúrate de haber seleccionado el proyecto de Cloud que contiene el receptor mediante el selector de recursos desde cualquier parte de Cloud Console:

Se selecciona un proyecto desde el menú desplegable

Para ver tus receptores agregados, selecciona la organización, la carpeta o la cuenta de facturación que contiene el receptor.

La interfaz del Enrutador de registros contiene un resumen de la tabla de los receptores. Cada fila de la tabla contiene información sobre las propiedades de un receptor:

  • Habilitado: Indica si el estado del receptor está habilitado o inhabilitado.
  • Tipo (Type): el servicio de destino del receptor; por ejemplo, Cloud Logging bucket.
  • Nombre: El identificador del receptor, como se proporciona cuando se creó el receptor; por ejemplo, _Default.
  • Descripción: La descripción del receptor, como se proporciona cuando se creó el receptor.
  • Destino: nombre completo del destino al que se enviarán las entradas de registro enrutadas.
  • Created (Creada): La fecha y hora en la que se creó el receptor.
  • Actualizado: la fecha y hora en que se editó el receptor por última vez.

Cada fila de la tabla tiene un menú y cuenta con las siguientes opciones:

  • Visualizar detalles del receptor: Muestra el nombre, la descripción, el servicio de destino, el destino y los filtros de inclusión y exclusión del receptor. Si seleccionas Edit, se abrirá el panel Edit Sink (Editar receptor).
  • Editar receptor: Abre un panel de Editar receptor en el que puedes actualizar los parámetros del receptor.
  • Inhabilitar el receptor: te permite inhabilitar el receptor y dejar de enrutar registros al destino del receptor. Para obtener más información sobre cómo inhabilitar los receptores, consulta Detén la transferencia de los registros.
  • Habilitar el receptor: te permite habilitar un receptor inhabilitado y reiniciar los registros de enrutamiento al destino del receptor.
  • Borrar receptor: Te permite borrar el receptor y detener el enrutamiento de los registros al destino del receptor. Los receptores _Default y _Required no se pueden borrar, pero el receptor _Default puede inhabilitarse para detener el enrutamiento de registros en el bucket de registros _Default.

Hacer clic en cualquiera de los nombres de columna te permite ordenar los datos de forma ascendente o descendente.

API

  • Para ver los receptores de tu proyecto de Cloud, llama a projects.sinks.list.

  • Para ver los detalles de un receptor, llama a projects.sinks.get.

  • Para actualizar un receptor, llama a projects.sink.update.

    Puedes actualizar el destino, los filtros y la descripción de un receptor. También puedes inhabilitar o volver a habilitar el receptor.

  • Para inhabilitar un receptor, llama a projects.sink.update y establece la propiedad disabled en true.

    Para volver a habilitar el receptor, llama a projects.sink.update y establece la propiedad disabled en false.

  • Para borrar un receptor, llama a projects.sinks.delete.

    Ten en cuenta que si borras un receptor, las entradas de registro ya no se enrutarán desde él.

    Si deseas obtener más información sobre cualquiera de estos métodos para administrar receptores mediante la API de Logging, consulta la referencia de LogSink.

gcloud

  • Si deseas ver tu lista de receptores para tu proyecto de Cloud, usa el siguiente comando:gcloud logging sinks list que corresponde al método de la API de Logging.projects.sinks.list :

    gcloud logging sinks list
    

    Para ver tu lista de receptores agregados, usa la marca adecuada a fin de especificar el recurso que contiene el receptor. Por ejemplo, si creaste el receptor a nivel de la organización, usa la marca --organization=ORGANIZATION_ID en la lista de los receptores de la organización.

  • Para describir un receptor, usa el comando gcloud logging sinks describe, que corresponde al método de la API de Logging projects.sinks.get:

    gcloud logging sinks describe SINK_NAME
    
  • Para actualizar un receptor, usa el comando gcloud logging sinks update, que corresponde al método de la API projects.sink.update.

    Puedes actualizar un receptor para cambiar el destino, los filtros y la descripción, o inhabilitar o volver a habilitar el receptor:

    gcloud logging sinks update SINK_NAME  NEW_DESTINATION  --log-filter=NEW_FILTER

    Omite NEW_DESTINATION o --log-filter si esas partes no cambian.

    Por ejemplo, para actualizar el destino de tu receptor llamado my-project-sink a un destino de bucket de Cloud Storage nuevo llamado my-second-gcs-bucket, tu comando se verá de la siguiente manera:

    gcloud logging sinks update  my-project-sink  storage.googleapis.com/my-second-gcs-bucket
    
  • Para inhabilitar un receptor, usa el comando gcloud logging sinks update, que corresponde al método de la API projects.sink.update: Incluye la marca --disabled:

    gcloud logging sinks update _Default  --disabled
    

    Para volver a habilitar el receptor, usa el comando gcloud logging sinks update, quita la marca --disabled y, luego, incluye la marca --no-disabled:

    gcloud logging sinks update _Default  --no-disabled
    
  • Para borrar un receptor, usa el comando gcloud logging sinks delete, que corresponde al método de la API projects.sinks.delete:

    gcloud logging sinks delete SINK_NAME
    

    Ten en cuenta que si borras un receptor, las entradas de registro ya no se enrutarán desde él.

    Para obtener más información sobre cómo administrar receptores mediante la herramienta de línea de comandos de gcloud, consulta la referencia gcloud logging sinks.

Detener la transferencia de registros

Para cada proyecto de Cloud, Logging crea automáticamente dos buckets de registros: _Required y _Default. Logging crea automáticamente dos receptores de registros, _Required y _Default, que enrutan los registros a los buckets con nombre correspondientes.

No puedes inhabilitar el receptor _Required. No se aplican los precios por transferencia ni los precios de almacenamiento a los datos de registro almacenados en el bucket de registro _Required. Puedes inhabilitar el receptor _Default para evitar que los registros se transfieran al bucket _Default. También puedes inhabilitar cualquier receptor definido por el usuario.

Cuando detienes la transferencia de registros para el bucket _Default, inhabilita todos los receptores de tu proyecto de Cloud que envían registros al _Default, sin una nueva transferencia de Cloud Logging. El proyecto de Cloud genera cargos por el bucket _Default. El bucket _Default está vacío cuando todos los registros transferidos con anterioridad en el bucket _Default cumplen con el período de retención del bucket.

Para inhabilitar los receptores de proyectos de Cloud que enrutan registros al bucket _Default, completa los siguientes pasos:

Console

  1. Ve al enrutador de registros:

    Ir a Enrutador de registros

  2. Para encontrar todos los receptores que enrutan los registros al bucket _Default, filtra los receptores por destino y, luego, ingresa _Default.

    Busca todos los receptores que enruten los registros al bucket predeterminado.

  3. Para cada receptor, selecciona Menú y, luego, Inhabilitar receptor.

Los receptores ahora están inhabilitados y los del proyecto de Cloud ya no reciben registros de ruta en el bucket _Default.

Para volver a habilitar un receptor inhabilitado y reiniciar los registros de enrutamiento al destino del receptor, haz lo siguiente:

  1. Ve a la página Enrutador de registros:

    Ir a Enrutador de registros

  2. A fin de encontrar todos los receptores inhabilitados antes configurados para enrutar los registros al bucket _Default, filtra los receptores por destino y, luego, ingresa _Default.

  3. Para cada receptor, selecciona Menú y, luego, selecciona Habilitar receptor.

API

  1. Para ver los receptores de tu proyecto de Cloud, llama al método de la API de Logging projects.sinks.list.

    Identifica los receptores que enrutan al bucket _Default.

  2. Por ejemplo, para inhabilitar el receptor _Default, llama a projects.sink.update y establece la propiedad disabled en true.

El receptor _Default ahora está inhabilitado. ya no enruta los registros al bucket _Default.

Para inhabilitar los otros receptores de tu proyecto de Cloud que se enrutan al bucket _Default, repite los pasos anteriores.

Para volver a habilitar un receptor, llama a projects.sink.update y establece la propiedad disabled en false.

gcloud

  1. Si deseas ver tu lista de receptores para tu proyecto de Cloud, usa lo siguiente:gcloud logging sinks list que corresponde al método de la API de Logging.projects.sinks.list :

    gcloud logging sinks list
    
  2. Identifica los receptores que enrutan al bucket _Default. Para describir un receptor, incluido el nombre de destino, usa el comando gcloud logging sinks describe, que corresponde al método de la API de Loggingprojects.sinks.get:

    gcloud logging sinks describe SINK_NAME
    
  3. Por ejemplo, para inhabilitar el receptor _Default, usa el comando gcloud logging sinks update y agrega la marca --disabled:

    gcloud logging sinks update _Default  --disabled
    

El receptor _Default ahora está inhabilitado. ya no enruta los registros al bucket _Default.

Para inhabilitar los otros receptores de tu proyecto de Cloud que se enrutan al bucket _Default, repite los pasos anteriores.

Para volver a habilitar un receptor, usa el comando gcloud logging sinks update, quita la marca --disabled y, luego, incluye la marca --no-disabled:

gcloud logging sinks update _Default  --no-disabled

Configura los permisos de destino

En esta sección, se describe cómo otorgar a Logging los permisos de Identity and Access Management para escribir los registros en el destino de tu receptor. Para obtener la lista completa de las funciones y los permisos de Logging, consulta Control de acceso.

Cuando creas un receptor, Logging crea una cuenta de servicio nueva para él, denominada identidad de escritor única. Tu destino del receptor debe permitir que esta cuenta de servicio escriba entradas de registro. No puedes administrar esta cuenta de servicio directamente, ya que Cloud Logging es el propietario y el que la administra. La cuenta de servicio se borra si se borra el receptor.

Si usas un receptor para enrutar registros entre los buckets de Logging en el mismo proyecto de Cloud, no se crea una cuenta de servicio nueva. El receptor funciona sin la identidad de escritor única. Si usas un receptor para enrutar los registros entre buckets de Logging en diferentes proyectos de Cloud, se crea una cuenta de servicio nueva.

A continuación, se brindan las instrucciones sobre cómo configurar los permisos a nivel de proyecto de Cloud para que tu receptor se enrute a su destino. En lugar de un proyecto de Cloud, puedes especificar una cuenta de facturación, una carpeta o una organización:

Console

  1. Obtén la identidad de escritor del receptor nuevo, que es una dirección de correo electrónico. Ve a la página Enrutador de registros y selecciona Menú > Ver detalles del receptor. La identidad de escritor aparece en el panel Detalles del receptor.

  2. Si tienes acceso de Propietario al destino, agrega la cuenta de servicio de la siguiente manera:

    • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor a tu bucket y asígnale la función de creador de objetos de almacenamiento.
    • Para los destinos de BigQuery, agrega la identidad de escritor del receptor a tu conjunto de datos y asígnale la función de editor de datos de BigQuery.
    • En el caso de Pub/Sub, agrega la identidad de escritor del receptor a tu tema y asígnale la función de publicador de Pub/Sub.
    • Para los destinos del bucket de Logging en diferentes proyectos de Cloud, agrega la identidad de escritor del receptor al bucket de registro de destino y otórgale el permiso roles/logging.bucketWriter.

    Si no tienes acceso de Propietario al destino del receptor, envía el nombre de la cuenta de servicio de la identidad de escritor a alguien que tenga esa capacidad. Esa persona debe seguir las instrucciones del paso anterior para agregar la identidad de escritor al destino de exportación.

API

  1. Llama al método de la API projects.sinks.create o projects.sinks.update para crear o modificar el receptor.

    Establece uniqueWriterIdentity en true. Cuando actualizas un receptor, puedes cambiar de usar un escritor compartido a un escritor único. Si el receptor existente ya usa un escritor único, el receptor actualizado usa el mismo escritor.

    Los métodos muestran el receptor nuevo, que contiene la identidad de escritor nueva.

  2. Si tienes acceso de Propietario al destino, agrega la cuenta de servicio de la siguiente manera:

    • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor a tu bucket y asígnale la función de creador de objetos de almacenamiento.
    • Para los destinos de BigQuery, agrega la identidad de escritor del receptor a tu conjunto de datos y asígnale la función de editor de datos de BigQuery.
    • En el caso de Pub/Sub, agrega la identidad de escritor del receptor a tu tema y asígnale la función de publicador de Pub/Sub.
    • Para los destinos del bucket de Logging en diferentes proyectos de Cloud, agrega la identidad de escritor del receptor al bucket de registro de destino y otórgale el permiso roles/logging.bucketWriter.

    Si no tienes acceso de Propietario al destino del receptor, envía el nombre de la cuenta de servicio de la identidad de escritor a alguien que tenga esa capacidad. Esa persona debe seguir las instrucciones del paso anterior para agregar la identidad de escritor al destino de exportación.

gcloud

  1. Obtén la cuenta de servicio del campo writerIdentity en tu receptor:

    gcloud logging sinks describe SINK_NAME
    

    La cuenta de servicio se verá de la siguiente manera:

    serviceAccount:p123456789012-12345@gcp-sa-logging.iam.gserviceaccount.com
    
  2. Si tienes acceso de Propietario al destino, agrega la cuenta de servicio de la siguiente manera:

    • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor a tu bucket y asígnale la función de creador de objetos de almacenamiento.
    • Para los destinos de BigQuery, agrega la identidad de escritor del receptor a tu conjunto de datos y asígnale la función de editor de datos de BigQuery.
    • En el caso de Pub/Sub, agrega la identidad de escritor del receptor a tu tema y asígnale la función de publicador de Pub/Sub.
    • Para los destinos del bucket de Logging en diferentes proyectos de Cloud, agrega la identidad de escritor del receptor al bucket de registro de destino y otórgale el permiso roles/logging.bucketWriter.

    Si no tienes acceso de Propietario al destino del receptor, envía el nombre de la cuenta de servicio de la identidad de escritor a alguien que tenga esa capacidad. Esa persona debe seguir las instrucciones del paso anterior para agregar la identidad de escritor al destino de exportación.

    Por ejemplo, si enrutas registros entre buckets de Logging en diferentes proyectos de Cloud, debes agregar roles/logging.bucketWriter a la cuenta de servicio de la siguiente manera:

    1. Obtén la política de Identity and Access Management para el proyecto de destino de Cloud y escríbela en un archivo local en formato JSON:

      gcloud projects get-iam-policy DESTINATION_PROJECT_ID --format json > output.json
      
    2. Agrega una condición de IAM que permita que la cuenta de servicio solo escriba en el bucket de Cloud Logging que creaste. Por ejemplo:

      {
      "bindings": [
       {
         "members": [
           "user:username@gmail.com"
         ],
         "role": "roles/owner"
       },
       {
         "members": [
           "[SERVICE_ACCOUNT]"
         ],
         "role": "roles/logging.bucketWriter",
         "condition": {
             "title": "Bucket writer condition example",
             "description": "Grants logging.bucketWriter role to service account [SERVICE_ACCOUNT] used by log sink [SINK_NAME]",
             "expression":
               "resource.name.endsWith(\'locations/global/buckets/BUCKET_ID\')"
         }
       }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
      }
    3. Actualiza la política de IAM:

      gcloud projects set-iam-policy DESTINATION_PROJECT_ID output.json
      

Muestras de código

Si deseas usar código de biblioteca cliente para configurar receptores en los lenguajes seleccionados, consulta Bibliotecas cliente de Logging: Receptores de registros.

Filtra ejemplos

A continuación, se presentan algunos ejemplos de filtros que son particularmente útiles cuando se crean receptores.

Para ver ejemplos adicionales que pueden ser útiles mientras compilas filtros de inclusión y de exclusión, consulta la sección Consultas de muestra.

Restablece el filtro de receptor _Default

Si editaste el filtro para el receptor _Default, es posible que quieras restablecer el filtro predeterminado. Para hacerlo, ingresa el siguiente filtro de inclusión:

  NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT \
  LOG_ID("externalaudit.googleapis.com/activity") AND NOT \
  LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT \
  LOG_ID("externalaudit.googleapis.com/system_event") AND NOT \
  LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT \
  LOG_ID("externalaudit.googleapis.com/access_transparency")

Excluye registros de contenedores y Pods de Google Kubernetes Engine

A fin de excluir el contenedor de Google Kubernetes Engine y los registros del pod para el sistema namespaces de GKE, usa el siguiente filtro :

resource.type = ("k8s_container" OR "k8s_pod")
resource.labels.namespace_name = (
"cnrm-system" OR
"config-management-system" OR
"gatekeeper-system" OR
"gke-connect" OR
"gke-system" OR
"istio-system" OR
"knative-serving" OR
"monitoring-system" OR
"kube-system")

A fin de excluir los registros de nodos de Google Kubernetes Engine para el sistema GKE logNames, usa el siguiente filtro:

resource.type = "k8s_node"
logName:( "logs/container-runtime" OR
"logs/docker" OR
"logs/kube-container-runtime-monitor" OR
"logs/kube-logrotate" OR
"logs/kube-node-configuration" OR
"logs/kube-node-installation" OR
"logs/kubelet" OR
"logs/kubelet-monitor" OR
"logs/node-journal" OR
"logs/node-problem-detector")

Para ver el volumen de Google Kubernetes Enginenodo ,Pod ycontenedor registra los datos transferidos a Cloud Logging y usa los siguientes elementos:Explorador de métricas en Cloud Monitoring.

Excluir registros de Dataflow que no son necesarios para la compatibilidad

Para excluir los registros de Dataflow que no son necesarios para la compatibilidad, usa el siguiente filtro:

resource.type="dataflow_step"
labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"

Para ver el volumen de datos de registros de Dataflow transferidos a Cloud Logging, usa el Explorador de métricas en Cloud Monitoring.

Compatibilidad

Si bien Cloud Logging te ofrece la capacidad de excluir los registros de la transferencia, es posible que desees mantener los registros que ayudan con la compatibilidad. El uso de estos registros puede ayudarte a identificar y solucionar problemas rápidamente con tus aplicaciones.

Por ejemplo, los registros del sistema de GKE son útiles para solucionar problemas de aplicaciones y clústeres de GKE, ya que se generan para eventos que ocurren en el clúster. Estos registros pueden ayudarte a determinar si el código de la aplicación o el clúster de GKE subyacente causa el error de la aplicación. Los registros del sistema de GKE también incluyen registros de auditoría de Kubernetes que genera el componente del servidor de la API de Kubernetes, que incluye los cambios realizados mediante el comando kubectl y los eventos de Kubernetes.

Para Dataflow, te recomendamos, como mínimo, transferir los registros del sistema (labels."dataflow.googleapis.com/log_type"="system") y los registros de compatibilidad (labels."dataflow.googleapis.com/log_type"="supportability"). Estos registros son esenciales para que los desarrolladores observan y solucionan problemas en sus canalizaciones de Dataflow, y es posible que los usuarios no puedan usar la página Detalles del trabajo de Dataflow para ver los registros de trabajos.

¿Qué sigue?