Solucionar problemas del servidor web de Airflow

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

En esta página se ofrecen pasos para solucionar problemas habituales del servidor web de Airflow.

El servidor web de Airflow es un componente de Airflow que proporciona una interfaz de usuario para gestionar los DAGs y las tareas de Airflow. En esta página se describen los pasos para solucionar varios problemas relacionados con el acceso al servidor web de Airflow de tu entorno o con las advertencias relacionadas con el servidor web que aparecen en los registros de Airflow.

No se puede acceder a la interfaz de usuario de Airflow cuando los controles de acceso a la red están habilitados

Síntoma: Después de configurar los controles de acceso al servidor web, no se puede acceder a la interfaz de usuario de Airflow. Normalmente, el código de error que se muestra en esta situación es 403.

Información sobre el problema: Cloud Composer admite controles de acceso a la red del servidor web, lo que le permite especificar los intervalos de IP que pueden conectarse al servidor web.

Los problemas para acceder a la interfaz de usuario de Airflow suelen provocar el error 403. Para comprobar si el error está relacionado con los controles de acceso a la red del servidor web, haz lo siguiente:

  1. En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.
  2. Ve a la pestaña Configuración del entorno.
  3. Comprueba si el elemento Control de acceso al servidor web está configurado como Todas las direcciones IP tienen acceso (valor predeterminado).
  4. Si se configura un valor distinto de Todas las direcciones IP tienen acceso (valor predeterminado), se habilita el control de acceso a la red y la visibilidad de la interfaz de usuario de Airflow se limita a los intervalos de direcciones IPv4 e IPv6 proporcionados. En este caso, el problema puede estar relacionado con los controles de acceso a la red del servidor web.

En la mayoría de los casos, el problema se debe a que la IP que has especificado no coincide con la IP que se resuelve para conectarse a la interfaz de usuario de Airflow. Para solucionar el problema, haz lo siguiente:

  1. En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.

  2. Ve a la pestaña Configuración del entorno.

  3. Busca el elemento Control de acceso al servidor web y haz clic en Editar.

  4. En el cuadro de diálogo Control de acceso a la red del servidor web, selecciona Permitir acceso a todas las direcciones IP.

  5. Accede a la interfaz de usuario de Airflow varias veces y comprueba que funciona sin problemas:

    • Si no tienes ningún problema, ve al siguiente paso.

    • Si tienes algún problema en este punto, significa que puede estar relacionado con la configuración de tus permisos de gestión de identidades y accesos. Para obtener más información sobre los permisos de gestión de identidades y accesos de Cloud Composer, consulta el artículo sobre el control de acceso.

  6. En el cuadro de diálogo Control de acceso a la red del servidor web, selecciona Permitir el acceso solo desde direcciones IP específicas.

  7. Añade el intervalo de direcciones IP 0.0.0.0/0 y, a continuación, accede a la interfaz de usuario de Airflow varias veces y comprueba que funciona sin problemas:

    • Si no tienes problemas, la IP con la que te conectas es una dirección IPv4.

    • Si tienes algún problema en este punto, significa que la IP con la que te estás conectando es una dirección IPv6.

  8. Elimina el intervalo de IPs 0.0.0.0/0 y añade el intervalo de IPs ::/0.

    • Si no tienes problemas, la IP con la que te conectas es una dirección IPv6.

    • Si tienes algún problema en este punto, significa que la IP con la que te estás conectando es una dirección IPv4.

  9. Ahora ya sabes si tu dirección resuelta es IPv4 o IPv6.

  10. En función del tipo de dirección, acota los intervalos ::/0 o 0.0.0.0/0 a otros más específicos para verificar el intervalo más amplio cuando deje de funcionar el acceso:

    • Puedes empezar con la máscara de subred amplia (como 192.0.2.0/8) que incluya la dirección que crees que es tu dirección IP.

    • Para determinar tu dirección IP, puedes usar un servicio de terceros que te proporcione tu dirección IP externa cuando visites su página. Puedes buscar estos servicios con la consulta de búsqueda "cuál es mi dirección IP").

Los valores de configuración no se muestran en la página de configuración

Algunos parámetros de configuración de Airflow están ocultos en la página de configuración para evitar el acceso a información potencialmente sensible. Por ejemplo, no se muestran las credenciales para acceder a la base de datos de Airflow.

Para mostrar los campos ocultos, anula la siguiente opción de configuración de Airflow. Te recomendamos que reviertas los cambios después de obtener los valores necesarios.

Sección Clave Valor Notas
webserver expose_config True El valor predeterminado es non-sensitive-only. Asigna el valor False para ocultar todos los parámetros de configuración.

El DAG falla en el servidor web de Airflow o provoca que devuelva un error "502 Gateway Timeout"

Los errores del servidor web pueden deberse a varios motivos. Consulta los registros de airflow-webserver en Cloud Logging para determinar la causa del error 502 gateway timeout.

Cálculo de cargas pesadas

Esta sección solo se aplica a Cloud Composer 1.

A diferencia de los nodos de trabajador y de programador, cuyos tipos de máquinas se pueden personalizar para que tengan una mayor capacidad de CPU y memoria, el servidor web usa un tipo de máquina fijo, lo que puede provocar errores de análisis de DAG si el cálculo del tiempo de análisis es demasiado pesado.

Ten en cuenta que el servidor web tiene 2 vCPUs y 2 GB de memoria. El valor predeterminado de core-dagbag_import_timeout es 30 segundos. Este valor de tiempo de espera define el límite superior del tiempo que Airflow dedica a cargar un módulo de Python en la carpeta /dags.

Permisos incorrectos

Esta sección solo se aplica a Cloud Composer 1.

El servidor web no se ejecuta con la misma cuenta de servicio que los workers y el programador. Por lo tanto, es posible que los trabajadores y el programador puedan acceder a recursos gestionados por el usuario a los que el servidor web no puede acceder.

Te recomendamos que evites acceder a recursos no públicos durante el análisis de DAGs. A veces, esto es inevitable y tendrás que conceder permisos a la cuenta de servicio del servidor web. El nombre de la cuenta de servicio se deriva del dominio de tu servidor web. Por ejemplo, si el dominio es example-tp.appspot.com, la cuenta de servicio es example-tp@appspot.gserviceaccount.com.

Errores de DAG

Esta sección solo se aplica a Cloud Composer 1.

El servidor web se ejecuta en App Engine y está separado del clúster de GKE de tu entorno. El servidor web analiza los archivos de definición de DAG y se puede producir un 502 gateway timeout si hay errores en el DAG. Airflow funciona con normalidad sin un servidor web funcional si el DAG problemático no interrumpe ningún proceso que se esté ejecutando en GKE. En este caso, puedes usar gcloud composer environments run para obtener detalles de tu entorno y como solución alternativa si el servidor web deja de estar disponible.

En otros casos, puedes ejecutar el análisis de DAGs en GKE y buscar DAGs que generen excepciones fatales de Python o que agoten el tiempo de espera (30 segundos de forma predeterminada). Para solucionar problemas, conéctate a una shell remota en un contenedor de trabajador de Airflow y comprueba si hay errores de sintaxis. Para obtener más información, consulta Probar DAGs.

Siguientes pasos