Como resolver problemas no servidor da Web do Airflow

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Nesta página, você encontra informações e etapas de solução de problemas comuns do servidor da Web do Airflow.

O servidor da Web do Airflow é um componente que fornece uma interface do usuário para gerenciar DAGs e tarefas do Airflow. Esta página descreve as etapas de solução de problemas para vários problemas de acesso ao servidor da Web do Airflow do seu ambiente ou para avisos relacionados ao servidor da Web que aparecem nos registros do Airflow.

Não é possível acessar a interface do Airflow quando os controles de acesso à rede estão ativados

Sintomas: depois que os controles de acesso ao servidor da Web são configurados, não é possível acessar a interface do Airflow. Normalmente, o código de erro exibido nessa situação é 403.

Informações sobre o problema: o Cloud Composer oferece suporte a controles de acesso à rede do servidor da Web, que permitem especificar intervalos de IP autorizados a se conectar ao servidor da Web.

Problemas com o acesso à interface do Airflow geralmente resultam no erro 403. Para verificar se o erro está relacionado aos controles de acesso à rede do servidor da Web, faça o seguinte:

  1. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
  2. Acesse a guia Configuração do ambiente.
  3. Verifique se o item Controle de acesso ao servidor da Web está definido como Todos os endereços IP têm acesso (padrão).
  4. Se um valor diferente de Todos os endereços IP têm acesso (padrão) for configurado, o controle de acesso à rede será ativado e a visibilidade da interface do Airflow será limitada aos intervalos de endereços IPv4 e IPv6 fornecidos. Nesse caso, o problema pode estar relacionado aos controles de acesso à rede do servidor da Web.

Na maioria dos casos, a causa do problema é a incompatibilidade entre o IP pretendido especificado e o IP que é realmente resolvido para se conectar à interface do Airflow. Para resolver o problema, faça o seguinte:

  1. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  2. Acesse a guia Configuração do ambiente.

  3. Encontre o item Controle de acesso ao servidor da Web e clique em Editar.

  4. Na caixa de diálogo Controle de acesso à rede do servidor da Web, selecione Permitir acesso de todos os endereços IP.

  5. Acesse a interface do Airflow várias vezes e verifique se ela funciona sem problemas:

    • Se não houver problemas, siga para a próxima etapa.

    • Se você tiver um problema nesse ponto, isso significa que ele pode estar relacionado à configuração das permissões do IAM. Para mais informações sobre as permissões do IAM para o Cloud Composer, consulte Controle de acesso.

  6. Na caixa de diálogo Controle de acesso à rede do servidor da Web, selecione Permitir acesso apenas de endereços IP específicos.

  7. Adicione o intervalo de IP 0.0.0.0/0, acesse a interface do Airflow várias vezes e verifique se ele funciona sem problemas:

    • Se não houver problemas, o IP com que você está se conectando é um endereço IPv4.

    • Se você tiver um problema nesse ponto, significa que o IP com que você está se conectando é um endereço IPv6.

  8. Exclua o intervalo de IP 0.0.0.0/0 e adicione o intervalo de IP ::/0.

    • Se não houver problemas, o IP com que você está se conectando é um endereço IPv6.

    • Se você tiver um problema nesse ponto, significa que o IP com que você está se conectando é um endereço IPv4.

  9. Agora você determinou se o endereço resolvido é IPv4 ou IPv6.

  10. Dependendo do tipo de endereço, restrinja os intervalos ::/0 ou 0.0.0.0/0 a intervalos mais específicos para verificar o intervalo mais amplo quando o acesso parar de funcionar:

    • Você pode começar com a máscara de sub-rede ampla (como 192.0.2.0/8) que inclui o endereço que você supõe ser seu endereço IP.

    • Para determinar seu endereço IP, use um serviço de terceiros que fornece seu endereço IP externo quando você visitar a página. Você pode pesquisar esses serviços com a consulta de pesquisa "qual é meu endereço IP?".

Os valores de configuração não aparecem na página de configuração

Alguns parâmetros de configuração do Airflow estão ocultos na página de configuração para evitar o acesso a informações potencialmente sensíveis. Por exemplo, as credenciais para acessar o banco de dados do Airflow não são mostradas.

Para mostrar campos ocultos, substitua a seguinte opção de configuração do Airflow. Recomendamos reverter as mudanças depois de receber os valores necessários.

Seção Chave Valor Observações
webserver expose_config True O valor padrão é non-sensitive-only. Defina como False para ocultar todos os parâmetros de configuração.

O DAG trava o servidor da Web do Airflow ou faz com que ele retorne um erro "502 gateway timeout"

As falhas do servidor da Web podem ocorrer por diversos motivos. Verifique os registros airflow-webserver no Cloud Logging para determinar a causa do erro 502 gateway timeout.

Computação de carga pesada

Esta seção se aplica apenas ao Cloud Composer 1.

Ao contrário dos nós de worker e de programador, que têm tipos de máquina que podem ser personalizados para ter maior capacidade de CPU e de memória, o servidor da Web usa um tipo de máquina fixo, o que pode levar a falhas de análise do DAG se a computação executada durante esse processo for muito pesada.

O servidor da Web tem duas vCPUs e 2 GB de memória. O valor padrão para core-dagbag_import_timeout é de 30 segundos. Esse valor de tempo limite define o limite máximo de quanto tempo o Airflow gasta carregando um módulo do Python na pasta /dags.

Permissões incorretas

Esta seção se aplica apenas ao Cloud Composer 1.

O servidor da Web não é executado na mesma conta de serviço que os workers e o programador. Assim, eles podem acessar recursos gerenciados pelo usuário a que o servidor não tem acesso.

Recomendamos que você evite acessar recursos que não sejam públicos durante a análise do DAG. Às vezes, isso é inevitável, e você precisará conceder permissões à conta de serviço do servidor da Web. O nome da conta de serviço é derivado do domínio do servidor da Web. Por exemplo, se o domínio for example-tp.appspot.com, a conta de serviço será example-tp@appspot.gserviceaccount.com.

Erros do DAG

Esta seção se aplica apenas ao Cloud Composer 1.

O servidor da Web é executado no App Engine e fica separado do cluster do GKE do ambiente. O servidor da Web analisa os arquivos de definição do DAG, e um 502 gateway timeout pode ocorrer se houver erros no DAG. O Airflow funciona normalmente sem um servidor da Web funcional se o DAG problemático não interromper nenhum processo executado no GKE. Nesse caso, é possível usar gcloud composer environments run para recuperar detalhes do ambiente e como uma solução alternativa se o servidor da Web ficar indisponível.

Em outros casos, é possível executar a análise do DAG no GKE, além de pesquisar os DAGs que causam exceções fatais do Python ou esse tempo limite (padrão de 30 segundos). Para resolver os problemas, conecte-se a um shell remoto em um contêiner de worker do Airflow e teste os erros de sintaxe. Para mais informações, consulte Como testar DAGs.

A seguir