En este documento se explica cómo resolver los errores que pueden producirse al usar la página Log Analytics de la consola 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 de No completion signal within allotted timeframe
Introduces una consulta de SQL y seleccionas Ejecutar consulta. La consulta no se completa y aparece 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, realice una de las siguientes acciones:
Acorta el intervalo en el que se consultan los registros y vuelve a probar la consulta. Por ejemplo, si el intervalo de una consulta es de 14 días, acórtalo a 7 días y, a continuación, ejecuta la consulta.
Crea un conjunto de datos de BigQuery vinculado y, a continuación, 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 Consultar un conjunto de datos de BigQuery vinculado.
Mensaje de error de consultas en los segmentos con claves CMEK distintas
Introduces una consulta de SQL que consulta varios contenedores de registro y seleccionas Ejecutar consulta. La consulta no se completa y aparece el siguiente mensaje de error:
Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.
Para solucionar este problema, haz una de las siguientes acciones:
- Configura tus cubos de registro para que usen la misma clave de Cloud Key Management Service (Cloud KMS).
- Si los segmentos de registro están en la misma ubicación, puedes configurar una carpeta o una organización que sea un recurso principal de los segmentos de registro con una clave de Cloud KMS predeterminada. La clave predeterminada del elemento superior debe estar en la misma ubicación que los contenedores de registro. Con esta configuración, la clave predeterminada de la cuenta principal cifra los datos temporales que genera la consulta de Log Analytics. Para obtener más información, consulta las restricciones de Log Analytics.
La cláusula FROM debe contener exactamente un mensaje de error de vista
Introduces una consulta de SQL en el panel de consultas de la página Analíticas 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 produce cuando la tabla especificada en la instrucción FROM
no se puede resolver en una vista de registro específica.
Para resolver este error, asegúrese de que el nombre de la tabla tenga la sintaxis adecuada:
Asegúrese de que el nombre de la tabla sigue la sintaxis requerida por el esquema de nomenclatura de Log Analytics. BigQuery y Analíticas de registros tienen requisitos diferentes para el nombre de la tabla. Para consultar la sintaxis necesaria del nombre de la tabla, consulta la consulta predeterminada.
Si el ID de proyecto, la región, el ID de segmento o el ID de vista de un segmento de registro contiene puntos ( Google Cloud ), asegúrate de que cada uno de estos campos esté entre comillas simples (
(`)
).(.)
Por ejemplo, si el ID de un proyecto es
example.com:bluebird
, para consultar la vista_AllLogs
del contenedor de registro_Default
, usa la siguiente sintaxis para especificar la tabla: Google CloudSELECT * FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`
En la consulta anterior se presupone que el segmento
_Default
está en la regiónglobal
.
No se puede guardar una consulta
Quieres guardar la consulta actual, así que la ejecutas y, a continuación, haces clic en
Guardar, pero la opción Guardar consulta está inhabilitada o no puedes completar los pasos del cuadro de diálogo.Si la opción Guardar consulta está inhabilitada, los ajustes de recursos predeterminados de tu organización o carpeta definen una ubicación que no permite la política de la organización. Para resolver este error, pide al administrador de tu organización que defina una ubicación en la configuración de recursos predeterminada que coincida con una ubicación permitida por la política de tu organización. Para obtener más información, consulta Configurar ajustes predeterminados para organizaciones y carpetas.
Si la opción Guardar consulta está habilitada, pero no puedes completar el cuadro de diálogo y guardar la consulta, haz lo siguiente:
- Asegúrate de que la consulta 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 has copiado la consulta en el portapapeles, pégala en el panel Consulta, ejecuta la consulta y, a continuación, guarda los cambios.
No se puede crear una vista de analíticas
Quieres crear una vista analítica, así que introduces y ejecutas una consulta de SQL y, a continuación, haces clic en
Guardar, pero la opción Guardar como vista analítica está inhabilitada.Para solucionar esta situación, asegúrate de que tus roles de gestión de identidades y accesos incluyan los siguientes permisos:
observability.analyticsViews.{get, list, create, update, delete}
Estos permisos no están incluidos en ningún rol predefinido de Cloud Logging. Para obtener información sobre los roles necesarios, consulta el artículo Crear y consultar vistas de analíticas: antes de empezar.
No se puede consultar una vista de Analytics
Quieres consultar una vista de analíticas, pero en el panel Vistas de la página Analíticas de registros no se muestra ninguna vista de analíticas.
Para solucionar este problema, prueba lo siguiente:
Asegúrate de que tus roles de gestión de identidades y accesos incluyan los siguientes permisos:
observability.analyticsViews.{get, list}
Estos permisos no están incluidos en ningún rol predefinido de Cloud Logging. Para obtener información sobre los roles necesarios, consulta el artículo Crear y consultar vistas de analíticas: antes de empezar.
Asegúrate de que haya vistas de analíticas en tu Google Cloud proyecto.
Acceso denegado a la página Analíticas de registros
Abres la página Log Analytics en la consola Google Cloud y se muestra un mensaje de error de permiso denegado.
Para obtener los permisos que necesitas para cargar la página Analíticas de registros, ejecutar consultas y ver registros, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en tu proyecto:
-
Ver registros:
Visualizador de registros (
roles/logging.viewer
) -
Ver registros en cubos de registro personalizados:
Lector de vistas de registros (
roles/logging.viewAccessor
)
También puedes conseguir 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 Analíticas de registros son los mismos que los que necesitas para ver registros en la página Explorador de registros. Para obtener información sobre las funciones adicionales que necesitas para consultar vistas en segmentos definidos por el usuario o para consultar la vista _AllLogs
del segmento de registro _Default
, consulta Funciones de Cloud Logging.
Fallo al actualizar un contenedor de registros para usar Analíticas de registros
Crea un contenedor de registros y selecciona la opción de usar Analíticas de registros, o bien actualiza un contenedor de registros para usar Analíticas de registros. La actualización falla y se produce un error similar al 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 ha configurado una política de organización que restringe las regiones que se pueden usar. Los contenedores de registros que se pueden actualizar para usar Analíticas de registros deben usar la región global
. Si puedes eliminar la política de la organización que restringe el uso de la región global
, podrás actualizar tu bucket de registro. De lo contrario, no podrás actualizar tus contenedores de registro.
No se puede crear un conjunto de datos de BigQuery vinculado
Editas un segmento de registro para crear un conjunto de datos de BigQuery vinculado o creas un segmento de registro y seleccionas la opción para crear un conjunto de datos vinculado. Sin embargo, el conjunto de datos vinculado no se crea.
Para solucionar este error, pide al administrador del sistema del Google Cloud proyecto que te conceda un rol de gestión de identidades y accesos que incluya el siguiente permiso:
logging.links.create
El permiso anterior se incluye en los roles Administrador de registros (roles/logging.admin
) y Escritor de configuración de registros (roles/logging.configWriter
).
Para obtener información sobre los roles y permisos, consulta el artículo sobre el control de acceso con gestión de identidades y accesos.
No se puede eliminar un conjunto de datos de BigQuery vinculado
Ya no quiere el conjunto de datos vinculado, pero la opción para eliminarlo está inhabilitada.
Para solucionar este error, pide al administrador del sistema del Google Cloud proyecto que te conceda un rol de gestión de identidades y accesos que incluya el siguiente permiso:
logging.links.delete
El permiso anterior se incluye en los roles Administrador de registros (roles/logging.admin
) y Escritor de configuración de registros (roles/logging.configWriter
).
Este permiso te permite eliminar 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 permisos, consulta el artículo sobre el control de acceso con gestión de identidades y accesos.
Falta el botón de configuración del motor de consultas
Si el botón settings Ajustes no se muestra junto al botón Ejecutar consulta, significa que tu proyecto Google Cloud no tiene habilitadas las ranuras de BigQuery reservadas. Para habilitar el botón settings Configuración, configura los slots de BigQuery reservados de tu proyecto.
El botón Ejecutar en BigQuery está inhabilitado
Si el botón Ejecutar en BigQuery se muestra, pero está inhabilitado, significa que una vista de registro a la que hace referencia tu consulta no tiene ningún conjunto de datos vinculado. Para ejecutar la consulta en tus reservas de ranuras de BigQuery, crea un conjunto de datos de BigQuery vinculado en tu vista de registro.
No hay ninguna cuenta de servicio de monitorización
Quieres crear una política de alertas para monitorizar los resultados de una consulta de SQL. En los pasos de configuración, se requería que concedieras roles de gestión de identidades y accesos a la cuenta de servicio de Monitoring, pero esa cuenta no existe.
La cuenta de servicio de monitorización se denomina agente de servicio, ya que la crea y gestionaGoogle Cloud. La cuenta se crea automáticamente cuando configuras un recurso o un servicio que la requiere. Por ejemplo, si creas un canal de notificaciones de Pub/Sub, es posible que se cree la cuenta de servicio de Monitoring.
Para crear la cuenta de servicio de Monitoring y concederle 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 Crear y asignar roles a agentes de servicio.
Asigna los siguientes roles a la cuenta de servicio de Monitoring:
- Monitoring Service Agent (
roles/monitoring.notificationServiceAgent
) en tu proyecto. - Lector de datos de BigQuery (
roles/bigquery.dataViewer
) en el conjunto de datos vinculado.
- Monitoring Service Agent (
Error de permiso denegado de la cuenta de servicio de monitorización
Quieres crear una política de alertas para monitorizar los resultados de una consulta de SQL.
Sin embargo, aparece un error PermissionDenied
con un mensaje que empieza por
Error authenticating service account
.
Para solucionar este error, asigna los siguientes roles a la cuenta de servicio de Monitoring:
- Monitoring Service Agent (
roles/monitoring.notificationServiceAgent
) en tu proyecto. - Lector de datos de BigQuery (
roles/bigquery.dataViewer
) en el conjunto de datos vinculado.
Hay entradas de registro duplicadas en mis resultados de Log Analytics
Ejecutas una consulta que cuenta o informa de entradas duplicadas. Como Explorador de registros elimina las entradas duplicadas en función del nombre del registro, la marca de tiempo y el ID de inserción, espera que Log Analytics elimine las entradas de registro duplicadas antes de ejecutar una consulta.
Analíticas de registros no realiza el mismo tipo de deduplicación que Explorador de registros.
Para solucionar 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. Si las marcas de tiempo son diferentes, significa que los mismos datos se han escrito en Logging varias veces.
Para resolver las escrituras duplicadas, investiga tu integración de registro para ver si hay mensajes de error o errores de configuración.
Si tu cubo está configurado para usar claves de Cloud Key Management Service, asegúrate de que no superas la cuota y de que tu clave es accesible de forma constante. Si se supera la cuota o se pierde el acceso a la clave, se pueden producir entradas de registro duplicadas.
Para solucionar estos errores, asegúrate de no superar tu cuota y de que se pueda acceder a tu clave.
Modifica tu consulta para eliminar las entradas de registro duplicadas.
Por ejemplo, supongamos que la carga útil de JSON contiene
fieldA
yfieldB
. El primero es una cadena y el segundo es numérico. Supongamos también que la carga útil de JSON contiene un campo llamadoserver
, que contiene una cadena. A continuación, considera la siguiente consulta: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 eliminar las entradas de registro duplicadas. Para determinar si una entrada de registro es un duplicado, se examinan el nombre del registro, la marca de tiempo y el ID de inserción:
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;