Efeitos Adversos Comuns de Configurações Incorretas da Verificação de Integridade do Balanceador de Carga

Saiba mais sobre os efeitos colaterais comuns associados à configuração incorreta de verificações de integridade do balanceador de carga.

Estes são os efeitos colaterais comuns da configuração incorreta da verificação de integridade e podem ser usados para diagnosticar e solucionar problemas.

  • Porta errada

    Nesse cenário, todos os servidores de backend são reportados como não íntegros. Se os servidores de backend não tiverem problemas, talvez você tenha cometido um erro ao definir a porta. A porta deve ser uma que esteja fazendo listening e tenha permitido tráfego no backend.

    Erro de Registro em Log do OCI: errno:EHOSTUNREACH, syscall:connect

  • Caminho incorreto

    Nesse cenário, todos os servidores de backend são reportados como não íntegros. Se os servidores de backend não tiverem problemas, talvez você tenha cometido um erro ao definir o caminho da verificação de integridade HTTP necessário para corresponder a um aplicativo real no backend. Nesse cenário, você pode usar o utilitário curl para testar em um sistema na mesma rede. Por exemplo: $ curl -i http://backend_ip_address/health

    Você recebe o código de status configurado na resposta Erro de Registro em Log do OCI: "msg":"invalid statusCode","statusCode":404,"expected":"200".

  • Protocolo incorreto

    Nesse cenário, todos os servidores de backend são reportados como não íntegros. Se os servidores de backend não tiverem problemas, talvez você tenha cometido um erro ao definir o protocolo necessário para corresponder ao protocolo que está fazendo listening no backend. Por exemplo: Só suportamos verificações de integridade TCP e HTTP. Se o seu backend estiver usando HTTPS, você precisará usar TCP como protocolo.

    Erro de Registro em Log do OCI: code:EPROTO, errno:EPROTO

  • Código de status incorreto

    Nesse cenário, todos os servidores de backend são reportados como não íntegros. Se os servidores de backend não tiverem problemas, para uma verificação de integridade HTTP, talvez você tenha cometido um erro ao definir o código de status para corresponder ao código de status real que está sendo retornado do backend. Um cenário comum é quando um backend retorna um código de status 302, mas você está esperando um código de status 200. Esse resultado provavelmente é o backend que envia você para uma página de acesso ou outro local no servidor. Nesse cenário, você pode corrigir o backend para retornar o código esperado ou usar 302 na configuração de verificação de integridade.

    Erro de Registro no OCI: msg:invalid statusCode, statusCode:nnn,expected:200 em que nnn será o código de status retornado.

  • Padrão Regex Incorreto

    Todos os servidores de backend se reportam como não íntegros. Se os servidores de backend não tiverem problemas, talvez você tenha cometido um erro ao definir um padrão regex incorreto consistente com o corpo ou o backend não está retornando o corpo esperado. Neste cenário, você pode alterar o backend para corresponder ao padrão ou corrigir o padrão para corresponder ao backend. A seguir estão alguns exemplos de padrões específicos.
    • Qualquer Conteúdo - .*

    • Uma página que retorna o valor Status:OK: - Status:OK:.*

    • Erro de Registro em Log do OCI: response match result: failed

  • Grupos de Segurança de Rede, Listas de Segurança ou Firewall Local Configurados Incorretamente

Todos ou alguns servidores de backend se reportam como não íntegros. Se os servidores de backend não tiverem problemas, você poderá ter configurado incorretamente os grupos de segurança de rede, as listas de segurança ou os firewalls locais (como firewalld, iptables ou SELinux. Nesse cenário, você pode usar o utilitário curl ou netcat para testar em um sistema que pertence à mesma sub-rede e ao mesmo grupo de segurança de rede que a instância HTTP do balanceador de carga. Por exemplo: $ curl -i http://backend_ip_address/health TCP e nc -zvw3 backend_ip_address 443.

Você pode verificar seu firewall local usando o seguinte comando: firewall-cmd --list-all --zone=public.. Se o firewall não tiver as regras esperadas, você poderá usar um conjunto de comandos como este para adicionar o serviço (este exemplo é para a porta HTTP 80):

  • firewall-cmd --zone=public --add-service=http

  • firewall-cmd --zone=public --permanent --add-service=http