Puedes diagnosticar y resolver problemas comunes de conectividad entrante y saliente para tu instancia de Looker (Google Cloud Core). Solucionar problemas relacionados con las configuraciones de Private Service Connect, acceso privado a servicios y salida controlada te ayuda a restablecer las conexiones a proveedores de identidad, servicios externos y backends de bases de datos.
Falla de autenticación de OpenID Connect con salida controlada
Cuando configuras la autenticación de OpenID Connect en una instancia de Looker (Google Cloud Core) configurada con Private Service Connect y con la salida controlada habilitada, es posible que la autenticación falle.
Síntomas
Si falló la autenticación, es posible que experimentes alguno de los siguientes síntomas:
- El extremo
/openidconnectde Looker se bloquea durante aproximadamente 60 segundos en el navegador antes de mostrar un error o agotar el tiempo de espera con un error504 Upstream Request Timeouto504 Gateway Timeout. Tu proveedor de identidad muestra un mensaje de error que indica que el URI de redireccionamiento no coincide, como el siguiente:
AADSTS50011: The redirect URI specified in the request does not match the redirect URIs configured for the applicationEste mensaje de error es engañoso porque el URI de redireccionamiento que configuraste en tu proveedor de identidad podría ser correcto. La falla real se produce cuando Looker (Google Cloud Core) no puede comunicarse con el extremo del token del proveedor de identidad durante el intercambio de backend.
Causa
En ocasiones, el flujo de trabajo de aprovisionamiento automatizado para la salida controlada no puede crear la ruta de red de Secure Web Proxy (looker-swp-route) necesaria en el proyecto de usuario de Looker (Google Cloud Core).
Cuando falta esta ruta, se agota el tiempo de espera de las solicitudes de backend de Looker (Google Cloud Core) al endpoint de token del proveedor de identidad porque la instancia no puede enrutar el tráfico saliente a Internet pública a través del Secure Web Proxy.
Solución
Para resolver este problema, sigue estos pasos para restablecer la configuración de salida controlada y forzar al sistema a volver a crear la ruta de red faltante:
En la consola de Google Cloud , ve a la página Looker:
Haz clic en el nombre de la instancia que deseas actualizar.
Haz clic en Editar.
Expande la sección Conexiones y ve a la sección Configurar conexiones salientes.
Registra todos los nombres de dominio completamente calificados (FQDN) existentes que se enumeran en la sección FQDN global (como los extremos de tu proveedor de identidad).
Borra todos los FQDN que se enumeran en la sección FQDN global.
Desmarca la casilla de verificación Habilitar Looker para conectarse a servicios externos para inhabilitar la salida controlada.
Haz clic en Guardar.
Espera a que finalice la actualización de la instancia y a que se borren los cambios de configuración.
Haz clic de nuevo en Editar.
Expande la sección Conexiones y selecciona la casilla de verificación Habilitar Looker para conectarse a servicios externos.
En la sección FQDN global, vuelve a agregar los FQDN necesarios para tu proveedor de identidad y cualquier otro servicio externo.
Haz clic en Guardar.
El restablecimiento de la salida controlada activa el proceso de aprovisionamiento automatizado para volver a crear la ruta de red looker-swp-route faltante. Una vez que se crea la ruta, se pueden completar las solicitudes de backend salientes al proveedor de identidad.
Error 504 de tiempo de espera de solicitud ascendente
Cuando realizas llamadas a la API, ejecutas consultas de larga duración o te autenticas con un servicio externo en una instancia de Looker (Google Cloud Core), es posible que la solicitud falle con un error de tiempo de espera HTTP 504.
Síntomas
Es posible que recibas un error 504 Upstream Request Timeout o 504 Gateway Timeout en cualquiera de las siguientes situaciones:
- Llamadas o consultas entrantes a la API: Las llamadas a los extremos de Looker, como
/result_format, o las consultas de larga duración en la IU de Looker fallan con un error504después de aproximadamente 30 segundos en una instancia que está frente a un balanceador de cargas. - Autenticación saliente o conexiones de servicios externos: Recibes un error
504en tu navegador después de volver de la página de acceso de un proveedor de identidad o cuando te conectas a un servicio externo en una instancia con la salida controlada habilitada.
Causa
Por lo general, un error de tiempo de espera 504 ocurre por uno de los siguientes motivos:
- Tiempo de espera del servicio de backend del balanceador de cargas para las solicitudes entrantes: Cuando se accede a tu instancia de Looker (Google Cloud Core) a través de un balanceador de cargas de Cloud Load Balancing, el servicio de backend del balanceador de cargas tiene un tiempo de espera del servicio de backend predeterminado de 30 segundos. Si el tiempo de ejecución combinado de la consulta de la base de datos y el tiempo de renderización de la carga útil de Looker superan este límite de tiempo de espera, el balanceador de cargas cierra la conexión y muestra un error HTTP
504. - Dominio saliente bloqueado con salida controlada: La instancia de Looker (Google Cloud Core) no puede acceder a un dominio externo a través de la salida controlada. A diferencia de los errores de ruta faltante, un error
504durante las solicitudes salientes suele significar que existe la ruta de red, pero falta un dominio requerido en la lista de entidades permitidas del FQDN global y se está bloqueando, o bien se agota el tiempo de espera de la solicitud en la puerta de enlace.
Solución
Según la causa del error, completa los pasos de las siguientes secciones para resolver el problema.
Cómo resolver los tiempos de espera del balanceador de cargas en las llamadas o consultas a la API
Para resolver los errores 504 causados por el tiempo de espera del servicio de backend del balanceador de cargas, usa uno o ambos de los siguientes métodos:
Aumenta el tiempo de espera del servicio de backend del balanceador de cargas:
En la consola de Google Cloud , ve a la página Balanceo de cargas:
Haz clic en Backends y, luego, en el nombre del servicio de backend asociado a tu instancia de Looker (Google Cloud Core).
Haz clic en Editar.
En el campo Tiempo de espera, aumenta el valor del tiempo de espera, por ejemplo, de 30 segundos a 300 segundos, para admitir las consultas y las solicitudes a la API de mayor duración.
Haz clic en Guardar.
Usa un flujo de trabajo de API asíncrono: Si llamas a la API de Looker para recuperar datos de consultas y no puedes modificar el tiempo de espera del balanceador de cargas, usa extremos asíncronos en lugar de solicitudes síncronas. Llama a
create_query_taskpara iniciar la consulta de forma asíncrona y, luego, sondeaquery_task_resultspara recuperar los resultados después de que finalice la consulta.
Cómo resolver los tiempos de espera de salida controlada
Para resolver los errores de 504 que se producen cuando Looker (Google Cloud Core) no se puede conectar a un servicio externo o a un proveedor de identidad con la salida controlada habilitada, sigue estos pasos:
- Verifica los FQDNs requeridos: En la consola de Google Cloud , verifica que todos los dominios que requiere tu servicio externo o proveedor de identidad se hayan agregado a la lista de FQDN global. Los flujos de autenticación de OIDC a menudo requieren varios extremos (como los extremos de autorización, token y de información del usuario) que pueden usar diferentes dominios.
- Captura un registro de red: Si el error persiste, captura un registro de red del navegador (archivo HAR) mientras reproduces el problema. Busca en el registro códigos de estado
504o solicitudes HTTP fallidas para identificar los dominios con los que se estableció contacto durante el flujo, pero que no se incluyen en tu lista de FQDN globales. - Restablecer la configuración: Si los FQDN requeridos están presentes, pero las solicitudes siguen agotando el tiempo de espera, sigue los pasos de la Resolución para los errores de autenticación de OpenID Connect y restablece la configuración de salida controlada.
HttpClient:Se agotó el tiempo de espera de ConnectTimeoutError
Cuando se prueba una conexión de OpenID Connect o cualquier otra conexión de red externa en el panel de administración de Looker, es posible que la prueba de conexión falle con un error de tiempo de espera.
Síntomas
Cuando ejecutas una prueba de conexión en el panel de administrador de Looker (por ejemplo, en la página OpenID Connect Authentication), Looker devuelve el siguiente error:
HttpClient:ConnectTimeoutError execution expired
Causa
Este error indica que la instancia de Looker (Google Cloud Core) no tiene la ruta de red necesaria para comunicarse con el servicio externo o el proveedor de identidad. Por lo general, este problema se produce cuando se cumple alguna de las siguientes condiciones:
- Falta la propagación de rutas: Cloud Router usa la configuración predeterminada y no propaga las rutas de la red de VPC (como las rutas anunciadas personalizadas) a la instancia de Looker (Google Cloud Core).
- Falta el NEG de Internet: No se configuró un grupo de extremos de red (NEG) de Internet en tu red de VPC para enrutar el tráfico al servicio externo.
Solución
Para resolver el problema, sigue estos pasos:
- Configura la propagación de rutas de Cloud Router: Verifica que Cloud Router esté configurado para propagar las rutas de red de VPC necesarias a tu instancia de Looker (Google Cloud Core) configurando rutas anunciadas personalizadas.
- Configura un NEG de Internet: Configura un NEG de Internet en tu red de VPC para permitir que la instancia de Looker (Google Cloud Core) enrute el tráfico de salida al proveedor o servicio de identidad externo.
- Verifica el acceso privado a servicios: En el caso de las instancias que usan acceso privado a servicios, asegúrate de que tu red de VPC esté correctamente interconectada con los servicios de Google. Para obtener más información, consulta Accede a servicios externos con acceso privado a los servicios.
Problemas de conexión de Private Service Connect descendente
En el caso de las instancias de Looker (Google Cloud Core) que usan Private Service Connect para las conexiones salientes a los back-ends de bases de datos o los servicios publicados, es posible que encuentres errores de conexión incluso cuando el estado del extremo sea Accepted.
Estos son algunos de los problemas habituales:
- Errores de resolución de nombres de host: Si Looker (Google Cloud Core) muestra un error
Unknown hostcuando se prueba una conexión, verifica que el nombre de host configurado coincida con el registro DNS de tu red privada y que el balanceador de cargas de backend esté en buen estado. - Agota el tiempo de espera de la conexión: Si se agota el tiempo de espera de las conexiones, verifica las reglas de firewall de la VPC para confirmar que se permita el tráfico de entrada desde la subred de NAT de Private Service Connect a los backends del balanceador de cargas.
- Estado pendiente o cerrado: Si el estado del adjunto de servicio es
PendingoClosed, verifica que el proyecto del consumidor esté en la lista de entidades permitidas del adjunto de servicio y que estén configuradas las verificaciones de estado de TCP obligatorias.
Para ver flujos de trabajo de diagnóstico detallados y un árbol de decisión, consulta Solución de problemas de conexiones de Private Service Connect de salida.
Problemas de conectividad y ruta de acceso privado a servicios
En el caso de las instancias de Looker (Google Cloud Core) que usan el acceso privado a servicios, la comunicación saliente a servicios externos requiere una propagación de rutas y una infraestructura de red adecuadas:
- Propagación de rutas: Verifica que Cloud Router esté configurado para propagar rutas de la red de VPC a la instancia de Looker (Google Cloud Core), como rutas anunciadas personalizadas.
- Grupos de extremos de red de Internet: Si tu instancia necesita llegar a extremos externos a través del acceso privado a servicios, asegúrate de que haya un grupo de extremos de red (NEG) de Internet configurado en tu red de VPC.
Si faltan estas rutas o grupos de extremos, las pruebas de conexión a extremos externos fallarán con un error de HttpClient:ConnectTimeoutError execution expired.
Para obtener más información, consulta Accede a servicios externos con acceso privado a los servicios.
Registros y herramientas de diagnóstico
Usa las siguientes herramientas y registros para diagnosticar problemas de redes:
- Cloud Logging: Consulta los registros a nivel de la instancia en Cloud Logging para identificar fallas de conexión y eventos del sistema. Para obtener más información, consulta Visualiza los registros de la instancia.
- Actividad del sistema de Looker: Si puedes acceder como administrador, revisa el panel Actividad del usuario en Actividad del sistema. En este panel, se muestran los errores de acceso recientes, el método de autenticación que se usó y los mensajes de error. Para obtener más información, consulta el panel de actividad del usuario.
- Registros de flujo de VPC: Consulta los registros de flujo de VPC para determinar si el tráfico de red de Looker (Google Cloud Core) llega a tu subred de destino o si las reglas de firewall lo bloquean.
- Atención al cliente de Cloud: Si completaste los pasos para solucionar problemas y el problema persiste, comunícate con Atención al cliente de Cloud para obtener ayuda.