Enruta registros a destinos compatibles.

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

Cloud Logging crea y administra de forma automática una cuenta de servicio para los receptores de registros que enrutan los registros a un destino que no es un bucket de registros en el proyecto actual de Google Cloud. Puedes crear y administrar una cuenta de servicio para que la usen los receptores. Para obtener más información, consulta Configura receptores de registros con cuentas de servicio administradas por el usuario.

Descripción general

Los receptores controlan cómo Cloud Logging enruta los registros. Con receptores, puedes enrutar algunos o todos tus registros a los siguientes destinos:

  • Bucket de Cloud Logging: Proporciona almacenamiento en Cloud Logging. Un bucket de registros puede almacenar entradas de registro que reciben varios proyectos de Google Cloud. Si deseas combinar tus datos de Cloud Logging con otros datos, actualiza un bucket de registros para usar Análisis de registros y, luego, crea un conjunto de datos de BigQuery vinculado. Si quieres obtener información para ver las entradas de registro almacenadas en buckets de registros, consulta Descripción general de consulta y visualización de registros y Visualiza los registros enrutados a buckets de Cloud Logging.
  • Conjunto de datos de BigQuery: Proporciona almacenamiento de entradas de registro en conjuntos de datos de BigQuery. Puedes usar capacidades de análisis de macrodatos en las entradas de registro almacenadas. Para combinar los datos de Cloud Logging con otras fuentes de datos, te recomendamos que actualices los buckets de registros para usar el Análisis de registros y, luego, crees un conjunto de datos de BigQuery vinculado. Para obtener información sobre cómo ver las entradas de registro enrutadas a BigQuery, consulta Visualiza los registros enrutados a BigQuery.
  • Bucket de Cloud Storage: Proporciona almacenamiento de entradas de registro en Cloud Storage. 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 Visualiza 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. Para obtener información sobre cómo ver las entradas de registro enrutadas a Pub/Sub, consulta Visualiza los registros enrutados a Pub/Sub.
  • Splunk: Proporciona compatibilidad con Splunk. Debes enrutar tus entradas de registro a un tema de Pub/Sub y, luego, suscribirte a ese tema con Splunk.
  • Proyecto de Google Cloud: Enruta las entradas de registro a un proyecto de Google Cloud diferente. Cuando enrutas entradas de registro a un proyecto de Google Cloud diferente, el Enrutador de registros del proyecto de destino recibe las entradas de registro y las procesa. Los receptores en el proyecto de destino determinan cómo se enrutan las entradas de registro recibidas. Error Reporting puede analizar entradas de registro cuando el proyecto de destino las enruta a un bucket de registros que pertenece al proyecto de destino.
  • Otros recursos: Enruta tus entradas de registro a un destino compatible que se encuentre en un proyecto diferente. Para obtener información sobre las rutas que se deben usar, consulta Formatos de las rutas de destino.

Los receptores pertenecen a un recurso determinado de Google Cloud: proyectos de Google 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 que coincida.

Un receptor agregado es un tipo de receptor que combina y enruta entradas de registro de los recursos de Google Cloud que contiene una organización o carpeta. Para obtener instrucciones, consulta Cómo intercalar y enrutar registros a nivel de la organización a destinos compatibles.

Para crear y administrar receptores, puedes usar la consola de Google Cloud, la API de Cloud Logging y Google Cloud CLI. El uso de la consola de Google Cloud tiene las siguientes ventajas en comparación con otros métodos:

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

Antes de comenzar

En las instrucciones de este documento, se describe la creación y administración de receptores a nivel de proyecto de Google Cloud. También puedes crear receptores no agregados para cuentas de facturación, carpetas y organizaciones.

Para comenzar, haz lo siguiente:

  1. Asegúrate de tener un proyecto de Google Cloud con registros que puedas ver en el Explorador de registros.

  2. Habilita la API de Cloud Logging.

    Habilita la API

  3. A fin de obtener los permisos que necesitas para crear, modificar o borrar un receptor, pídele a tu administrador que te otorgue el rol de IAM de 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.

    Es posible que también puedas obtener los permisos necesarios a través de funciones personalizadas o, también, otras funciones predefinidas.

    Para obtener información sobre cómo otorgar funciones 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 los registros a un destino, el destino debe existir antes de que crees el receptor. Puedes crear el destino en cualquier proyecto de Google Cloud en cualquier organización.

    Es posible que se apliquen algunas limitaciones cuando enrutas tus registros a otros destinos. Para obtener más información, consulta Limitaciones de destino.

Crea un receptor

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

Puedes crear hasta 200 receptores por proyecto de Google Cloud.

Después de crear el receptor, asegúrate de que Logging tenga los permisos adecuados para escribir registros en el destino del receptor. Consulta Configura los permisos de destino.

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 un proyecto de Google 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 propósito o el caso de uso del receptor.

  5. En el panel Destino del receptor, selecciona el servicio y el destino del receptor mediante el menú Seleccionar servicio del receptor.

    1. Para enrutar registros a un servicio que está en el mismo proyecto de Google Cloud, selecciona una de las siguientes opciones:

      • Bucket de Cloud Logging: Selecciona o crea un bucket de Logging.
      • Tabla de BigQuery: selecciona o crea el conjunto de datos particular 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 particular para recibir los registros enrutados.
      • Splunk: Selecciona el tema de Pub/Sub para tu servicio de Splunk.
      • Proyecto de Google Cloud: selecciona o crea el proyecto de Google Cloud para recibir los registros enrutados.
      • Otro recurso: Selecciona esta opción para enrutar tus entradas de registro a un destino compatible que se encuentre en un proyecto diferente. Para obtener información sobre la ruta que se debe usar, consulta Formatos de las rutas de destino.
  6. En el panel Elige registros para incluirlos en el receptor, haz lo siguiente:

    1. En el campo Crear filtro de inclusión, 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, 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.

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

  7. En el panel Elige registros para filtrar fuera del receptor, haz lo siguiente (opcional):

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

    2. En el campo Crear 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 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 Google Cloud, usa projects.sinks.create en la API de Logging. En el objeto LogSink, proporciona los valores necesarios 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 receptor, no puedes cambiarle el nombre al receptor, pero puedes borrarlo y crear uno nuevo.
    • destination: El servicio y el destino a los que deseas que se enruten tus registros Para enrutar los registros a un proyecto diferente o a un destino que esté en otro proyecto, configura el campo destination con la ruta de acceso adecuada, como se describe en Formatos de ruta de destino.

      Por ejemplo, si el destino de tu receptor es un conjunto de datos de BigQuery, entonces destination se verá 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 Google Cloud se enrutarán 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 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: Configura esta propiedad para describir el propósito o el caso de uso del receptor.
  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 receptor el permiso para escribir en el destino del receptor. Para obtener más información, consulta Configura permisos de destino.

    No es necesario que establezcas permisos de destino cuando la respuesta de la API no contiene una clave JSON etiquetada como "writerIdentity".

Para obtener más información sobre la creación de 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: Es 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 enrutar los registros. Para enrutar los registros a un proyecto diferente o a un destino que se encuentra en otro proyecto, configura SINK_DESTINATION con la ruta adecuada, como se describe en Formatos de ruta de destino.

    Por ejemplo, si el destino del receptor es un conjunto de datos de BigQuery, SINK_DESTINATION se ve 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 establecer un filtro 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 Google 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 que deseas excluir. Esta marca se puede repetir; puedes crear hasta 50 filtros de exclusión por receptor.
    • --description: Usa esta marca para describir el propósito o el caso de uso 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 la creación de receptores con Google Cloud CLI, incluidos más marcas y ejemplos, consulta la referencia de gcloud logging sinks.

Los nuevos receptores de registros a buckets de Cloud Storage pueden tardar varias horas en empezar a enrutar los registros. Los receptores de Cloud Storage se procesan por hora, mientras que otros tipos de destino se procesan en tiempo real.

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

Para obtener información sobre cómo ver registros en los destinos de receptores, consulta Visualiza los registros enrutados a los buckets de Cloud Logging.

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

Si recibes notificaciones de error, consulta Soluciona problemas de enrutamiento y receptores.

No ingreses información sensible en los filtros de receptores. Los filtros de receptores se tratan como datos del servicio.

Formatos de rutas de destino

Si enrutas a un destino que se encuentra en otro proyecto, debes proporcionar el servicio de Logging, BigQuery, Cloud Storage o Pub/Sub y la información del destino:

  • Para enrutar entradas de registro a un bucket de registros de Cloud Logging que se encuentra en un proyecto de Google Cloud diferente, el destino del receptor es el siguiente:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • Para enrutar entradas de registro a otro proyecto de Google Cloud, la ruta de destino del receptor es la siguiente:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID
    
  • Para enrutar entradas de registro a un conjunto de datos de BigQuery, el destino del receptor es el siguiente:

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    
  • Para enrutar entradas de registro a un bucket de Cloud Storage, el destino del receptor es el siguiente:

    storage.googleapis.com/BUCKET_NAME
    
  • Para enrutar entradas de registro a un tema de Pub/Sub, el destino del receptor es el siguiente:

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

Administra los receptores

Una vez que se hayan creado los receptores, puedes realizar las siguientes acciones en ellos:

  • Ver detalles de receptor
  • Actualizar el receptor
  • Inhabilitar receptor
  • Borrar receptor
  • Solucionar problemas del receptor
  • Visualiza las tasas de error y el volumen de registro del receptor

Antes de borrar un receptor, considera lo siguiente:

  • No puedes borrar los receptores _Default y _Required, pero puedes inhabilitar los receptores _Default para dejar de enrutar los registros a los buckets de Logging _Default.
  • Cuando se borra un receptor, se detiene el enrutamiento de entradas de registro.
  • Si el receptor tiene una cuenta de servicio dedicada, borrar ese receptor también borra la cuenta de servicio. Los receptores creados antes del 22 de mayo de 2023 tienen cuentas de servicio dedicadas. Los receptores creados a partir del 22 de mayo de 2023 tienen una cuenta de servicio compartida. Borrar el receptor no borra la cuenta de servicio compartida.

Cualquier cambio que se realice en un receptor puede tardar unos minutos en aplicarse.

A continuación, se indican 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. Selecciona el proyecto de Google Cloud que contiene tu receptor con el selector de recursos desde cualquier lugar de la consola de Google Cloud:

    Se selecciona un proyecto desde el menú desplegable

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

La página Enrutador de registros contiene una tabla de resumen de los receptores. Cada fila de la tabla contiene información sobre las propiedades de un receptor:

  • Enabled: Indica si el estado del receptor está habilitado o inhabilitado.
  • Tipo: El servicio de destino del receptor; por ejemplo, Cloud Logging bucket.
  • Nombre: El identificador del receptor, tal como se proporcionó cuando se creó; por ejemplo, _Default.
  • Descripción: La descripción del receptor, como se proporcionó cuando se creó.
  • Destino: Nombre completo del destino al que se enviarán las entradas de registro enrutadas.
  • Creado: La fecha y hora en que se creó el receptor.
  • Última actualización: La fecha y hora en que se editó el receptor por última vez.

Para cada fila de la tabla, el menú Más acciones 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 abre 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 registros al destino del receptor. Para obtener más información sobre cómo inhabilitar receptores, consulta Deja de almacenar registros en buckets de 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.
  • Solucionar problemas del receptor: Abre el Explorador de registros, en el que puedes solucionar problemas de errores con el receptor.
  • Ver el volumen de registro y las tasas de error del receptor: abre el Explorador de métricas, en el que puedes ver y analizar datos del receptor.

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

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

gcloud

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

    gcloud logging sinks list
    

    Si deseas ver tu lista de receptores agregados, usa la marca adecuada para 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 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 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 nuevo de Cloud Storage 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 y, también, 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
    

    Para obtener más información sobre la administración de receptores con Google Cloud CLI, consulta la referencia de gcloud logging sinks.

Deja de almacenar registros en buckets de registros

Para cada proyecto de Google Cloud, Logging crea de forma automática dos buckets de registro: _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. Puedes inhabilitar el receptor _Default para evitar que los registros se almacenen en el bucket _Default. También puedes inhabilitar cualquier receptor definido por el usuario.

Cuando inhabilitas todos los receptores de tu proyecto de Google Cloud que envían registros al bucket _Default, no se almacenan registros nuevos en ese bucket de registros. El bucket _Default está vacío cuando todos los registros almacenados con anterioridad en el bucket _Default han cumplido el período de retención del bucket.

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

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 los registros al bucket _Default, filtra los receptores por destino y, luego, ingresa _Default.

    Encuentra todos los receptores que enrutan los registros al bucket predeterminado.

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

Los receptores ahora están inhabilitados y el proyecto de Google Cloud ya no enruta los registros al bucket _Default.

Para volver a habilitar un receptor inhabilitado y reiniciar el enrutamiento de registros 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. A fin de encontrar todos los receptores inhabilitados que se configuraron con anterioridad para enrutar los registros al bucket _Default, filtra los receptores por destino y, luego, ingresa _Default.

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

API

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

Repite los pasos anteriores para inhabilitar los otros receptores en tu proyecto de Google Cloud que enrutan al bucket _Default.

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

gcloud

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

    gcloud logging sinks list
    
  2. Identifica los receptores que enrutan al bucket _Default. Para describir un receptor, incluida la visualización del nombre del destino, usa el comando gcloud logging sinks describe, que corresponde al método projects.sinks.get de la API de Logging:

    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.

Repite los pasos anteriores para inhabilitar los otros receptores en tu proyecto de Google Cloud que enrutan al bucket _Default.

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

Cloud Logging crea una cuenta de servicio compartida para un recurso cuando se crea un receptor de registros, a menos que la cuenta de servicio requerida ya exista. La cuenta de servicio puede existir porque se usa la misma cuenta de servicio para todos los receptores del recurso subyacente. Los recursos pueden ser un proyecto de Google Cloudd, una organización, una carpeta o

La identidad de escritor de un receptor es el identificador de la cuenta de servicio asociada con ese receptor. Todos los receptores tienen una identidad de escritor, excepto los que escriben en un bucket de registros en el proyecto actual de Google Cloud. Cuando el destino de un receptor es un bucket de registros en el proyecto actual de Google Cloud, el receptor no necesita ningún permiso de destino adicional. Por lo tanto, el valor del campo writer Identity aparece como None en la consola y la API y los comandos de Google Cloud CLI no lo informan.

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

Console

  1. Para obtener la identidad de escritor del receptor nuevo, 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. Selecciona Menú y, luego, Ver detalles del receptor. La identidad del escritor aparece en el panel Detalles del receptor.

  2. 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 necesitas configurar permisos de destino para el receptor.

  3. Para copiar la identidad de escritor del receptor en el portapapeles, haz clic en Copiar.

  4. Si tienes acceso de Propietario al destino, agrega la cuenta de servicio como una principal de IAM en el proyecto de destino:

    • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de creador de objetos de almacenamiento (roles/storage.objectCreator).
    • Para los destinos de BigQuery, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de editor de datos de BigQuery (roles/bigquery.dataEditor).
    • Para los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de publicador de Pub/Sub (roles/pubsub.publisher).
    • Para los destinos de bucket de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de escritor de buckets de registros (roles/logging.bucketWriter).
    • Para los destinos de proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de escritor de registros (roles/logging.logWriter). Específicamente, una principal necesita el permiso logging.logEntries.route.
    Si no tienes acceso de Propietario al destino del receptor, pídele a un propietario del proyecto que agregue la identidad de escritor como principal.

API

  1. Llama al método de la API projects.sinks.list para enumerar los receptores en tu proyecto de Google Cloud.

  2. Localiza el receptor cuyos permisos deseas modificar y, si los detalles del receptor contienen una clave JSON etiquetada como "writerIdentity", continúa con el siguiente paso. Cuando los detalles no incluyen un campo "writerIdentity", no necesitas configurar permisos de destino para el receptor.

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

    • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de creador de objetos de almacenamiento (roles/storage.objectCreator).
    • Para los destinos de BigQuery, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de editor de datos de BigQuery (roles/bigquery.dataEditor).
    • Para los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de publicador de Pub/Sub (roles/pubsub.publisher).
    • Para los destinos de bucket de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de escritor de buckets de registros (roles/logging.bucketWriter).
    • Para los destinos de proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de escritor de registros (roles/logging.logWriter). Específicamente, una principal necesita el permiso logging.logEntries.route.
    Si no tienes acceso de Propietario al destino del receptor, pídele a un propietario del proyecto que agregue la identidad de escritor como principal.

gcloud

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

    gcloud logging sinks describe SINK_NAME
    
  2. Localiza el receptor cuyos permisos deseas modificar y, si sus detalles contienen una línea con writerIdentity, continúa con el siguiente paso. Cuando los detalles no incluyen un campo writerIdentity, no necesitas configurar permisos de destino para el receptor.

    El valor del campo SERVICE_ACCT_NAME en los siguientes pasos es la identidad de escritor, que es similar a la siguiente:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  3. Si tienes acceso de Propietario de IAM al destino, agrega la cuenta de servicio al destino de la siguiente manera:

    • Para los destinos de Cloud Storage, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de creador de objetos de almacenamiento (roles/storage.objectCreator).
    • Para los destinos de BigQuery, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de editor de datos de BigQuery (roles/bigquery.dataEditor).
    • Para los destinos de Pub/Sub, incluido Splunk, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de publicador de Pub/Sub (roles/pubsub.publisher).
    • Para los destinos de bucket de Logging en diferentes proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de escritor de buckets de registros (roles/logging.bucketWriter).
    • Para los destinos de proyectos de Google Cloud, agrega la identidad de escritor del receptor como una principal mediante IAM y, luego, otórgale el rol de escritor de registros (roles/logging.logWriter). Específicamente, una principal necesita el permiso logging.logEntries.route.
    Si no tienes acceso de Propietario al destino del receptor, pídele a un propietario del proyecto que agregue la identidad de escritor como principal.

    Por ejemplo, para otorgar la función de escritor de registros (roles/logging.logWriter) a la cuenta de servicio service-123456789012@gcp-sa-logging.iam.gserviceaccount.com en el proyecto my-test-project, ejecuta el siguiente comando:

    gcloud projects add-iam-policy-binding my-test-project --member='serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com' --role='roles/logging.logWriter'
    

Limitaciones de destino

Según el destino al que enrutas tus registros, puede haber algunas limitaciones.

Enruta a buckets de registros en diferentes proyectos de Google Cloud

Las siguientes limitaciones se aplican cuando enrutas tus registros a buckets de registros en diferentes proyectos de Google Cloud:

  • Error Reporting está inhabilitado en los registros almacenados en buckets de registros que usan claves de encriptación administradas por el cliente.

Enrutar a diferentes proyectos de Google Cloud

Las siguientes limitaciones se aplican cuando enrutas tus registros a diferentes proyectos de Google Cloud:

  • Hay un límite de un salto. Por ejemplo, si enrutas las 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 _Required en el proyecto de destino. Debes crear otro receptor o bucket para almacenarlos.

  • Si la organización o carpeta que contiene el proyecto de Google Cloud al que enrutas tiene receptores agregados existentes, esos receptores agregados no enrutan los registros.

Muestras de código

Si deseas usar el código de la biblioteca cliente para configurar receptores en los lenguajes que elegiste, consulta Cómo registrar bibliotecas cliente: Receptores de registros.

Filtra ejemplos

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

Para obtener ejemplos adicionales que podrían ser útiles a medida que compilas tus filtros de inclusión y filtros de exclusión, consulta Consultas de muestra.

Restablece el filtro de receptor _Default

Si editaste el filtro para el receptor _Default, es posible que desees restablecer su 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 los registros de contenedores y Pods de Google Kubernetes Engine

Para excluir los registros de contenedores y Pods de Google Kubernetes Engine para el sistema de GKE namespaces, 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")

Si deseas excluir los registros de nodos de Google Kubernetes Engine para el sistema de 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 los registros de nodos, pod y contenedores de Google Kubernetes Engine almacenados en buckets de registros, usa el Explorador de métricas en Cloud Monitoring.

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

Si deseas 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 registros de Dataflow almacenados en buckets de registros, usa el Explorador de métricas en Cloud Monitoring.

Compatibilidad

Si bien Cloud Logging te proporciona la capacidad de excluir registros para que no se almacenen en un bucket de registros, te recomendamos considerar conservar registros que ayuden con la compatibilidad. Usar estos registros puede ayudarte a identificar y solucionar problemas con tus aplicaciones con rapidez.

Por ejemplo, los registros del sistema de GKE son útiles a fin de solucionar problemas de tus aplicaciones y clústeres de GKE porque se generan para eventos que ocurren en tu clúster. Estos registros pueden ayudarte a determinar si el código de tu aplicación o el clúster de GKE subyacente está causando el error de tu aplicación. 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 mediante el comando de kubectl y los eventos de Kubernetes.

Para 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") para registrar buckets. Estos registros son esenciales para que los desarrolladores observen y solucionen problemas de sus canalizaciones de Dataflow. Es posible que los usuarios no puedan usar la página Detalles del trabajo de Dataflow para ver los registros del trabajo.

¿Qué sigue?