Effetti collaterali comuni delle configurazioni errate del controllo dello stato del load balancer
Informazioni sugli effetti collaterali comuni associati alla configurazione errata dei controlli dello stato del load balancer.
Di seguito sono riportati gli effetti collaterali comuni della configurazione errata del controllo dello stato, che possono essere utilizzati per la risoluzione dei problemi.
-
Porta errata
In questo scenario, tutti i server backend vengono segnalati come in cattivo stato. Se i server backend non presentano problemi, è possibile che si sia verificato un errore durante l'impostazione della porta. La porta deve essere una porta in ascolto e che ha consentito il traffico sul backend.
Errore di log OCI:
errno:EHOSTUNREACH, syscall:connect
-
Percorso errato
In questo scenario, tutti i server backend vengono segnalati come in cattivo stato. Se i server backend non presentano problemi, è possibile che si sia verificato un errore durante l'impostazione del percorso per il controllo dello stato HTTP necessario per la corrispondenza di un'applicazione effettiva nel backend. In questo scenario è possibile utilizzare la utility
curl
per eseguire il test da un sistema della stessa rete. Ad esempio:$ curl -i http://backend_ip_address/health
Si riceve il codice di stato configurato nella risposta Errore di log OCI:
"msg":"invalid statusCode","statusCode":404,"expected":"200".
-
Protocollo errato
In questo scenario, tutti i server backend vengono segnalati come in cattivo stato. Se i server backend non presentano problemi, è possibile che si sia verificato un errore durante l'impostazione del protocollo che deve corrispondere al protocollo in ascolto sul backend. Ad esempio: sono supportati solo i controlli dello stato TCP e HTTP. Se il backend in uso utilizza HTTPS, sarà necessario utilizzare TCP come protocollo.
Errore di log OCI:
code:EPROTO, errno:EPROTO
-
Codice stato errato
In questo scenario, tutti i server backend vengono segnalati come in cattivo stato. Se i server backend non presentano problemi, per un controllo dello stato HTTP è possibile che si sia verificato un errore durante l'impostazione del codice di stato corrispondente al codice di stato effettivo restituito dal backend. Uno scenario comune è quando un backend restituisce un codice di stato
302
, ma si prevede un codice di stato200
. Questo risultato è probabilmente il backend che ti invia a una pagina di accesso o a un'altra posizione sul server. In questo scenario, è possibile correggere il backend in modo che restituisca il codice previsto oppure utilizzare302
nella configurazione di controllo dello stato.Errore di registrazione OCI:
msg:invalid statusCode, statusCode:nnn,expected:200
dovennn
è il codice di stato restituito. -
Pattern Regex errato
Tutti i server backend presentano un report non salutare. Se i server backend non presentano problemi, è possibile che si sia verificato un errore durante l'impostazione di un pattern regex errato coerente con il corpo oppure che il backend non restituisca il corpo previsto. In questo scenario, è possibile modificare il backend in modo che corrisponda al pattern oppure correggere il pattern in modo che corrisponda al backend. Di seguito sono riportati alcuni esempi di pattern specifici.-
Qualsiasi contenuto -
.*
-
Una pagina che restituisce il valore
Status:OK:
-Status:OK:.*
-
Errore di log OCI:
response match result: failed
-
-
Gruppi di sicurezza di rete, liste di sicurezza o firewall locale con configurazione errata
Tutti o alcuni server backend sono considerati in cattivo stato. Se i server backend non presentano problemi, è possibile che sia stato configurato in modo non corretto i gruppi di sicurezza di rete, le liste di sicurezza o i firewall locali, ad esempio firewalld
, iptables
o SELinux
. In questo scenario, è possibile utilizzare le utility curl
o netcat
per eseguire il test da un sistema che appartiene alla stessa subnet e allo stesso gruppo di sicurezza di rete dell'istanza HTTP del load balancer. Ad esempio: $ curl -i http://backend_ip_address/health TCP
e nc -zvw3 backend_ip_address 443
.
È possibile controllare il firewall locale utilizzando il comando seguente: firewall-cmd --list-all --zone=public.
. Se nel firewall mancano le regole previste, è possibile utilizzare un set di comandi come questo per aggiungere il servizio (esempio per la porta HTTP 80):
-
firewall-cmd --zone=public --add-service=http
-
firewall-cmd --zone=public --permanent --add-service=http