Come faccio a risolvere e correggere gli errori del controllo dell'integrità degli Application Load Balancer?

8 minuti di lettura
0

I target registrati nell’Application Load Balancer non sono integri. Come faccio a capire perché i target non superano i controlli dell’integrità?

Risoluzione

Per risolvere e correggere gli errori del controllo dell'integrità dell’Application Load Balancer:

  1. Controlla l’integrità dei target per trovare il codice del motivo e la descrizione del problema.
  2. Segui i passaggi seguenti per risolvere l'errore ricevuto.

Elb.InitialHealthChecking

Descrizione: controlli dell’integrità iniziali in corso.

Risoluzione: per poter ricevere richieste dal sistema di bilanciamento del carico, il target deve superare i controlli dell’integrità iniziali. Attendi che il target superi i controlli dell’integrità iniziali e verifica nuovamente il suo stato di integrità.

Elb.RegistrationInProgress

Descrizione: la registrazione del target è in corso.

Risoluzione: il sistema di bilanciamento del carico inizia a instradare le richieste verso il target non appena il processo di registrazione viene completato e il target supera i controlli dell’integrità iniziali.

Target.DeregistrationInProgress

Descrizione: l’annullamento della registrazione del target è in corso.

Risoluzione: quando viene annullata la registrazione di un target, il sistema di bilanciamento del carico attende il completamento delle richieste in transito. Questo procedimento è noto come ritardo di annullamento della registrazione. Per impostazione predefinita, Elastic Load Balancing attende 300 secondi prima di completare il processo di annullamento della registrazione. Tuttavia è possibile personalizzare questo valore.

Se un target in fase di annullamento della registrazione non presenta richieste in transito o connessioni attive, Elastic Load Balancing annulla immediatamente la registrazione senza attendere il termine del ritardo di annullamento della registrazione. Lo stato iniziale di un target in fase di annullamento della registrazione è in svuotamento. Una volta trascorso il ritardo di annullamento della registrazione, il processo di annullamento della registrazione viene completato e lo stato del target è inutilizzato. Se il target fa parte di un gruppo con dimensionamento automatico, è possibile terminarlo e sostituirlo.

Target.FailedHealthChecks

Descrizione: il sistema di bilanciamento del carico ha ricevuto un errore durante la creazione di una connessione al target oppure il formato della risposta del target non è valido.

Risoluzione:

  • Verifica che l'applicazione sia in esecuzione. Usa il comando service per verificare lo stato dei servizi per i target Linux. Per i target Windows, controlla la scheda Servizi in Gestione attività Windows. Avvia il servizio se risulta interrotto. Se il servizio non viene riconosciuto, verifica che il servizio richiesto sia installato.
  • Verifica che il target sia in ascolto del traffico sulla porta di controllo dell’integrità. Per i target Linux, usa il comando ss per verificare su quali porte il server è in ascolto. Per i target Windows, puoi usare il comando netstat.
  • Verifica che l'applicazione risponda correttamente alle richieste di controllo dell’integrità inviate dal sistema di bilanciamento del carico. L'esempio seguente mostra una tipica richiesta di controllo dell’integrità di Application Load Balancer che i target devono restituire con una risposta HTTP valida. Il valore dell'intestazione Host contiene l'indirizzo IP privato del target, seguito dalla porta del controllo dell’integrità. User-Agent è impostato su ELB-HealthChecker/2.0. Il carattere di terminazione di riga per i campi di intestazione del messaggio è la sequenza CRLF e l'intestazione termina alla prima riga vuota seguita da un CRLF. Se necessario, aggiungi un host virtuale predefinito alla configurazione del server Web per ricevere le richieste di controllo dell’integrità.
GET / HTTP/1.1
Host: 10.0.0.1:80
Connection: close
User-Agent: ELB-HealthChecker/2.0
Accept-Encoding: gzip, compressed
  • Il tipo di target del gruppo target determina a quale interfaccia di rete il sistema di bilanciamento del carico invia i controlli dell’integrità sui target. Ad esempio, è possibile registrare gli ID delle istanze, gli indirizzi IP e le funzioni Lambda. Se il tipo di target è l'ID dell'istanza, il sistema di bilanciamento del carico invia le richieste di controllo dell’integrità all'interfaccia di rete principale dei target. Se il tipo di target è l'indirizzo IP, il sistema di bilanciamento del carico invia le richieste di controllo dell’integrità all'interfaccia di rete associata all'indirizzo IP corrispondente. Se ai target sono collegate più interfacce, verifica che l'applicazione sia in ascolto sull'interfaccia di rete corretta.
  • La policy di sicurezza ELBSecurityPolicy-2016-08 viene utilizzata per le connessioni ai target e i controlli dell’integrità HTTPS. Verifica che il target fornisca un certificato del server e una chiave nel formato specificato nella policy di sicurezza. Verifica inoltre che il target supporti una o più crittografie corrispondenti e un protocollo fornito dal sistema di bilanciamento del carico per stabilire l'handshake TLS.

Target.InvalidState

Descrizione: lo stato del target è interrotto o terminato.

Risoluzione: se il target è un'istanza Amazon Elastic Compute Cloud (Amazon EC2), apri la console Amazon EC2. Quindi, verifica che l'istanza sia in esecuzione. Avvia l'istanza se necessario.

Target.IpUnusable

Descrizione: l'indirizzo IP non può essere utilizzato come target perché è utilizzato da un sistema di bilanciamento del carico.

Risoluzione: durante la creazione di un gruppo target, è necessario specificare il tipo di target. Se il tipo di target è IP, non è possibile scegliere un indirizzo IP già utilizzato da un sistema di bilanciamento del carico.

Target.NotInUse

Descrizione: il gruppo target non è utilizzato da alcun sistema di bilanciamento del carico o il target si trova in una zona di disponibilità che non è abilitata per il sistema di bilanciamento del carico.

Risoluzione:

  • Controlla il gruppo target e verifica che sia configurato per ricevere traffico dal sistema di bilanciamento del carico.
  • Verifica che la zona di disponibilità del target sia abilitata per il sistema di bilanciamento del carico.

Target.NotRegistered

Descrizione: Il target non è registrato nel gruppo target.

Risoluzione: verifica che il target sia registrato nel gruppo target.

Target.ResponseCodeMismatch

Descrizione: i controlli dell’integrità non hanno restituito il codice HTTP previsto.

Risoluzione:

  • I codici di esito positivo sono i codici HTTP da utilizzare per verificare la corretta risposta di un target. È possibile specificare valori o intervalli di valori compresi tra 200 e 499. Il valore predefinito è 200. Controlla la configurazione dei controlli dell’integrità del sistema di bilanciamento del carico per verificare i codici di esito positivo previsti. Quindi, controlla i log di accesso al server Web per accertarti che vengano restituiti i codici di esito positivo previsti. Modifica il valore del codice di esito positivo se necessario.
  • Verifica che il percorso ping sia valido. Il percorso ping è la destinazione sui target per i controlli dell’integrità. Assicurati di specificare un URI valido (/path?query). Il valore predefinito è /. Modifica il valore del percorso ping se necessario.

Target.Timeout

Descrizione: richiesta scaduta.

Risoluzione: se riesci a connetterti, la pagina di destinazione potrebbe non rispondere prima del termine periodo di timeout del controllo dell’integrità. La maggior parte dei server Web, come NGINX e IIS, consente di registrare il tempo impiegato dal server per rispondere. Se le richieste di controllo dell’integrità impiegano più tempo del periodo di timeout configurato:

Se non riesci a connetterti:

Informazioni correlate

Troubleshoot your Application Load Balancers