Enruta registros a destinos compatibles.

En este documento, se explica cómo crear y administrar sumideros, que enrutan las entradas de registro que se originan en un proyecto de Google Cloud a destinos compatibles.

Cuando el destino de un receptor no es un bucket de registros en el proyecto de Google Cloud en el que se origina una entrada de registro, se requiere una cuenta de servicio. Cloud Logging crea y administra automáticamente esta cuenta de servicio. Sin embargo, es posible que debas modificar los permisos otorgados a la cuenta de servicio. Puedes crear y administrar una cuenta de servicio que usen los sumideros en varios proyectos. Para obtener más información, consulta Configura receptores de registros con cuentas de servicio administradas por el usuario.

Descripción general

Los Sinks determinan cómo Cloud Logging enruta las entradas de registro. Con los receptores, puedes enrutar algunas o todas tus entradas de registro a los siguientes destinos:

  • Bucket de Cloud Logging: Proporciona almacenamiento en Cloud Logging. Un bucket de registro puede almacenar entradas de registro que reciben varios proyectos de Google Cloud. El bucket de registros puede estar en el mismo proyecto en el que se originan las entradas de registro o en un proyecto diferente. Para obtener información sobre cómo ver las entradas de registros almacenadas en buckets de registros, consulta Descripción general de consultas y visualización de registros y Visualiza los registros enrutados a buckets de Cloud Logging.

    Puedes combinar tus datos de registro de Cloud con otros datos. Para ello, actualiza un bucket de registros para usar el Análisis de registros y, luego, crea un conjunto de datos vinculado, que es un conjunto de datos de solo lectura que se puede consultar en las páginas de BigQuery Studio y Looker Studio.

  • Conjunto de datos de BigQuery: Proporciona almacenamiento de entradas de registro en un conjunto de datos de BigQuery que se puede escribir. El conjunto de datos de BigQuery puede estar en el mismo proyecto en el que se originan las entradas de registro o en uno diferente. Puedes usar las funciones de análisis de macrodatos en las entradas de registro almacenadas. Para obtener información sobre cómo ver las entradas de registro que se enrutan a BigQuery, consulta Cómo ver los registros que se enrutan a BigQuery.

  • Bucket de Cloud Storage: Proporciona almacenamiento de entradas de registro en Cloud Storage. El bucket de Cloud Storage puede estar en el mismo proyecto en el que se originan las entradas de registro o en un proyecto diferente. Las entradas de registro se almacenan como archivos JSON. Para obtener información sobre cómo ver las entradas de registro enrutadas a Cloud Storage, consulta Cómo ver los registros enrutados a Cloud Storage.
  • Tema de Pub/Sub: Proporciona compatibilidad con integraciones de terceros. Las entradas de registro se formatean en JSON y, luego, se enrutan a un tema de Pub/Sub. El tema puede estar en el mismo proyecto en el que se originan las entradas de registro o en un proyecto diferente. Para obtener información sobre cómo ver las entradas de registro enrutadas a Pub/Sub, consulta Visualiza los registros enrutados a Pub/Sub.

  • Proyecto de Google Cloud: Envía las entradas de registro a otro proyecto de Google Cloud. En esta configuración, los receptores del proyecto de destino procesan las entradas de registro.

Los receptores pertenecen a un recurso de Google Cloud determinado: un proyecto de Google Cloud, una cuenta de facturación, una carpeta o una organización. Cuando el recurso recibe una entrada de registro, cada receptor del recurso la procesa. Cuando una entrada de registro coincide con los filtros del receptor, se enruta al destino del receptor.

Por lo general, los receptores solo enrutan las entradas de registro que se originan en un recurso. Sin embargo, para las carpetas y las organizaciones, puedes crear receptores agregados, que enrutan las entradas de registro de la carpeta o la organización, y los recursos que contiene. En este documento, no se analizan los sumideros agregados. Para obtener más información, consulta Recopila y enruta registros a nivel de la organización a destinos compatibles.

Para crear y administrar sumideros, puedes usar la consola de Google Cloud, la API de Cloud Logging y Google Cloud CLI. Te recomendamos que uses la consola de Google Cloud para lo siguiente:

  • En la página Enrutador de registros, se enumeran todos los receptores y se proporcionan opciones para administrarlos.
  • Cuando creas un receptor, puedes obtener una vista previa de las entradas de registro que coinciden con los filtros del receptor.
  • Puedes configurar los destinos de sink cuando creas uno.
  • Se completaron algunos pasos de autorización por ti.

Antes de comenzar

En las instrucciones de este documento, se describe cómo crear y administrar receptores a nivel del proyecto de Google Cloud. Puedes usar el mismo procedimiento para crear un receptor que enrute las entradas de registro que se originan en una organización, una carpeta o una cuenta de facturación.

Para comenzar, haz lo siguiente:

  1. Enable the Cloud Logging API.

    Enable the API

  2. Asegúrate de que tu proyecto de Google Cloud contenga entradas de registro que puedas ver en el Explorador de registros.

  3. Para obtener los permisos que necesitas para crear, modificar o borrar un destino, pídele a tu administrador que te otorgue el rol de IAM Escritor de configuración de registros (roles/logging.configWriter) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

    Para obtener información sobre cómo otorgar roles de IAM, consulta la Guía de control de acceso de Logging.

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

    Para enrutar entradas de registro a un destino, este debe existir antes de que creas el receptor. Puedes crear el destino en cualquier proyecto de Google Cloud en cualquier organización.

  5. Antes de crear un receptor, revisa las limitaciones que se aplican al destino del receptor. Para obtener más información, consulta la sección Limitaciones de destino en este documento.

  6. Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Crea un receptor

A continuación, se incluyen las instrucciones para crear un receptor en un proyecto de Google Cloud. Puedes usar el mismo procedimiento para enrutar las entradas de registro que se originan en una organización, una carpeta o una cuenta de facturación:

  • Puedes crear hasta 200 sumideros por proyecto de Google Cloud.
  • No coloques información sensible en los filtros de sumideros. Los filtros de sink se tratan como datos de servicio.
  • Es posible que los nuevos receptores de registros en buckets de Cloud Storage tarden varias horas en comenzar a enrutar las entradas de registro. Los receptores de Cloud Storage se procesan por hora, mientras que otros tipos de destinos se procesan en tiempo real.
  • Los sumideros no pueden enrutar entradas de registro a conjuntos de datos de BigQuery vinculados, que son de solo lectura. Si deseas enrutar entradas de registro a BigQuery, el conjunto de datos de destino debe estar habilitado para la escritura.

  • Los destinos no definen el esquema de los conjuntos de datos de BigQuery. En cambio, la primera entrada de registro que recibe BigQuery determina el esquema para la tabla de destino. Para obtener más información, consulta el Esquema de BigQuery para los registros enrutados.

  • Para obtener información sobre cómo ver las entradas de registro en el destino de un receptor, consulta Cómo ver los registros enrutados a los buckets de Cloud Logging.

  • Para ver la cantidad y el volumen de entradas de registro que se enrutan, consulta las métricas logging.googleapis.com/exports/.

  • Cuando una consulta contiene varias instrucciones, puedes especificar cómo se unen o confiar en que Cloud Logging agregue implícitamente la restricción conjuntiva, AND, entre las instrucciones. Por ejemplo, supongamos que un diálogo de consulta o filtro contiene dos instrucciones, resource.type = "gce_instance" y severity >= "ERROR". La consulta real es resource.type = "gce_instance" AND severity >= "ERROR". Cloud Logging admite restricciones disyuntivas, OR, y restricciones conyugadas, AND. Cuando uses sentencias OR, te recomendamos que agrupes las cláusulas con paréntesis. Para obtener más información, consulta el Lenguaje de consulta de Logging.

Para crear un receptor, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Enrutador de registros:

    Ir a Enrutador de registros

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

  2. Selecciona el proyecto de Google Cloud en el que se originan las entradas de registro que deseas enrutar.

    Por ejemplo, si deseas enrutar tus entradas de registro de acceso a los datos del proyecto llamado Project-A a un bucket de registros en el proyecto llamado Project-B, selecciona Project-A.

  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 crearlo, no podrás cambiarle el nombre, pero sí borrarlo y crear uno nuevo.

    • Descripción del sumidero (opcional): Describe el propósito o el caso de uso del sumidero.

  5. En el panel Destino del receptor, selecciona el servicio de receptor y el destino con el menú Selecciona el servicio de receptor. Realiza una de las siguientes acciones:

    • Para enrutar entradas de registro a un servicio que se encuentra en el mismo proyecto de Google Cloud, selecciona una de las siguientes opciones:

      • Conjunto de datos de BigQuery: Selecciona o crea el conjunto de datos con permisos de escritura para recibir las entradas de registro enrutadas. 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 las entradas de registro enrutadas.
      • Tema de Pub/Sub: Selecciona o crea el tema específico para recibir las entradas de registro enrutadas.
      • Splunk: Selecciona el tema de Pub/Sub para tu servicio de Splunk.
    • Para enrutar las entradas de registro a un proyecto de Google Cloud diferente, selecciona Proyecto de Google Cloud y, luego, ingresa el nombre cualificado del destino. Para obtener información sobre la sintaxis, consulta los formatos de ruta de destino.

    • Para enrutar entradas de registro a un servicio que se encuentra en un proyecto de Google Cloud diferente, haz lo siguiente:

      1. Selecciona Otro recurso.
      2. Ingresa el nombre completamente calificado del destino. Para obtener información sobre la sintaxis, consulta los formatos de ruta de acceso de destino.
  6. Especifica las entradas de registro que deseas incluir:

    1. Ve al panel Elige registros para incluirlos en el receptor.

    2. En el campo Build inclusion filter, ingresa una expresión de filtro que coincida con las entradas de registro que deseas incluir. Para obtener más información sobre la sintaxis para escribir filtros, consulta Lenguaje de consulta de Logging.

      Si no configuras un filtro, todas las entradas de registro del recurso seleccionado se enrutan al destino.

      Por ejemplo, para enrutar todas las entradas de registro de acceso a los datos a un bucket de registro, puedes usar el siguiente filtro:

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

      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. El Explorador de registros se abrirá en una pestaña nueva con el filtro prepropagado.

  7. (Opcional) Configura un filtro de exclusión para eliminar algunas de las entradas de registro incluidas:

    1. Ve al panel Elige registros para filtrar fuera del receptor.

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

    3. En el campo Crea 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 que deseas excluir.

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

  8. Selecciona Crear receptor.

  9. Otorga a la cuenta de servicio del receptor el permiso para escribir entradas de registro en el destino del receptor. Para obtener más información, consulta Configura los permisos de destino.

gcloud

Para crear un receptor, haz lo siguiente:

  1. Ejecuta el siguiente comando gcloud logging sinks create:

    gcloud logging sinks create SINK_NAME SINK_DESTINATION
    

    Antes de ejecutar el comando, realiza los siguientes reemplazos:

    • SINK_NAME: Es el nombre del receptor de registros. No puedes cambiar el nombre de un sumidero después de crearlo.
    • SINK_DESTINATION: Es el servicio o proyecto al que deseas que se enruten tus entradas de registro. Establece SINK_DESTINATION con la ruta de acceso adecuada, como se describe en Formatos de ruta de acceso de destino.

      Por ejemplo, si el destino del receptor es un tema de Pub/Sub, SINK_DESTINATION se verá de la siguiente manera:

      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      

    También puedes proporcionar las siguientes opciones:

    • --log-filter : Usa esta opción para establecer un filtro que coincida con las entradas de registro que deseas incluir en tu receptor. Si no proporcionas un valor para el filtro de inclusión, este coincidirá con todas las entradas de registro.
    • --exclusion: Usa esta opción para establecer un filtro de exclusión para las entradas de registro que deseas excluir del enrutamiento de tu receptor. También puedes usar la función sample para seleccionar una parte de las entradas de registro que deseas excluir. Esta opción se puede repetir. Puedes crear hasta 50 filtros de exclusión por receptor.
    • --description: Usa esta opción para describir el propósito o el caso de uso del sumidero.

    Por ejemplo, para crear un receptor a un bucket de Logging, tu 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 sumideros con Google Cloud CLI, consulta la referencia de gcloud logging sinks.

  2. Si la respuesta del comando contiene una clave JSON etiquetada como "writerIdentity", otorga a la cuenta de servicio del receptor el permiso para escribir en el destino del receptor. Para obtener más información, consulta Configura los permisos de destino.

    No necesitas establecer permisos de destino cuando la respuesta no contiene una clave JSON etiquetada como "writerIdentity".

REST

  1. Para crear un receptor de registros en tu proyecto de Google 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: Es un identificador para el receptor. Ten en cuenta que, después de crear el sink, no puedes cambiarle el nombre, pero puedes borrarlo y crear uno nuevo.
    • destination: Es el servicio y el destino al que deseas que se enruten tus entradas de registro. Para enrutar entradas de registro a un proyecto diferente o a un destino que se encuentra en otro proyecto, configura el campo destination con la ruta de acceso adecuada, como se describe en Formatos de ruta de acceso de destino.

      Por ejemplo, si el destino del receptor es un tema de Pub/Sub, destination se verá de la siguiente manera:

      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      
  2. En el objeto LogSink, proporciona la información opcional adecuada:

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

  4. Si la respuesta de la API contiene una clave JSON etiquetada como "writerIdentity", otorga a la cuenta de servicio del destino el permiso para escribir en el destino. Para obtener más información, consulta Configura los permisos de destino.

    No necesitas establecer permisos de destino cuando la respuesta de la API no contiene una clave JSON etiquetada como "writerIdentity".

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

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

Formatos de ruta de destino

Si enrutas entradas de registro a un servicio que se encuentra en otro proyecto, debes proporcionarle al receptor el nombre completamente calificado del servicio. De manera similar, si enrutas entradas de registro a un proyecto de Google Cloud diferente, debes proporcionarle al sink el nombre completamente calificado del proyecto de destino:

  • Bucket de registros de Cloud Logging:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • Otro proyecto de Google Cloud:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID
    
  • Conjunto de datos de BigQuery:

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    
  • Cloud Storage:

    storage.googleapis.com/BUCKET_NAME
    
  • Tema de Pub/Sub:

    pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
    

Administra receptores

Después de crear los sumideros, puedes realizar las siguientes acciones en ellos. Los cambios que realices en un sumidero pueden tardar unos minutos en aplicarse:

  • Ver detalles
  • Actualizar
  • Inhabilitar

    • No puedes inhabilitar el receptor _Required.
    • Puedes inhabilitar el receptor _Default para que deje de enrutar entradas de registro al bucket de registros _Default.
    • Si deseas inhabilitar el receptor _Default para cualquier proyecto o carpeta nuevos de Google Cloud que se creen en tu organización, considera configurar la configuración de recursos predeterminada.
  • Borrar

    • No puedes borrar los receptores _Default ni _Required.
    • Cuando borras un objeto sink, este ya no enruta las entradas de registro.
    • Si el receptor tiene una cuenta de servicio dedicada, borrarlo también borrará la cuenta de servicio. Los sumideros creados antes del 22 de mayo de 2023 tienen cuentas de servicio dedicadas. Los sumideros creados el 22 de mayo de 2023 o después tienen una cuenta de servicio compartida. Si borras el receptor, no se borrará la cuenta de servicio compartida.
  • Soluciona fallas

  • Consulta las tasas de error y el volumen de registro

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

Console

  1. En la consola de Google Cloud, ve a la página Enrutador de registros:

    Ir a Enrutador de registros

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

  2. En la barra de herramientas, selecciona el recurso que contiene tu sink. El recurso puede ser un proyecto, una carpeta, una organización o una cuenta de facturación.

En la página Enrutador de registros, se muestran los receptores en el recurso seleccionado. 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: Es el servicio de destino del receptor; por ejemplo, Cloud Logging bucket.
  • Nombre: Es el identificador del receptor, tal como se proporcionó cuando se creó, por ejemplo, _Default.
  • Descripción: Es la descripción del receptor, tal como se proporcionó cuando se creó.
  • Destination: Es el nombre completo del destino al que se envían las entradas de registro enrutadas.
  • Created: La fecha y hora de creación del sumidero.
  • Última actualización: Es la fecha y hora en que se editó el sumidero por última vez.

Para cada fila de la tabla, el menú Más acciones de proporciona las siguientes opciones:

  • Ver 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 Editar, se abrirá el panel 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 entradas de registro al destino del receptor. Para obtener más información sobre cómo inhabilitar los sinks, consulta Cómo dejar de almacenar registros en buckets de registros.
  • Habilitar el receptor: te permite habilitar un receptor inhabilitado y reiniciar las entradas de registro de enrutamiento al destino del receptor.
  • Borrar receptor: Te permite borrar el receptor y detener el enrutamiento de las entradas de registro al destino del receptor.
  • Solucionar problemas del receptor: Abre el Explorador de registros, en el que puedes solucionar problemas del receptor.
  • Visualiza las tasas de error y el volumen de registro del receptor: Abre el Explorador de métricas, en el que puedes ver y analizar los datos del receptor.

Para ordenar la tabla por una columna, selecciona el nombre de la columna.

gcloud

  • Para ver la lista de receptores de tu proyecto de Google Cloud, usa el 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 sumideros agregados, usa la opción adecuada para especificar el recurso que contiene el sumidero. Por ejemplo, si creaste el receptor a nivel de la organización, usa la opción --organization=ORGANIZATION_ID para enumerar 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 bien inhabilitarlo o volver a habilitarlo:

    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 sink llamado my-project-sink a un nuevo destino de bucket de Cloud Storage llamado my-second-gcs-bucket, el 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, y agrega la opción --disabled:

    gcloud logging sinks update SINK_NAME --disabled
    

    Para volver a habilitar el sumidero, usa el comando gcloud logging sinks update, quita la opción --disabled y agrega la opción --no-disabled:

    gcloud logging sinks update SINK_NAME --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
    

    Para obtener más información sobre cómo administrar los sumideros con Google Cloud CLI, consulta la referencia de gcloud logging sinks.

REST

  • Para ver los receptores de tu proyecto de Google 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 sumidero. También puedes inhabilitar o volver a habilitar el receptor.

  • Para inhabilitar un sumidero, configura el campo disabled en el objeto LogSink como true y, luego, llama a projects.sink.update.

    Para volver a habilitar el sink, configura el campo disabled en el objeto LogSink como false y, luego, llama a projects.sink.update.

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

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

Detén el almacenamiento de entradas de registro en buckets de registro

Puedes inhabilitar el sink _Default y cualquier sink definido por el usuario. Cuando inhabilitas un receptor, este deja de enrutar las entradas de registro a su destino. Por ejemplo, si inhabilitas el receptor _Default, no se enrutarán entradas de registro al bucket _Default. El bucket _Default se vacía cuando todas las entradas de registro almacenadas anteriormente cumplieron el período de retención del bucket.

En las siguientes instrucciones, se muestra cómo inhabilitar los receptores de tu proyecto de Google Cloud que enrutan las entradas de registro a los buckets de registro _Default:

Console

  1. En la consola de Google Cloud, ve a la página Enrutador de registros:

    Ir a Enrutador de registros

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

  2. Para encontrar todos los receptores que enrutan las entradas de registro al bucket de registros _Default, filtra los receptores por destino y, luego, ingresa _Default.
  3. Para cada receptor, selecciona Menú y, luego, Inhabilitar receptor.

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

Para volver a habilitar un receptor inhabilitado y reiniciar las entradas de registro de enrutamiento al destino del receptor, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Enrutador de registros:

    Ir a Enrutador de registros

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

  2. Para encontrar todos los receptores que enrutan las entradas de registro al bucket de registros _Default, filtra los receptores por destino y, luego, ingresa _Default.
  3. Para cada receptor, selecciona Menú y, luego, Habilitar receptor.

gcloud

  1. Para ver la lista de receptores de tu proyecto de Google Cloud, usa el comando 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 se enrutan al bucket de registros _Default. Para describir un receptor, incluido ver el nombre de destino, 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
    
  3. Ejecuta el comando gcloud logging sinks update y, además, incluye la opción --disabled. Por ejemplo, para inhabilitar el receptor _Default, usa el siguiente comando:

    gcloud logging sinks update _Default  --disabled
    

    El receptor _Default ahora está inhabilitado y ya no enruta las entradas de registro al bucket de registros _Default.

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

Para volver a habilitar un sumidero, usa el comando gcloud logging sinks update, quita la opción --disabled y agrega la opción --no-disabled:

gcloud logging sinks update _Default  --no-disabled

REST

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

    Identifica los sumideros que se enrutan al bucket _Default.

  2. Por ejemplo, para inhabilitar el sumidero _Default, configura el campo disabled en el objeto LogSink como true y, luego, llama a projects.sink.update.

    El receptor _Default ahora está inhabilitado y ya no enruta las entradas de registro al bucket _Default.

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

Para volver a habilitar un sumidero, configura el campo disabled en el objeto LogSink como false y, luego, llama a projects.sink.update.

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 entradas de registro en el destino de tu receptor. Para obtener la lista completa de las funciones y los permisos de Logging, consulta Control de acceso.

Cloud Logging crea una cuenta de servicio compartida para un recurso cuando se crea un destino, a menos que la cuenta de servicio requerida ya exista. Es posible que la cuenta de servicio exista porque se usa la misma cuenta de servicio para todos los sumideros en el recurso subyacente. Los recursos pueden ser un proyecto de Google Cloud, una organización, una carpeta o una cuenta de facturación.

La identidad del escritor de un sumidero es el identificador de la cuenta de servicio asociada con ese sumidero. Todos los receptores tienen una identidad de escritor, excepto los que escriben en un bucket de registros en el mismo proyecto de Google Cloud en el que se origina la entrada de registro. Para la última configuración, no se requiere una cuenta de servicio y, por lo tanto, el campo writerIdentity del receptor aparece como None en la consola. La API y los comandos de Google Cloud CLI no informan una identidad de escritor.

Las siguientes instrucciones se aplican a proyectos, carpetas, organizaciones y cuentas de facturación:

Console

  1. Asegúrate de tener acceso de propietario en el proyecto de Google Cloud que contiene el destino. Si no tienes acceso de Propietario al destino del sumidero, pídele al propietario del proyecto que agregue la identidad del escritor como principal.

  2. Para obtener la identidad de escritor del receptor nuevo, que es una dirección de correo electrónico, haz lo siguiente:

    1. En la consola de Google Cloud, ve a la página Enrutador de registros:

      Ir a Enrutador de registros

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

    2. En la barra de herramientas, selecciona el proyecto que contiene el sumidero.
    3. Selecciona Menú y, luego, Ver detalles del receptor. La identidad de escritor aparece en el panel Detalles del receptor.
  3. Si el valor del campo writerIdentity contiene una dirección de correo electrónico, continúa con el siguiente paso. Cuando el valor es None, no es necesario configurar los permisos de destino para el receptor.

  4. Copia la identidad de escritor del receptor en el portapapeles.

  5. Si el destino es un servicio en un proyecto diferente o si es otro proyecto, selecciona el proyecto de destino en la barra de herramientas.

  6. Agrega la cuenta de servicio como principal de IAM en el proyecto de destino:

    1. En la consola de Google Cloud, ve a la página IAM:

      Ir a IAM

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

    2. Selecciona el proyecto de destino.

    3. Haz clic en Grant access.

    4. Otorga a la cuenta de servicio el rol de IAM necesario:

      • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como principal con IAM y, luego, asígnale el rol de creador de objetos de almacenamiento (roles/storage.objectCreator).
      • Para los destinos de BigQuery, agrega la identidad de escritor del receptor como principal con IAM y, luego, asígnale el rol de editor de datos de BigQuery (roles/bigquery.dataEditor).
      • En el caso de los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como principal con IAM y, luego, asígnale el rol de publicador de Pub/Sub (roles/pubsub.publisher).
      • Para los destinos del bucket de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como principal con IAM y, luego, otórgale el rol de escritor del bucket de registros (roles/logging.bucketWriter).
      • Para los destinos de proyectos de Google Cloud, usa IAM para agregar la identidad de escritor del sink como principal y, luego, otorgarle el rol de escritor de registros (roles/logging.logWriter). Específicamente, un principal necesita el permiso logging.logEntries.route.

gcloud

  1. Asegúrate de tener acceso de propietario en el proyecto de Google Cloud que contiene el destino. Si no tienes acceso de Propietario al destino del sumidero, pídele al propietario del proyecto que agregue la identidad del escritor como principal.

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

    gcloud logging sinks describe SINK_NAME
    
  3. Busca el sink cuyos permisos deseas modificar y, si los detalles del sink contienen una línea con writerIdentity, continúa con el siguiente paso. Cuando los detalles no incluyen un campo writerIdentity, no es necesario que configures los permisos de destino para el receptor.

    La identidad del escritor de la cuenta de servicio se ve de la siguiente manera:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  4. Agrega la cuenta de servicio como principal de IAM en el proyecto de destino:

    Antes de usar el siguiente comando, realiza los siguientes reemplazos:

    • PROJECT_ID: Es el identificador del proyecto.
    • PRINCIPAL: Es un identificador para la principal a la que deseas otorgar el rol. Los identificadores principales suelen tener el siguiente formato: PRINCIPAL-TYPE:ID. Por ejemplo, user:my-user@example.com. Para obtener una lista completa de los formatos que puede tener PRINCIPAL, consulta Identificadores de principal.
    • ROLE: Es un rol de IAM.

      • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como principal con IAM y, luego, asígnale el rol de creador de objetos de almacenamiento (roles/storage.objectCreator).
      • Para los destinos de BigQuery, agrega la identidad de escritor del receptor como principal con IAM y, luego, asígnale el rol de editor de datos de BigQuery (roles/bigquery.dataEditor).
      • En el caso de los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como principal con IAM y, luego, asígnale el rol de publicador de Pub/Sub (roles/pubsub.publisher).
      • Para los destinos del bucket de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como principal con IAM y, luego, otórgale el rol de escritor del bucket de registros (roles/logging.bucketWriter).
      • Para los destinos de proyectos de Google Cloud, agrega la identidad de escritor del sink como principal con IAM y, luego, bríndale el rol de escritor de registros (roles/logging.logWriter). Específicamente, un principal necesita el permiso logging.logEntries.route.

    Ejecuta el comando gcloud projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
    

REST

Te recomendamos que uses la consola de Google Cloud o Google Cloud CLI para otorgar un rol a la cuenta de servicio.

Limitaciones de destino

En esta sección, se describen las limitaciones específicas de cada destino:

  • Si enrutas entradas de registro a un bucket de registros en un proyecto de Google Cloud diferente, Error Reporting no analiza esas entradas de registro. Para obtener más información, consulta Descripción general de Error Reporting.
  • Si enrutas entradas de registro a BigQuery, el conjunto de datos de BigQuery debe estar habilitado para la escritura. No puedes enrutar entradas de registro a conjuntos de datos vinculados, que son de solo lectura.
  • Se aplican las siguientes limitaciones cuando enrutas tus entradas de registro a diferentes proyectos de Google Cloud:

    • Hay un límite de un salto.

      Por ejemplo, si enrutas entradas de registro del proyecto A al proyecto B, no puedes enrutar las entradas de registro del proyecto B a un proyecto diferente.

    • Los registros de auditoría no se enrutan al bucket de registros _Required en el proyecto de destino.

      Por ejemplo, si enrutas las entradas de registro del proyecto A al proyecto B, el bucket de registros _Required del proyecto A contiene los registros de auditoría del proyecto A. Los registros de auditoría del proyecto A no se enrutan al proyecto B. Para enrutar estas entradas de registro, crea un receptor cuyo destino sea un bucket de registros.

    • Cuando el proyecto de destino está en una carpeta o organización diferente, los receptores agregados en esa carpeta o organización no enrutan la entrada de registro.

      Por ejemplo, supongamos que el proyecto A está en la carpeta X. Cuando una entrada de registro se origina en el proyecto A, los receptores agregados en la carpeta X y los receptores del proyecto A la procesan. Ahora, imagina que el proyecto A contiene un receptor que enruta sus entradas de registro al proyecto B, que se encuentra en la carpeta Y. Las entradas de registro del proyecto A pasan por los receptores del proyecto B. Sin embargo, no pasan por los receptores agregados de la carpeta Y.

  • Para usar el Explorador de registros y ver las entradas de registro enrutadas a un proyecto con un sink agregado, configura el campo Define mejor el alcance en el alcance de almacenamiento y, luego, selecciona una vista de registro que proporcione acceso a esas entradas de registro.

Muestras de código

Para usar el código de la biblioteca cliente y configurar los sumideros en los idiomas que elijas, consulta Bibliotecas cliente de registro: Sumideros de registro.

Filtra ejemplos

A continuación, se muestran algunos ejemplos de filtros que son particularmente útiles cuando se crean sinks. Para ver ejemplos adicionales que podrían ser útiles cuando crees tus filtros de inclusión y de exclusión, consulta Consultas de muestra.

Cómo restablecer el filtro de receptor _Default

Si editaste el filtro para el receptor _Default, es posible que quieras restablecer este receptor a su configuración original. Cuando se crea, el receptor _Default se configura con el siguiente filtro de inclusión y un filtro de exclusión vacío:

  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")

Cómo excluir los registros de contenedores y pods de Google Kubernetes Engine

Para excluir las entradas de registro del contenedor y el pod de Google Kubernetes Engine para el namespaces del sistema 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")

Para excluir las entradas de registro del nodo de Google Kubernetes Engine para el sistema logNames de GKE, 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 entradas de registro de nodos, pods y contenedores de Google Kubernetes Engine almacenadas en buckets de registro, usa el Explorador de métricas:

Excluye los registros de Dataflow que no son necesarios para la compatibilidad

Para excluir las entradas de registro de Dataflow que no son necesarias 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 registros de Dataflow almacenados en los buckets de registros, usa el Explorador de métricas.

Compatibilidad

Si bien Cloud Logging te permite excluir entradas de registro y evitar que se almacenen en un bucket de registros, te recomendamos que consideres conservar las entradas de registro que ayudan con la compatibilidad. El uso de estas entradas de registro puede ayudarte a identificar y solucionar problemas con tus aplicaciones.

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

En el caso de Dataflow, te recomendamos que, como mínimo, escribas los registros del sistema (labels."dataflow.googleapis.com/log_type"="system") y los registros de compatibilidad (labels."dataflow.googleapis.com/log_type"="supportability") en los buckets de registro. Estos registros son esenciales para que los desarrolladores observen y solucionen problemas de 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 trabajo.

¿Qué sigue?