Como solucionar problemas do servidor da Web do Airflow

Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)

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

O servidor da Web do Airflow é um componente do Airflow 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árias questões relacionadas ao acesso ao servidor da Web do Airflow do seu ambiente ou para avisos relacionados ao servidor da Web visíveis nos registros do Airflow.

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

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

Informações sobre o problema: o Airflow gerenciado oferece suporte a controles de acesso à rede do servidor da Web, que permitem especificar intervalos de IP que podem 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) estiver 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 é 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 você não tiver problemas, continue para a próxima etapa.

    • Se você tiver um problema nesse momento, isso significa que o problema pode estar relacionado à configuração de permissões do IAM. Para mais informações sobre as permissões do IAM para o Airflow gerenciado, 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 ela funciona sem problemas:

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

    • Se você tiver um problema nesse momento, isso 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 você não tiver problemas, o IP com que você está se conectando é um endereço IPv6.

    • Se você tiver um problema nesse momento, isso 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ê considera ser seu endereço IP.

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

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

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

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 502 gateway timeout erro.

Computação de carga pesada

Esta seção se aplica apenas ao Airflow gerenciado (Geração 1 legada).

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

Observe que 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 Airflow gerenciado (Geração 1 legada).

O servidor da Web não é executado na mesma conta de serviço que os workers e o programador. Assim, os workers e o escalonador podem acessar recursos gerenciados pelo usuário a que o servidor da web 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 Airflow gerenciado (Geração 1 legada).

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 ativo, contanto que o DAG problemático não interrompa 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