Come posso risolvere i problemi relativi ai controlli di salute di Route 53 non salutari?

6 minuti di lettura
0

I controlli sullo stato di salute di Amazon Route 53 che ho creato sono segnalati come non validi.

Risoluzione

Nota: Se ricevi errori durante l'esecuzione dei comandi AWS Command Line Interface (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia a riga di comando di AWS.

Innanzitutto, determina il motivo dell'ultimo errore di controllo dello stato utilizzando la Console di gestione AWS. Oppure, usa il comando gethealth-check-last-failure-reason nell'interfaccia a riga di comando di AWS.

Quindi, completa i passaggi per la risoluzione dei problemi corrispondenti nella sezione seguente per identificare e risolvere il problema.

Nota: Indipendentemente dal tipo di controllo sanitario, controlla lo stato dell'opzione Inverti lo stato del controllo sanitario. Se questa opzione è impostata su true, Route 53 considera il controllo dello stato non salutare anche se è contrassegnato come integro.

Risoluzione dei problemi relativi a un controllo dello stato di salute che monitora un endpoint

Errore: Il correttore dello stato non è riuscito a stabilire una connessione entro il limite di timeout

L'errore precedente si verifica quando il tentativo dei controllori di integrità di connettersi all'endpoint configurato scade. I tempi minimi per stabilire una connessione sono i seguenti:

  • Per i controlli di integrità TCP, la connessione TCP tra i correttori di integrità e l'endpoint deve avvenire entro dieci secondi.
  • Per i controlli di integrità HTTP e HTTPS, la connessione TCP tra i correttori di integrità e l'endpoint deve avvenire entro quattro secondi. L'endpoint deve rispondere con un codice di stato HTTP 2xx o 3xx entro due secondi dopo aver stabilito una connessione.

Per ulteriori informazioni, consulta In che modo Amazon Route 53 determina se un controllo sanitario è corretto.

Per evitare l'errore di timeout, completa i seguenti passaggi:

  1. Nella configurazione del controllo dello stato, annota il nome di Dominio o l'indirizzo IP dell'endpoint.

  2. Accedere all'endpoint. Verifica che il firewall o il server consentano le connessioni dagli indirizzi IP pubblici della Route 53 per le regioni AWS designate nella configurazione del controllo dello stato. Visualizza gli intervalli IP e cerca il servizio: ROUTE53\ _HEALTHCHECKS. Per le risorse degli endpoint ospitate su AWS, configura i gruppi di sicurezza e gli elenchi di controllo degli accessi alla rete per consentire gli indirizzi IP dei controllori sanitari di Route 53.

  3. Utilizza i seguenti strumenti per testare la connettività con l'endpoint configurato su Internet. Sostituisci i segnaposti nel seguente comando. Nei seguenti comandi di esempio, le variabili con i valori per il tuo caso d'uso.

Test TCP

$ telnet <domain name / IP address> <port>

Test HTTP/HTTPS

$ curl -Ik -w "HTTPCode=%{http_code} TotalTime=%{time_total}\n" <http/https>://<domain-name/ip address>:<port>/<path> -so /dev/null

Confronta l'output dei test precedenti con i valori di timeout per i controlli sanitari. Quindi, conferma che la tua candidatura risponda entro le rispettive tempistiche.

Ad esempio, se esegui il seguente test:

curl -Ik -w "HTTPCode=%{http_code} TotalTime=%{time_total}\n" https://example.com -so /dev/null

Quindi l'output è:

HTTPCode=200 TotalTime=0.001963

In questo esempio, il tempo totale per ottenere risposte con il codice di stato HTTP 200 è 0,001963 secondi.

Per le connessioni HTTP, il tempo di connessione deve essere compreso tra quattro secondi. L'endpoint deve rispondere con il codice di stato HTTP entro due secondi dalla connessione. Il tempo totale è di sei secondi. Un valore superiore a sei secondi indica che l'endpoint risponde lentamente e il controllo dello stato non riesce. In questo caso, controlla il tuo endpoint per assicurarti che risponda entro il periodo di timeout.

Se l'output dei comandi di test mostra un codice HTTP diverso da 200, controlla le seguenti configurazioni:

  • Regole del firewall
  • Gruppi di sicurezza
  • Liste di controllo degli accessi alla rete

Quando controlli le configurazioni precedenti, conferma che il tuo endpoint consenta le connessioni dagli indirizzi IP pubblici della Route 53.

  1. Se attivata, utilizza l'opzione del grafico della latenza nella configurazione del controllo dello stato per controllare il grafico delle metriche per quanto segue:
  • Tempo di connessione TCP
  • Tempo impiegato per il primo byte
  • È ora di completare l'handshake SSL

Per ulteriori informazioni, consulta Monitoraggio della latenza tra i controlli sanitari e l'endpoint.

Nota:

  • Se il grafico della latenza non è attivo, non puoi modificare i controlli di integrità esistenti. È invece necessario creare un nuovo controllo di stato.
  • Se l'indirizzo IP elastico dell'endpoint che stai monitorando viene rilasciato o aggiornato, il controllo dello stato potrebbe non riuscire.

Errore: Avviso SSL handshake\ _failure

L'errore di handshake indica che la negoziazione SSL o TLS con l'endpoint non è riuscita. Quando attivi SNI (solo HTTPS), Route 53 invia il nome host contenuto nel messaggio «client\ _hello» all'endpoint durante la negoziazione TLS. Questa azione consente all'endpoint di rispondere alla richiesta HTTPS con il certificato SSL o TLS applicabile.

Se il nome host monitorato non fa parte del nome comune nel certificato SSL o TLS dell'endpoint, viene visualizzato l'errore «SSL alert handshake\ _failure».

Nota: Per attivare SNI, l'endpoint monitorato deve supportare SNI.

Risolvi i controlli di integrità con la condizione di corrispondenza delle stringhe

Il server endpoint restituisce “200 OK”, ma Route 53 contrassegna il controllo dello stato come non integro

I controllori dello stato devono stabilire una connessione TCP con l'endpoint entro quattro secondi. I controllori sanitari devono quindi ricevere un codice di stato HTTP di 2xx o 3xx nei prossimi due secondi. Quindi, la stringa configurata deve apparire nei primi 5.120 byte del corpo della risposta entro i due secondi successivi. Se la stringa non è presente nei primi 5.120 byte, Route 53 contrassegna il controllo di integrità come non integro.

Per verificare che la stringa compaia nei primi 5.120 byte del corpo della risposta, usa il comando seguente. Sostituisci domain-name, port e $search-string con i tuoi valori.

$ curl -sL <http/https>://<domain-name>:<port> | head -c 5120 | grep $search-string

Risoluzione dei problemi relativi a un controllo dello stato di salute che monitora un allarme CloudWatch

Route 53 non attende che l'allarme di Amazon CloudWatch passi allo stato ALARM.

La situazione precedente si verifica quando Route 53 monitora il flusso di dati metrici anziché lo stato dell'allarme CloudWatch.

Per risolvere questo errore, completa i seguenti passaggi:

  1. Verifica la configurazione del controllo dello stato con DATI INSUFFICIENTI. Se il flusso di dati metrici fornisce informazioni insufficienti per determinare lo stato dell'allarme, lo stato del controllo dello stato dipende dalla configurazione InsufficientDataHealthStatus. Le opzioni di stato per l'impostazione InsufficientDataHealthStatus sono integro, non integro o ultimo stato noto.

  2. Quando aggiorni la configurazione di un allarme CloudWatch, le nuove impostazioni non vengono visualizzate automaticamente nel controllo dello stato associato. Per sincronizzare la configurazione del controllo dello stato con la configurazione aggiornata dell'allarme CloudWatch:

  • Nella console Route 53, scegli Controlli di Stato.
  • Seleziona il controllo dello stato, quindi scegli Sincronizza configurazione.
AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa