Soluciona problemas de enrutamiento y almacenamiento de registros

En este documento, se explican problemas comunes de enrutamiento y almacenamiento y cómo usar el la consola de Google Cloud para ver y solucionar errores de configuración. resultados inesperados.

Para obtener información general sobre el uso de registros en los destinos de tu receptor, consulta Visualiza registros en destinos de receptores.

Solucionar problemas de registros de enrutamiento

En esta sección, se describe cómo solucionar problemas habituales relacionados con el enrutamiento de tus registros.

El destino contiene registros no deseados

Estás viendo los registros enrutados a un destino y determinas que el destino contiene registros no deseados.

Para resolver esta condición, actualiza el filtros de exclusión para tu que enrutan los registros hacia el destino. Los filtros de exclusión te permiten excluir que los registros seleccionados se enruten a un destino.

Por ejemplo, imagina que creas un receptor agregado para enrutar los registros una organización a un destino. Para excluir los registros de una instancia proyecto se enrute al destino, agrega el siguiente filtro de exclusión al receptor:

logName:projects/PROJECT_ID

También puedes excluir registros de varios proyectos con el operador logical-OR para unir cláusulas logName.

Faltan registros en el destino

Quizás el problema más común relacionado con el receptor es que parece que faltan registros en un destino de receptor.

En algunos casos, no se genera un error, pero puedes notar que los registros disponible cuando intentas acceder a ellos en tu destino. Si sospechas que que tu receptor no enruta correctamente los registros, revisa el sistema metrics:

  • exports/byte_count: Cantidad de bytes en entradas de registro que se enrutaron.
  • exports/log_entry_count: Cantidad de entradas de registro que se enrutaron.
  • exports/error_count: Cantidad de entradas de registro que no se pudieron enrutar.

Las métricas tienen etiquetas que registran los recuentos por nombre de receptor y destino y te informarán si el receptor enruta correctamente los datos de registros o con errores. Para obtener detalles sobre cómo ver las métricas, consulta Consulta métricas basadas en registros.

Si las métricas de tu receptor indican que no tiene el rendimiento esperado, estos son algunos motivos posibles y qué hacer al respecto:

Latencia

  • No se recibieron entradas de registro que coincidan desde que la creaste o actualizaste tu fregadero; solo se enrutan entradas de registro nuevas.

    Espera una hora y vuelve a consultar tu destino.

  • Las entradas de registro coincidentes llegan tarde.

    Puede haber una demora antes de poder ver tus registros en el destino. Los registros tardíos se especialmente común para receptores que configuran Cloud Storage buckets como sus destinos. Espera unas horas y revisa tu destino nuevamente.

El alcance o el filtro de visualización son incorrectos.

Error en el filtro del receptor

  • El filtro del receptor es incorrecto y no captura los registros que esperabas. en tu destino.

    • Edita el filtro de tu receptor usando el Enrutador de registros en la Consola de Google Cloud Para verificar que ingresaste el filtro correcto, Selecciona Obtener vista previa de los registros en el panel Editar receptor. Esto abrirá el Explorador de registros en una pestaña nueva con el filtro prepropagado. Para obtener instrucciones sobre cómo ver y administrar tus receptores, consulta Administra los receptores.

Ver errores

Para cada uno de los destinos de receptores admitidos, Logging proporciona mensajes de error para receptores mal configurados.

Existen varias formas de ver estos errores relacionados con el receptor: estos métodos son que se describe en las siguientes secciones:

  • Consulta los registros de errores generados para el receptor.
  • Recibe notificaciones de errores del receptor por correo electrónico.

Registros de errores

El método recomendado para inspeccionar en detalle los errores relacionados con el receptor es ver las entradas de registro de errores que generó el receptor. Para obtener detalles sobre la visualización de Google Cloud, consulta Visualiza los registros con el Explorador de registros.

Puedes usar la siguiente consulta en el panel de editor de consultas en la Explorador de registros para revisar los registros de errores de tu receptor. La misma consulta funciona en la API de Logging y gcloud CLI.

Antes de copiar la consulta, reemplaza la variable SINK_NAME por nombre del receptor con el que intentas solucionar problemas. Puedes encontrar el nombre del receptor en la página Enrutador de registros en la consola de Google Cloud.

logName:"logging.googleapis.com%2Fsink_error"
resource.type="logging_sink"
resource.labels.name="<var>SINK_NAME</var>"

Por ejemplo, si el nombre de tu receptor es my-sink-123, entonces la entrada de registro podría verse similar a lo siguiente:

{
  "textPayload": "Cloud Logging export config error in my-logs-project, export sink my-sink-123: dataset_not_found ()",
  "insertId": "12akhzyb14452",
  "resource": {
    "type": "logging_sink",
    "labels": {
      "project_id": "my-logs-test-project",
      "destination": "",
      "name": "my-sink-123"
    }
  },
  "timestamp": "2021-08-02T17:01:28.620961700Z",
  "severity": "ERROR",
  "labels": {
    "error_code": "dataset_not_found",
    ...
    "destination": "bigquery.googleapis.com/projects/my-logs-project/datasets/my-dataset",
    "sink_id": "my-sink-123",
    "activity_type_name": "LoggingSinkConfigErrorV2"
  },
  "logName": "projects/cloud-logs-test-project/logs/logging.googleapis.com%2Fsink_error",
  "receiveTimestamp": "2021-08-02T17:01:30.148869575Z"
}

El campo labels de LogEntry y su información de par clave-valor anidada te ayuda a dirigirte a la fuente del error de tu receptor; contiene las imágenes recurso, receptor afectado y código de error. El campo labels.error_code contiene una descripción breve del error para que sepas qué componente se debe reconfigurar el receptor.

Para actualizar tu receptor, haz lo siguiente: usa el Enrutador de registros.

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.

Notificaciones por correo electrónico

Si te suscribiste a un proyecto de Google Cloud o a su recurso superior como Contacto técnico esencial, recibirás notificaciones por correo electrónico sobre un error de configuración del receptor. Si no hay Contactos esenciales técnicos configurados para un recurso; luego, los usuarios se muestran como El Propietario del proyecto de IAM roles/owner para el recurso recibe el notificación por correo electrónico.

El mensaje de correo electrónico contiene la siguiente información:

  • ID del recurso: Es el nombre del proyecto de Google Cloud o alguna otra Recurso de Google Cloud en el que se configuró el receptor.
  • Nombre del receptor: Es el nombre del receptor que contiene el error de configuración.
  • Destino del receptor: la ruta completa del destino de enrutamiento del receptor para ejemplo, bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
  • Código de error: la descripción abreviada de la categoría de error, por ejemplo, dataset_not_found
  • Detalles del error: Información detallada sobre el error, incluida recomendaciones para solucionar el error subyacente.

Para ver y administrar tus receptores, usa el Enrutador de registros.

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.

Cualquier error de configuración del receptor que se aplique al recurso aparecerá en la lista como Cloud Logging sink configuration error Cada error contiene un vínculo a uno de las entradas de registro que generó el receptor con fallas. Para examinar los errores subyacentes para obtener más información, consulta la sección Registros de errores.

Tipos de errores de receptor

En las siguientes secciones, se describen categorías amplias de errores relacionados con receptores y cómo solucionarlos.

Destino incorrecto

Si configuras un receptor, pero luego ves un error de configuración que indica que el destino no se pudieron encontrar cuando Logging intentó enrutar los registros, estas son las algunos motivos posibles:

  • La configuración de tu receptor contiene una falta de ortografía u otro error de formato en el destino del receptor especificado.

    Debes actualizar la configuración del receptor para especificar de forma correcta el destino.

  • Es posible que se haya borrado el destino especificado.

    Puedes cambiar la configuración del receptor para usar una cuenta o vuelve a crear el destino con el mismo nombre.

En cualquier caso, para solucionar cualquier problema, ve a la página Enrutador de registros.

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.

Tu receptor comienza a enrutar los registros cuando se encuentra el destino y los registros nuevos que coincidan con tu filtro son recibidos por Logging.

Administrar problemas de receptores

Si se inhabilitó un receptor para dejar de almacenar registros en un bucket de registros, pero seguir viendo los registros que se enrutan Luego, espera unos minutos a que se apliquen los cambios en el receptor.

Problemas con los permisos

Si un receptor intenta enrutar una entrada de registro, pero carece de la Permisos de IAM para el destino del receptor, el receptor informa un error, que puedes ver, y se omite la entrada de registro.

Cuando creas un receptor, a la cuenta de servicio del receptor se le debe otorgar apropiado permisos de destino. Si creas el receptor en la consola de Google Cloud en el mismo proyecto de Google Cloud, la consola de Google Cloud asigna estos permisos automáticamente. Si creas el receptor en otro proyecto de Google Cloud, o con gcloud CLI o la API de Logging, debes configurar los permisos manualmente.

Si ves errores relacionados con los permisos de tu receptor, agrega los permisos permisos al destino o actualiza tu receptor para que use un destino. Para obtener instrucciones sobre cómo actualizar estos permisos, consulta Permisos de destino.

Hay una leve demora entre la creación del receptor y el uso de su nuevo para autorizar la escritura en el destino. Tu receptor comienza de enrutamiento cuando se corrigen permisos y registros nuevos que coinciden filtro son recibidos por Logging.

Problemas con las políticas de la organización

Si estás intentando enrutar una entrada de registro, pero política de la organización que impide que Logging escriba en el destino del receptor y, luego, el receptor no puede enrutar al destino seleccionado e informa un error.

Si ves errores relacionados con las políticas de la organización, puedes hacer lo siguiente: lo siguiente:

  • Actualiza la política de la organización del destino para quitar las restricciones bloquear el receptor para que no enrute las entradas de registro; esto supone que tienes los permisos adecuados para actualizar la política de la organización. Para consulta Crea y edita políticas.

  • Si no puedes actualizar la política de la organización, actualiza tu receptor en Enrutador de registros para usar un destino compatible.

    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.

Tu receptor comienza a enrutar los registros cuando la política de la organización ya no bloquea receptor de escritura en el destino, y los nuevos registros que coinciden con tu filtro se recibidos por Logging.

Problemas con la clave de encriptación

Si usas claves de encriptación, ya sea administradas con Cloud Key Management Service o por ti, para encriptas los datos en el destino del receptor, es posible que veas errores relacionados. A continuación, encontrarás algunos problemas posibles y formas de solucionarlos:

  • La facturación no se está habilitando para el proyecto de Google Cloud que contiene la clave de Cloud KMS.

    • Incluso si el receptor se creó correctamente con el destino correcto, Aparece este mensaje de error si no hay una cuenta de facturación válida. asociada con el proyecto de Google Cloud que contiene la clave.

    • Asegúrate de que haya un cuenta de facturación vinculada al proyecto de Google Cloud que contiene la clave. Si una cuenta de facturación no está vinculada a la en un proyecto de Google Cloud, habilita la facturación para ese proyecto o usar una clave de Cloud KMS contenida por un proyecto de Google Cloud que tenga una cuenta de facturación válida vinculada.

  • No se puede encontrar la clave de Cloud KMS.

    • El proyecto de Google Cloud que contiene la clave de Cloud KMS configurada para encriptar los datos.

    • Usa una clave de Cloud KMS válida de un proyecto de Google Cloud.

  • La ubicación de la clave de Cloud KMS no coincide con la de la destino.

    • Si el proyecto de Google Cloud que contiene la clave de Cloud KMS ubicada en una región diferente de la región de destino, la encriptación falla y el receptor no puede enrutar los datos a ese destino.

    • Usar una clave de Cloud KMS contenida por un proyecto de Google Cloud cuyo región coincide con el destino del receptor.

  • Se deniega el acceso a la clave de encriptación a la cuenta de servicio del receptor.

    • Incluso si el receptor se creó de forma correcta con los permisos de la cuenta de servicio correctos, este mensaje de error se muestra si el destino del receptor usa una clave de encriptación que no le proporciona a la cuenta de servicio los permisos suficientes para encriptar o desencriptar los datos.

    • Otorga la autorización de Cloud KMS Rol de Encriptador/Desencriptador de CryptoKey para la cuenta de servicio especificada en la carpeta Campo writerIdentity para la clave que se usa en el destino Además, asegúrate de que la API de Cloud KMS esté habilitada.

Problemas de cuotas

Cuando los receptores escriben registros, se aplican cuotas específicas del destino al Proyectos de Google Cloud en los que se crearon los receptores. Si las cuotas son agotado, el receptor deja de enrutar los registros al destino.

Por ejemplo, cuando enrutes datos a BigQuery, es posible que veas un que indica que se superó la cuota de inserción de transmisión por tabla una tabla determinada en tu conjunto de datos. En este caso, es posible que el receptor también esté enrutando muchas entradas de registro demasiado rápido. El mismo concepto se aplica a los demás de receptores, como los temas de Pub/Sub.

Para solucionar los problemas de agotamiento de la cuota, disminuye la cantidad de datos de registro que se enrutan actualizando el filtro del receptor para que coincida con menos entradas de registro. Puedes usar la Función sample en tu filtro para seleccionar una fracción de la cantidad total de entradas de registro.

Tu receptor comienza a enrutar los registros a tu destino cuando lo actualizas. para que coincidan con menos entradas de registro o cuando se actualicen tus cuotas.

Para obtener detalles sobre los límites que podrían aplicarse cuando enrutas registros, revisa el la información de la cuota del destino correspondiente:

Además de los tipos de error del receptor generales, aquí están los tipos de errores específicos del destino más comunes y cómo solucionarlos.

Errores de enrutamiento a Cloud Storage

Los siguientes son los errores más comunes cuando se enrutan los registros a Cloud Storage:

  • Entradas de registro tardías:

    • Las entradas de registro enrutadas se guardan en depósitos de Cloud Storage en lotes por hora. Es posible que se necesiten entre 2 y 3 horas para que aparezcan las primeras entradas.

    • Los fragmentos de los archivos de registro enrutados con el sufijo An (“Append”) contienen las entradas de registro que llegaron tarde. Si el SDK de Cloud Storage el destino experimenta una interrupción y, luego, Cloud Logging almacena los datos en búfer hasta que finalice la interrupción.

  • No se pudieron otorgar los permisos correctos al destino:

    • Incluso si el receptor se creó correctamente con el los permisos de la cuenta de servicio correctos, este error si el modelo de control de acceso para el El bucket de Cloud Storage se configuró como el acceso uniforme cuando se creó el bucket restante.

    • Para los buckets de Cloud Storage existentes, puedes cambiar el acceso de control durante los primeros 90 días a partir de la creación del bucket con el Permisos. Para los buckets nuevos, selecciona el acceso Detallado un modelo de control de acceso basado en la nube durante la creación del bucket. Para obtener más información, consulta Crea buckets de Cloud Storage.

Errores en el enrutamiento a BigQuery

Los siguientes son los errores más comunes cuando se enrutan los registros a BigQuery:

  • Esquema de tabla no válido:

    • Registros transmitidos a la tabla de tu conjunto de datos de BigQuery no coinciden con el esquema de la tabla actual. Los problemas comunes incluyen las entradas de registro de ruta con diferentes tipos de datos, lo que causa no coincide el esquema. Por ejemplo: uno de los campos de la entrada de registro es un número entero, mientras que un valor correspondiente columna del esquema tiene un tipo de cadena.

    • Asegúrate de que tus entradas de registro coincidan con el esquema de la tabla. Después de corregir los problemas la fuente del error, puedes cambiar el nombre de tu tabla actual y dejar que Logging vuelve a crear la tabla.

    • BigQuery admite la carga datos anidados en sus tablas. Sin embargo, cuando cargues datos desde Logging, la cantidad máxima el límite de profundidad de anidado para una columna es de 13 niveles.

    Cuando BigQuery identifica una discrepancia de esquema, crea dentro del conjunto de datos correspondiente para almacenar la información del error. El tipo de tabla determina su nombre. En el caso de las tablas fragmentadas por fecha, el formato del nombre es export_errors_YYYYMMDD. Para las tablas particionadas, el formato del nombre es export_errors. Para obtener información sobre el esquema de las tablas de errores y cómo prevenir futuras incompatibilidades de tipo de campo consulta Discrepancias en el esquema.

  • Las entradas de registro están fuera de los límites de tiempo permitidos:

    • Los registros transmitidos a la tabla particionada de BigQuery están fuera los límites de tiempo permitidos. BigQuery no acepta registros muy lejanos en el pasado o futuro.

    • Puedes actualizar tu receptor para enrutar esos registros a Cloud Storage usar un trabajo de carga de BigQuery. Consulta la Documentación de BigQuery para obtener más instrucciones.

  • El conjunto de datos no permite que la cuenta de servicio asociada con el receptor de registros escribirle:

    • Incluso si el receptor se creó correctamente con el los permisos de la cuenta de servicio correctos, este error si no hay una cuenta de facturación válida asociada con el proyecto de Google Cloud que contiene el destino del receptor.

    • Asegúrate de que haya un cuenta de facturación vinculada a tu proyecto de Google Cloud. Si una cuenta de facturación no está vinculada al destino del receptor en un proyecto de Google Cloud, habilita la facturación para ese proyecto o actualizar el destino del receptor para que se ubique en una Proyecto de Google Cloud que tiene vinculada una cuenta de facturación válida.

  • El conjunto de datos contiene entradas de registro duplicadas:

    • Pueden ocurrir entradas de registro duplicadas cuando hay fallas en la transmisión de registros a BigQuery, incluso debido a reintentos o configuraciones incorrectas. Cloud Logging anula las entradas de registro duplicadas con el mismo timestamp y insertId en el momento de la consulta. BigQuery no elimina las entradas de registro duplicadas.

    • Para ignorar las entradas de registro duplicadas en BigQuery, incluye el siguiente comando: SELECT DISTINCT en tu consulta. Por ejemplo:

    SELECT DISTINCT insertId, timestamp FROM TABLE_NAME
    

Enrutamiento de errores a los buckets de Cloud Logging

Es posible que encuentres una situación en la que puedas ver registros en el Explorador de registros. que excluiste con tu receptor. Aún puedes ver estos registros si que se cumplen las siguientes condiciones:

  • Estás ejecutando la consulta en el proyecto de Google Cloud que generó la los registros del sistema operativo.

    Para solucionar este problema, asegúrate de que estás ejecutando tu consulta en el proyecto de Google Cloud.

  • Los registros excluidos se enviaron a varios depósitos de registros. Verás una copia del mismo registro que deseas excluir.

    Para solucionar este problema, revisa tus receptores en la página Enrutador de registros y asegúrate de que no incluyen los registros de las memorias filtros.

  • Tienes acceso a las vistas del bucket de registros, en las que se enviaron los registros. En este caso, puedes ver esos registros de forma predeterminada.

    Para evitar ver estos registros en el Explorador de registros, puedes hacer lo siguiente: definir mejor el alcance de tu búsqueda a tu proyecto o bucket de origen de Google Cloud.

Soluciona problemas de almacenamiento de registros

¿Por qué no puedo borrar este bucket?

Si intentas borrar un bucket, haz lo siguiente:

  • Asegúrate de tener los permisos correctos para borrar el bucket. Para el la lista de los permisos que necesitas, consulta Control de acceso con la IAM.

  • Determina si el bucket está bloqueado enumerar los atributos del bucket. Si el bucket está bloqueado, revisa el bucket período de retención. No puedes borrar un bucket bloqueado hasta que todos los registros del bucket cumplieron el período de retención de este.

  • Verifica que el bucket de registros no tenga un conjunto de datos de BigQuery vinculado. No puedes borrar un bucket de registros con un conjunto de datos vinculado.

    El siguiente error se muestra en respuesta a un comando delete en un bucket de registros que tiene un conjunto de datos vinculado:

    FAILED_PRECONDITION: This bucket is used for advanced analytics and has an active link. The link must be deleted first before deleting the bucket
    

    Para enumerar los vínculos asociados a un bucket de registros, ejecuta el comando [gcloud logging links list][link-list] o ejecuta projects.locations.buckets.links.list método de API.

¿Qué cuentas de servicio enrutan registros a mi bucket?

Para determinar si alguna cuenta de servicio tiene permisos de IAM para enrutar registros a tu bucket, haz lo siguiente:

  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. En la pestaña Permisos, consulta por Funciones. Verás una tabla con todas los roles y las principales de IAM asociados a tus proyecto de Google Cloud.

  3. En la opción Filtro de la tabla cuadro de texto, Ingresa Escritor de buckets de registros.

    Verás todas las principales con el rol Escritor de buckets de registros. Si una principal es una cuenta de servicio, su ID contiene la cadena gserviceaccount.com.

  4. Opcional: Si deseas quitar una cuenta de servicio para que no pueda enrutar a tu proyecto de Google Cloud, selecciona casilla de verificación correspondiente a la cuenta de servicio y haz clic en Quitar.

¿Por qué veo registros de un proyecto de Google Cloud a pesar de que los excluí de mi receptor _Default?

Podrías estar viendo registros en un bucket de registros en un un proyecto centralizado de Google Cloud, y agrega registros de toda tu organización.

Si usas el Explorador de registros para acceder a estos registros y ver los registros que del receptor _Default, entonces tu vista podría alcanzar el alcance Nivel de proyecto de Google Cloud.

Para solucionar este problema, selecciona Limitar alcance por almacenamiento. Panel Define mejor el permiso Luego, selecciona el bucket _Default en tu proyecto de Google Cloud. Ya no deberías ver los registros excluidos.