

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Controlli di integrità per i gruppi target di Application Load Balancer
<a name="target-group-health-checks"></a>

L'Application Load Balancer invia periodicamente delle richieste alle destinazioni registrate per testare il loro stato. Questi test sono chiamati *controlli dello stato*.

Ogni nodo del sistema di bilanciamento del carico instrada le richieste solamente sui target integri all'interno delle zone di disponibilità abilitate per il sistema di bilanciamento del carico. Ogni nodo del sistema di bilanciamento del carico controlla lo stato dei target, utilizzando le impostazioni di controllo dello stato per i gruppi di target con i quali il target è registrato. Una volta che un target viene registrato, deve essere sottoposto a un controllo dello stato per essere considerato integro. Dopo il completamento di ciascun controllo dello stato, il nodo del sistema di bilanciamento del carico chiude la connessione definita per il controllo dello stato.

Se un gruppo di destinazione contiene solo destinazioni non integre registrate, il sistema di bilanciamento del carico instrada le richieste a tutte le destinazioni, a prescindere dal loro stato di integrità. Questo significa che tutte le destinazioni non superano i controlli dell'integrità allo stesso tempo in tutte le zone di disponibilità abilitate, nel sistema di bilanciamento del carico si verifica un fail open. L'effetto del fail-open è quello di consentire il traffico verso tutte le destinazioni in tutte le zone di disponibilità abilitate, a prescindere dal loro stato di integrità, sulla base dell'algoritmo del sistema di bilanciamento del carico.

I controlli sanitari non supportano WebSockets.

Per ulteriori informazioni, consulta [Integrità del gruppo di destinazione](load-balancer-target-groups.md#target-group-health).

Puoi utilizzare i log dei controlli di integrità per acquisire informazioni dettagliate sui controlli di integrità effettuati sugli obiettivi registrati per il tuo sistema di bilanciamento del carico e archiviarli come file di registro in Amazon S3. Puoi utilizzare questi log dei controlli sanitari per risolvere problemi con i tuoi obiettivi. Per ulteriori informazioni, consulta [Registri Health Check](load-balancer-health-check-logs.md).

**Topics**
+ [Impostazioni del controllo dello stato](#health-check-settings)
+ [Stato di integrità della destinazione](#target-health-states)
+ [Codici di motivo di controllo dello stato](#target-health-reason-codes)
+ [Controlla lo stato del bersaglio](check-target-health.md)
+ [Aggiornare le impostazioni del controllo dello stato](modify-health-check-settings.md)

## Impostazioni del controllo dello stato
<a name="health-check-settings"></a>

È possibile configurare controlli dell'integrità per le destinazioni all'interno di un gruppo di destinazioni come viene descritto nella tabella seguente. I nomi delle impostazioni utilizzati nella tabella sono i nomi usati nell'API. Il load balancer invia una richiesta di controllo dello stato di salute a ciascun target registrato ogni **HealthCheckIntervalSeconds**secondo, utilizzando la porta, il protocollo e il percorso di controllo dello stato specificati. Ogni richiesta di controllo dello stato è indipendente e il risultato dura per l'intero intervallo. Il tempo di risposta del target non influenza l'intervallo per la richiesta di controllo dello stato successiva. Se i controlli di integrità superano gli errori **UnhealthyThresholdCount**consecutivi, il load balancer mette fuori servizio l'obiettivo. Quando i controlli di integrità superano i successi **HealthyThresholdCount**consecutivi, il load balancer rimette in servizio l'obiettivo.

Tieni presente che quando annulli la registrazione di un obiettivo, questa diminuisce **HealthyHostCount**ma non aumenta. **UnhealthyHostCount**


| Impostazione | Description | 
| --- | --- | 
| **HealthCheckProtocol** |  Il protocollo utilizzato dal load balancer durante l'esecuzione dei controlli dello stato sui target. Per gli Application Load Balancer i protocolli possibili sono HTTP e HTTPS. L'impostazione predefinita è il protocollo HTTP. Questi protocolli utilizzano il metodo HTTP GET per inviare richieste di controllo dell'integrità.  | 
| **HealthCheckPort** |  La porta utilizzata dal load balancer durante l'esecuzione dei controlli dello stato sui target. L'impostazione predefinita è quella di utilizzare la porta sulla quale ciascun target riceve il traffico dal sistema di bilanciamento del carico.  | 
| **HealthCheckPath** |  La destinazione dei controlli dell'integrità sulle destinazioni. Se la versione del protocollo è HTTP/1.1 o HTTP/2, specificare un URI valido (/*path*?*query*). Il valore di default è /. Se la versione del protocollo è gRPC, specificare il percorso di un metodo personalizzato per il controllo dell'integrità con il formato `/package.service/method`. Il valore predefinito è `/AWS.ALB/healthcheck`.  | 
| **HealthCheckTimeoutSeconds** |  Il periodo di tempo, in secondi, durante il quale l'assenza di risposta da un target indica che un controllo dello stato non è riuscito. L'intervallo è compreso tra 2 e 120 secondi. L'impostazione predefinita è 5 secondi se il tipo di destinazione è `instance` oppure `ip` e 30 secondi se il tipo di destinazione è `lambda`.  | 
| **HealthCheckIntervalSeconds** |  Il periodo di tempo approssimativo, in secondi, tra i controlli dell'integrità di una singola destinazione. L'intervallo è compreso tra 5 e 300 secondi. L'impostazione predefinita è 30 secondi se il tipo di destinazione è `instance` oppure `ip` e 35 secondi se il tipo di destinazione è `lambda`.  | 
| **HealthyThresholdCount** |  Il numero di controlli dello stato andati a buon fine consecutivi necessari prima di considerare integro un target non integro. L'intervallo è compreso tra 2 e 10. Il predefinito è 5.  | 
| **UnhealthyThresholdCount** |  Numero di controlli dello stato consecutivi non andati a buon fine necessari prima di considerare un target non integro. L'intervallo è compreso tra 2 e 10. Il valore predefinito è 2.  | 
| **Matcher** |  I codici da utilizzare durante la verifica di una risposta con esito positivo ricevuta da una destinazione. Tali codici si chiamano **Codici di successo** nella console. Se la versione del protocollo è HTTP/1.1 o HTTP/2, i valori possibili sono compresi tra 200 e 499. Puoi specificare più valori (ad esempio "200,202") o un intervallo di valori (ad esempio "200-299"). Il valore predefinito è 200. Se la versione del protocollo è gRPC, i valori possibili sono compresi tra 0 e 99. Puoi specificare più valori (ad esempio "0,1") o un intervallo di valori (ad esempio "0-5"). Il valore predefinito è 12.  | 

## Stato di integrità della destinazione
<a name="target-health-states"></a>

Prima che il sistema di bilanciamento del carico invii una richiesta di controllo dello stato a un target, è necessario registrarlo con un gruppo target, specificare il gruppo target in una regola del listener e assicurarsi che la zona di disponibilità del target sia abilitata per il sistema di bilanciamento del carico. Prima che un target possa ricevere richieste dal sistema di bilanciamento del carico, deve superare i controlli dello stato iniziali. Una volta che il target ha superato i controlli dello stato iniziali, il suo stato è `Healthy`.

La tabella seguente descrive i valori possibili per lo stato di un target registrato.


| Valore | Description | 
| --- | --- | 
| `initial` |  È in corso il processo di registrazione del target o di esecuzione dei controlli dello stato iniziali del target da parte del sistema di bilanciamento del carico. Codici di motivo correlati: `Elb.RegistrationInProgress` \$1 `Elb.InitialHealthChecking`  | 
| `healthy` |  Il target è integro. Codici di motivo correlati: Nessuno  | 
| `unhealthy` |  Il target non ha risposto a un controllo di stato o il controllo dello stato non è andato a buon fine. Codici di motivo correlati: `Target.ResponseCodeMismatch` \$1 `Target.Timeout` \$1 `Target.FailedHealthChecks` \$1 `Elb.InternalError`  | 
| `unused` |  La destinazione non è registrata con un gruppo di destinazione, il gruppo di destinazione non è utilizzato in una regola del listener, la destinazione è in una zona di disponibilità non abilitata oppure è nello stato arrestato o terminato. Codici di motivo correlati: `Target.NotRegistered` \$1 `Target.NotInUse` \$1 `Target.InvalidState` \$1 `Target.IpUnusable`  | 
| `draining` |  Il target viene revocato e la connection draining è in corso. Codice di motivo correlato: `Target.DeregistrationInProgress`  | 
| `unavailable` |  I controlli dello stato sono disabilitati per il gruppo di destinazione. Codice di motivo correlato: `Target.HealthCheckDisabled`  | 

## Codici di motivo di controllo dello stato
<a name="target-health-reason-codes"></a>

Se lo stato di una destinazione è un valore diverso da `Healthy`, l'API restituisce un codice di motivo e una descrizione del problema e la console visualizza la stessa descrizione. I codici di motivo che iniziano con `Elb` vengono creati nella parte relativa al sistema di bilanciamento del carico e i codici di motivo che iniziano con `Target` vengono creati nella parte relativa ai target. Per ulteriori informazioni sulle possibili cause per cui un controllo dell'integrità non va a buon fine, consulta [Risoluzione dei problemi](load-balancer-troubleshooting.md#target-not-inservice).


| Codice di motivo | Description | 
| --- | --- | 
| `Elb.InitialHealthChecking` |  Controlli dello stato iniziali in corso  | 
| `Elb.InternalError` |  I controlli dello stato non andati a buon fine a causa di un errore interno  | 
| `Elb.RegistrationInProgress` |  La registrazione del target è in corso  | 
| `Target.DeregistrationInProgress` |  La revoca del target è in corso  | 
| `Target.FailedHealthChecks` |  Controlli dello stato non andati a buon fine  | 
| `Target.HealthCheckDisabled` |  I controlli dello stato sono disabilitati  | 
| `Target.InvalidState` |  La destinazione è in stato di arresto La destinazione è in stato terminato I target sono in stato di arresto o terminato Il target è in uno stato non valido  | 
| `Target.IpUnusable` |  L'indirizzo IP non può essere utilizzato come destinazione, poiché è in uso in un sistema di bilanciamento del carico.  | 
| `Target.NotInUse` |  Il gruppo target non è configurato per la ricezione del traffico dal sistema di bilanciamento del carico. Il target si trova in una zona di disponibilità che non è abilitata per il sistema di bilanciamento del carico  | 
| `Target.NotRegistered` |  Il target non è registrato nel gruppo target  | 
| `Target.ResponseCodeMismatch` |  I controlli dello stato non sono andati a buon fine con questi codici: [*codice*]  | 
| `Target.Timeout` |  Richiesta scaduta  | 

# Verifica lo stato dei tuoi obiettivi di Application Load Balancer
<a name="check-target-health"></a>

È possibile controllare lo stato dei target registrato con i gruppi target. Per informazioni sugli errori dei controlli di integrità, vedi [Risoluzione dei problemi: un obiettivo registrato non è in servizio](load-balancer-troubleshooting.md#target-not-inservice).

Puoi utilizzare i log dei controlli di integrità per acquisire informazioni dettagliate sui controlli di integrità effettuati sugli obiettivi registrati per il tuo sistema di bilanciamento del carico e archiviarli come file di registro in Amazon S3. Puoi utilizzare questi log dei controlli sanitari per risolvere problemi con i tuoi obiettivi. Per ulteriori informazioni, consulta [Registri Health Check](load-balancer-health-check-logs.md).

------
#### [ Console ]

**Per verificare lo stato di salute dei tuoi bersagli**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel pannello di navigazione, in **Bilanciamento del carico** scegli **Gruppi di destinazione**.

1. Scegli il nome del gruppo di destinazione per visualizzarne i dettagli.

1. La scheda **Dettagli** mostra il numero totale di bersagli, più il numero di bersagli per ogni stato di salute.

1. Nella scheda **Target**, la colonna **Stato** indica lo stato di ogni destinazione.

1. Se lo stato ha un valore diverso da `Healthy`, la colonna **Dettagli dello stato** contiene ulteriori informazioni.

**Per ricevere notifiche via e-mail su destinazioni non integre**  
Usa gli CloudWatch allarmi per attivare una funzione Lambda per inviare dettagli su obiettivi non sani. Per step-by-step istruzioni, consulta il seguente post sul blog: [Identificazione degli obiettivi non integri del sistema di bilanciamento del carico](https://aws.amazon.com/blogs/networking-and-content-delivery/identifying-unhealthy-targets-of-elastic-load-balancer/).

------
#### [ AWS CLI ]

**Per verificare lo stato di salute dei tuoi obiettivi**  
Utilizza il comando [describe-target-health](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-target-health.html). Questo esempio filtra l'output per includere solo gli obiettivi non integri. Per gli obiettivi non integri, l'output include un codice motivo.

```
aws elbv2 describe-target-health \
    --target-group-arn target-group-arn \
    --query "TargetHealthDescriptions[?TargetHealth.State!='healthy'].[Target.Id,TargetHealth.State,TargetHealth.Reason]" \
    --output table
```

Di seguito è riportato un output di esempio.

```
----------------------------------------------
|            DescribeTargetHealth            |
+--------------+---------+-------------------+
|  172.31.0.57 |  unused |  Target.NotInUse  |
|  172.31.0.50 |  unused |  Target.NotInUse  |
+--------------+---------+-------------------+
```

------

## Stati di destinazione e codici motivo
<a name="target-states-reason-codes"></a>

L'elenco seguente mostra i possibili codici motivo per ogni stato di destinazione.

**Lo stato di destinazione è healthy**  
Non viene fornito un codice motivo.

**Lo stato di destinazione è initial**  
+  `Elb.RegistrationInProgress`- La destinazione è in fase di registrazione presso il sistema di bilanciamento del carico.
+  `Elb.InitialHealthChecking`- Il load balancer sta ancora inviando all'obiettivo il numero minimo di controlli di integrità necessari per determinarne lo stato di salute.

**Lo stato di destinazione è unhealthy**  
+ `Target.ResponseCodeMismatch`- I controlli sanitari non hanno restituito il codice HTTP previsto.
+ `Target.Timeout`- Le richieste di controllo sanitario sono scadute.
+ `Target.FailedHealthChecks`- Il sistema di bilanciamento del carico ha ricevuto un errore durante lo stabilimento di una connessione alla destinazione o la risposta del target non era corretta.
+ `Elb.InternalError`- I controlli sanitari non sono riusciti a causa di un errore interno.

**Lo stato di destinazione è unused**  
+ `Target.NotRegistered`- L'obiettivo non è registrato presso il gruppo target.
+ `Target.NotInUse`- Il gruppo target non viene utilizzato da alcun sistema di bilanciamento del carico o il target si trova in una zona di disponibilità non abilitata per il relativo sistema di bilanciamento del carico.
+ `Target.InvalidState`- La destinazione è nello stato interrotto o terminato.
+ `Target.IpUnusable`- L'indirizzo IP di destinazione è riservato all'uso da parte di un sistema di bilanciamento del carico.

**Lo stato di destinazione è draining**  
+ `Target.DeregistrationInProgress`- L'obiettivo è in fase di cancellazione e il periodo di ritardo per l'annullamento non è scaduto.

**Lo stato di destinazione è unavailable**  
+ `Target.HealthCheckDisabled`- I controlli sanitari sono disattivati per il gruppo target.

# Aggiornare le impostazioni del controllo dello stato di un gruppo target di Application Load Balancer
<a name="modify-health-check-settings"></a>

Puoi aggiornare le impostazioni del controllo sanitario per il tuo gruppo target in qualsiasi momento. Per l'elenco delle impostazioni del controllo sanitario, vedere[Impostazioni del controllo dello stato](target-group-health-checks.md#health-check-settings).

------
#### [ Console ]

**Per aggiornare le impostazioni del controllo sanitario**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel pannello di navigazione, in **Bilanciamento del carico** scegli **Gruppi di destinazione**.

1. Scegli il nome del gruppo di destinazione per visualizzarne i dettagli.

1. Nella scheda **Controlli dello stato**, seleziona **Modifica**.

1. Nella pagina **Modifica le impostazioni del controllo sanitario**, modificare le impostazioni in base alle esigenze.

1. Scegli **Save changes** (Salva modifiche).

------
#### [ AWS CLI ]

**Per aggiornare le impostazioni del controllo sanitario**  
Utilizza il comando [modify-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-target-group.html). L'esempio seguente aggiorna le **HealthCheckTimeoutSeconds**impostazioni **HealthyThresholdCount**e.

```
aws elbv2 modify-target-group \
    --target-group-arn target-group-arn \
    --healthy-threshold-count 3 \
    --health-check-timeout-seconds 20
```

------
#### [ CloudFormation ]

**Per aggiornare le impostazioni del controllo sanitario**  
Aggiorna la [AWS::ElasticLoadBalancingV2::TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-targetgroup.html)risorsa per includere le impostazioni aggiornate del controllo sanitario. L'esempio seguente aggiorna le **HealthCheckTimeoutSeconds**impostazioni **HealthyThresholdCount**and.

```
Resources:
  myTargetGroup:
    Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'
    Properties:
      Name: my-target-group
      Protocol: HTTP
      Port: 80
      TargetType: instance
      VpcId: !Ref myVPC
      HealthyThresholdCount: 3
      HealthCheckTimeoutSeconds: 20
```

------