En este documento, se muestra cómo resolver errores que pueden ocurrir cuando usas la página Log Analytics de la consola de Google Cloud .
Mensajes de error
En esta sección, se describen los mensajes de error que pueden aparecer y cómo resolver las condiciones de error correspondientes.
Mensaje de error No completion signal within allotted timeframe
Ingresa una consulta en SQL y selecciona Ejecutar consulta. La consulta no se completa y ves el siguiente mensaje de error:
The query failed to execute and return results due to error: No completion signal within allotted timeframe.
Para resolver este error, realiza una de las siguientes acciones:
Acorta el intervalo durante el cual se consultan los registros y, luego, vuelve a intentarlo. Por ejemplo, si un intervalo de consulta es de 14 días, acórtalo a 7 días y, luego, ejecuta la consulta.
Crea un conjunto de datos vinculado a BigQuery y, luego, ejecuta la consulta desde la interfaz de BigQuery. La interfaz de BigQuery admite consultas que requieren un tiempo de ejecución más largo que la interfaz de Cloud Logging. Para obtener más información, consulta Cómo consultar un conjunto de datos vinculado de BigQuery.
Mensaje de error de consultas en buckets con claves CMEK distintas
Ingresas una consulta en SQL que consulta varios buckets de registros y seleccionas Ejecutar consulta. La consulta no se completa y ves el siguiente mensaje de error:
Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.
Para resolver esta situación, realiza una de las siguientes acciones:
- Configura tus buckets de registros para que usen la misma clave de Cloud Key Management Service (Cloud KMS).
- Cuando los buckets de registros se encuentran en la misma ubicación, puedes configurar una carpeta o una organización que sea un recurso principal para los buckets de registros con una clave predeterminada de Cloud KMS. La clave predeterminada de la cuenta principal debe estar en la misma ubicación que los buckets de registros. Con esta configuración, la clave predeterminada del elemento superior encripta los datos temporales que genera la consulta de Log Analytics. Para obtener más información, consulta Restricciones de Log Analytics.
La cláusula FROM debe contener exactamente un mensaje de error de vista
Ingresas una consulta en SQL en el panel de consultas de la página Análisis de registros de la consola de Google Cloud , pero el analizador de SQL muestra el siguiente error:
FROM clause must contain exactly one log view
El error anterior se informa cuando la tabla especificada en la declaración FROM
no se puede resolver en una vista de registro específica.
Para resolver este error, asegúrate de que el nombre de la tabla tenga la sintaxis adecuada:
Asegúrate de que el nombre de la tabla siga la sintaxis requerida por el esquema de nombres de Log Analytics. BigQuery y Log Analytics tienen requisitos diferentes para el nombre de la tabla. Puedes ver la consulta predeterminada para encontrar la sintaxis requerida para el nombre de la tabla.
Si el ID del proyecto, la región, el ID de bucket o el ID de la vista de un bucket de registros contienen caracteres de período,
(.)
, asegúrate de que cada uno de estos campos esté encerrado entre comillas invertidas simples,(`)
. Google CloudPor ejemplo, si un ID del proyecto Google Cloud es
example.com:bluebird
, para consultar la vista_AllLogs
del bucket de registros_Default
, usa la siguiente sintaxis para especificar la tabla:SELECT * FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`
La consulta anterior supone que el bucket
_Default
se encuentra en la regiónglobal
.
No se puede guardar una búsqueda
Quieres guardar tu búsqueda actual, por lo que la ejecutas y, luego, haces clic en
Guardar, pero la opción Guardar búsqueda está inhabilitada o no puedes completar los pasos del diálogo.Cuando la opción Guardar consulta está inhabilitada, la configuración predeterminada de recursos de tu organización o carpeta define una ubicación que no está permitida por la política de la organización. Para resolver este error, pídele al administrador de tu organización que defina una ubicación en la configuración predeterminada del recurso que coincida con una ubicación permitida por la política de tu organización. Para obtener más información, consulta Establece la configuración predeterminada para las organizaciones y carpetas.
Si la opción Guardar consulta está habilitada, pero no puedes completar el diálogo y guardar la consulta, haz lo siguiente:
- Asegúrate de que la búsqueda no contenga errores de sintaxis. Solo puedes guardar consultas válidas.
- Opcional: Copia la consulta en el portapapeles.
- Vuelve a cargar la página.
- Si copiaste la consulta en el portapapeles, pégala en el panel Consulta, ejecútala y, luego, realiza la operación de guardar.
No se pudo crear una vista de Analytics
Quieres crear una vista de Analytics, por lo que ingresas y ejecutas una consulta en SQL y, luego, haces clic en
Guardar, pero la opción Guardar como vista de Analytics está inhabilitada.Para resolver esta situación, asegúrate de que tus roles de IAM incluyan los siguientes permisos:
observability.analyticsViews.{get, list, create, update, delete}
Estos permisos no se incluyen en ningún rol predefinido de Cloud Logging. Para obtener información sobre los roles necesarios, consulta Crea y consulta vistas de Analytics: Antes de comenzar.
No se puede consultar una vista de Analytics
Deseas consultar la vista de Analytics, pero el panel Vistas de la página Análisis de registros no muestra ninguna vista de Analytics.
Para resolver este error, prueba lo siguiente:
Asegúrate de que tus roles de IAM incluyan los siguientes permisos:
observability.analyticsViews.{get, list}
Estos permisos no se incluyen en ningún rol predefinido de Cloud Logging. Para obtener información sobre los roles necesarios, consulta Crea y consulta vistas de Analytics: Antes de comenzar.
Asegúrate de que existan vistas de Analytics en tu proyecto Google Cloud .
Se denegó el acceso a la página Análisis de registros
Abres la página Análisis de registros en la consola de Google Cloud y se muestra un mensaje de error de permiso denegado.
Para obtener los permisos que necesitas para cargar la página de Log Analytics, ejecutar consultas y ver registros, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Para ver los registros, usa el Visualizador de registros (
roles/logging.viewer
). -
Ver registros en buckets de registros personalizados:
Descriptor de acceso de vista de registros (
roles/logging.viewAccessor
)
También puedes obtener los permisos necesarios a través de roles personalizados o roles predefinidos de Logging.
Los permisos que necesitas para ver entradas de registro y ejecutar consultas en la página Estadísticas de registros son los mismos que necesitas para ver registros en la página Explorador de registros. Para obtener información sobre los roles adicionales que necesitas para consultar vistas en buckets definidos por el usuario o para consultar la vista _AllLogs
del bucket de registros _Default
, consulta Roles de Cloud Logging.
Falla la actualización del bucket de registros para usar el Análisis de registros
Creas un bucket de registros y seleccionas la opción para usar el Análisis de registros, o bien actualizas un bucket de registros existente para usar el Análisis de registros. La actualización falla con una condición de error similar a la siguiente:
Failed precondition (HTTP 400): Constraint "my-constraint" violated for PROJECT_ID with location global.
El mensaje de error anterior indica que tu organización configuró una política de la organización que restringe las regiones que se pueden usar. Los buckets de registros aptos para actualizarse y usar Log Analytics deben usar la región global
. Si puedes quitar la política de la organización que restringe el uso de la región global
, puedes actualizar tu bucket de registros. De lo contrario, no podrás actualizar tus buckets de registros.
Falla la creación de un conjunto de datos vinculado a BigQuery
Editas un bucket de registros para crear un conjunto de datos vinculado de BigQuery o creas un bucket de registros nuevo y seleccionas la opción para crear un conjunto de datos vinculado. Sin embargo, no se crea el conjunto de datos vinculado.
Para resolver este error, pídele al administrador del sistema del proyecto Google Cloud que te otorgue un rol de IAM que incluya el siguiente permiso:
logging.links.create
El permiso anterior se incluye en los roles de Administrador de Logging (roles/logging.admin
) y Escritor de configuración de registros (roles/logging.configWriter
).
Para obtener información sobre los roles y los permisos, consulta Control de acceso con IAM.
No se puede borrar un conjunto de datos vinculado de BigQuery
Ya no quieres el conjunto de datos vinculado, pero la opción para borrarlo está inhabilitada.
Para resolver este error, pídele al administrador del sistema del proyecto Google Cloud que te otorgue un rol de IAM que incluya el siguiente permiso:
logging.links.delete
El permiso anterior se incluye en los roles de Administrador de Logging (roles/logging.admin
) y Escritor de configuración de registros (roles/logging.configWriter
).
Este permiso te permite borrar el conjunto de datos vinculado de la página Almacenamiento de registros de la consola de Google Cloud . Para obtener más información sobre los roles y los permisos, consulta Control de acceso con IAM.
Falta el botón de configuración del motor de consultas
Si el botón settings Configuración no se muestra junto al botón Ejecutar consulta, significa que tu proyecto Google Cloud no tiene habilitadas las ranuras reservadas de BigQuery. Para habilitar el botón settings Configuración, configura las ranuras reservadas de BigQuery para tu proyecto.
El botón Ejecutar en BigQuery está inhabilitado
Si se muestra el botón Ejecutar en BigQuery, pero está inhabilitado, significa que una vista de registro a la que hace referencia tu consulta no tiene un conjunto de datos vinculado. Para ejecutar tu consulta en las reservas de ranura de BigQuery, crea un conjunto de datos de BigQuery vinculado en tu vista de registros.
No hay cuenta de servicio de supervisión
Quieres crear una política de alertas para supervisar los resultados de una consulta en SQL. En los pasos de configuración, se requería que otorgaras roles de IAM a la cuenta de servicio de Monitoring, pero esa cuenta no existe.
La cuenta de servicio de supervisión se denomina agente de servicio porque la crea y administraGoogle Cloud. La cuenta se crea automáticamente cuando configuras un recurso o servicio que la requiere. Por ejemplo, si creas un canal de notificaciones de Pub/Sub, es posible que esa acción provoque la creación de la cuenta de servicio de Monitoring.
Para crear la cuenta de servicio de Monitoring y otorgarle los permisos necesarios para las políticas de alertas basadas en SQL, haz lo siguiente:
Crea la cuenta de servicio de Monitoring. Para obtener más información, consulta Crea y otorga roles a los agentes de servicio.
Otorga los siguientes roles a la cuenta de servicio de Monitoring:
- Agente de servicio de Monitoring (
roles/monitoring.notificationServiceAgent
) en tu proyecto. - Visualizador de datos de BigQuery (
roles/bigquery.dataViewer
) en tu conjunto de datos vinculado
- Agente de servicio de Monitoring (
Error de permiso denegado de la cuenta de servicio de Monitoring
Quieres crear una política de alertas para supervisar los resultados de una consulta en SQL.
Sin embargo, ves un error PermissionDenied
con un mensaje que comienza con Error authenticating service account
.
Para resolver este error, otorga los siguientes roles a la cuenta de servicio de Monitoring:
- Agente de servicio de Monitoring (
roles/monitoring.notificationServiceAgent
) en tu proyecto. - Visualizador de datos de BigQuery (
roles/bigquery.dataViewer
) en tu conjunto de datos vinculado
Hay entradas de registro duplicadas en mis resultados de Análisis de registros
Ejecutas una consulta que cuenta o informa entradas duplicadas. Dado que el Explorador de registros quita las entradas duplicadas según el nombre del registro, la marca de tiempo y el ID de inserción, se espera que el Análisis de registros quite las entradas de registro duplicadas antes de que se ejecute una consulta.
Log Analytics no realiza el mismo tipo de anulación de duplicados que el Explorador de registros.
Para resolver el problema de entradas de registro duplicadas, prueba lo siguiente:
Determina si las entradas de registro duplicadas tienen valores de marca de tiempo de recepción diferentes. Cuando las marcas de tiempo difieren, esto indica que los mismos datos se escribieron en Logging varias veces.
Para resolver el problema de escrituras duplicadas, investiga tu integración de registros en busca de mensajes de error o parámetros de configuración incorrectos.
Si tu bucket está configurado para usar claves de Cloud Key Management Service, asegúrate de que estés dentro de la cuota y de que tu clave sea accesible de forma constante. Si se supera la cuota o se pierde el acceso a la clave, se pueden generar entradas de registro duplicadas.
Para resolver estos errores, asegúrate de no exceder tu cuota y de que se pueda acceder a tu clave.
Modifica tu consulta para quitar las entradas de registro duplicadas.
Por ejemplo, supongamos que la carga útil JSON contiene
fieldA
yfieldB
, el primero es una cadena y el segundo es numérico. Además, supón que la carga útil de JSON contiene un campo etiquetado comoserver
, que contiene una cadena. A continuación, considera la siguiente búsqueda:SELECT JSON_VALUE(json_payload.fieldA) AS fieldA SUM(IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0)) AS sum_fieldB FROM `TABLE_NAME_OF_LOG_VIEW` WHERE JSON_VALUE(json_payload.server) = "test" GROUP BY fieldA;
Puedes modificar la consulta para quitar las entradas de registro duplicadas, en las que se examinan el nombre del registro, la marca de tiempo y el ID de inserción para determinar si una entrada de registro es un duplicado:
WITH deduplicated AS ( SELECT JSON_VALUE(json_payload.fieldA) AS fieldA IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0) AS fieldB FROM `TABLE_NAME_OF_LOG_VIEW` a WHERE JSON_VALUE(json_payload.server) = "test" QUALIFY ROW_NUMBER() OVER (PARTITION BY a.log_name, a.timestamp, a.insert_id ) = 1 ) SELECT fieldA, SUM(fieldB) AS sum_fieldB FROM deduplicated GROUP BY fieldA;