Panoramica del monitoraggio dell'integrità del gateway applicazioneApplication Gateway health monitoring overview

Per impostazione predefinita, il gateway applicazione di Azure monitora l'integrità di tutte le risorse nel pool back-end e rimuove automaticamente dal pool le risorse considerate non integre.Azure Application Gateway by default monitors the health of all resources in its back-end pool and automatically removes any resource considered unhealthy from the pool. Il gateway applicazione continua a monitorare le istanze non integre e le riaggiunge al pool back-end integro, dopo che sono diventate disponibili e rispondono ai probe di integrità.Application Gateway continues to monitor the unhealthy instances and adds them back to the healthy back-end pool once they become available and respond to health probes. Il gateway applicazione invia i probe di integrità con la stessa porta definita nelle impostazioni HTTP del back-end.Application gateway sends the health probes with the same port that is defined in the back-end HTTP settings. Questa configurazione garantisce che il probe testi la stessa porta che verrebbe usata dai clienti per connettersi al back-end.This configuration ensures that the probe is testing the same port that customers would be using to connect to the backend.

Esempio di probe del gateway applicazione

Oltre al monitoraggio del probe di integrità predefinito, è anche possibile personalizzare il probe di integrità in base ai requisiti dell'applicazione.In addition to using default health probe monitoring, you can also customize the health probe to suit your application's requirements. In questo articolo vengono illustrati i probe di integrità predefiniti e personalizzati.In this article, both default and custom health probes are covered.

Nota

Se nella subnet del gateway applicazione è presente un gruppo di sicurezza di rete, gli intervalli di porte 65503-65534 devono essere aperti nella subnet del gateway applicazioni per il traffico in ingresso.If there is an NSG on Application Gateway subnet, port ranges 65503-65534 should be opened on the Application Gateway subnet for Inbound traffic. Tali porte sono necessarie per il corretto funzionamento dell'API di integrità back-end.These ports are required for the backend health API to work.

Probe di integrità predefinitoDefault health probe

Un gateway applicazione configura automaticamente un probe di integrità predefinito quando non si configura nessuna configurazione di probe personalizzato.An application gateway automatically configures a default health probe when you don't set up any custom probe configuration. Il comportamento del monitoraggio prevede l'invio di una richiesta HTTP agli indirizzi IP configurati per il pool back-end.The monitoring behavior works by making an HTTP request to the IP addresses configured for the back-end pool. Per i probe predefiniti, se le impostazioni HTTP del back-end vengono configurate per HTTPS, il probe usa HTTPS anche per testare l'integrità dei back-end.For default probes if the backend http settings are configured for HTTPS, the probe uses HTTPS as well to test health of the backends.

Ad esempio, si configura il gateway applicazione per usare i server back-end A, B e C per ricevere il traffico di rete HTTP sulla porta 80.For example: You configure your application gateway to use back-end servers A, B, and C to receive HTTP network traffic on port 80. Il monitoraggio dell'integrità predefinito testa i tre server ogni 30 secondi per ottenere una risposta HTTP integra.The default health monitoring tests the three servers every 30 seconds for a healthy HTTP response. Una risposta HTTP integra ha un codice di stato compreso tra 200 e 399.A healthy HTTP response has a status code between 200 and 399.

Se il controllo probe predefinito non riesce per il server A, il gateway applicazione lo rimuove dal pool back-end e il flusso del traffico di rete a questo server viene arrestato.If the default probe check fails for server A, the application gateway removes it from its back-end pool, and network traffic stops flowing to this server. Il probe predefinito continua tuttavia a controllare il server A ogni 30 secondi.The default probe still continues to check for server A every 30 seconds. Quando il server A risponde correttamente a una richiesta di un probe di integrità predefinito, viene aggiunto di nuovo come integro al pool back-end e il flusso del traffico verso il server riprenderà.When server A responds successfully to one request from a default health probe, it is added back as healthy to the back-end pool, and traffic starts flowing to the server again.

Criteri di corrispondenza dei probeProbe Matching

Per impostazione predefinita, una risposta HTTP(S) con codice di stato 200 viene considerata integra.By default, an HTTP(S) response with status code 200 is considered healthy. I probe di integrità personalizzati supportano anche due criteri di corrispondenza.Custom health probes additionally support two matching criteria. Questi criteri possono essere usati per modificare l'interpretazione predefinita di ciò che costituisce una risposta integra.Matching criteria can be used to optionally modify the default interpretation of what consititutes a healthy response.

I criteri di corrispondenza sono i seguenti:The following are matching criteria:

  • Corrispondenza del codice di stato della risposta HTTP: il criterio adottato da un probe per accettare il codice di risposta o l'intervallo di codici di risposta HTTP specificato dall'utente.HTTP response status code match - Probe matching criterion for accepting user specified http response code or response code ranges. Sono supportati singoli codici di stato della risposta, delimitati da virgole, o un intervallo di codici di stato.Individual comma separated response status codes or a range of status code is supported.
  • Corrispondenza del corpo della risposta HTTP: il criterio adottato dal probe in base al quale viene esaminato il corpo della risposta HTTP e viene stabilita una corrispondenza con una stringa specificata dall'utente.HTTP response body match - Probe matching criterion which looks at HTTP response body and matches with a user specified string. Si noti che la corrispondenza verifica solo la presenza della stringa specificata dall'utente nel corpo della risposta e non è una corrispondenza completa basata su espressione regolare.Note that the match only looks for presence of user specified string in response body and is not a full regular expression match.

I criteri di corrispondenza possono essere specificati tramite il cmdlet New-AzureRmApplicationGatewayProbeHealthResponseMatch.Match criteria can be specified using the New-AzureRmApplicationGatewayProbeHealthResponseMatch cmdlet.

Ad esempio: For example:

$match = New-AzureRmApplicationGatewayProbeHealthResponseMatch -StatusCode 200-399
$match = New-AzureRmApplicationGatewayProbeHealthResponseMatch -Body "Healthy"

Una volta specificati, i criteri di corrispondenza possono essere associati alla configurazione del probe tramite un parametro -Match in PowerShell.Once the match criteria is specified, it can be attached to probe configuration using a -Match parameter in PowerShell.

Impostazioni del probe di integrità predefinitoDefault health probe settings

Proprietà probeProbe property ValoreValue DESCRIZIONEDescription
URL probeProbe URL http://127.0.0.1:<porta>/http://127.0.0.1:<port>/ Percorso URLURL path
IntervalInterval 3030 Intervallo di probe in secondiProbe interval in seconds
TimeoutTime-out 3030 Timeout di probe in secondiProbe time-out in seconds
Soglia non integraUnhealthy threshold 33 Numero di tentativi di probe.Probe retry count. Il server back-end viene contrassegnato come inattivo dopo che il numero di errori di probe consecutivi ha raggiunto una soglia non integra.The back-end server is marked down after the consecutive probe failure count reaches the unhealthy threshold.

Nota

La porta è la stessa delle impostazioni HTTP del back-end.The port is the same port as the back-end HTTP settings.

Il probe predefinito esamina solo http://127.0.0.1:<porta> per determinare lo stato di integrità.The default probe looks only at http://127.0.0.1:<port> to determine health status. Se si deve configurare il probe di integrità per passare a un URL personalizzato o modificare altre impostazioni, è necessario usare probe personalizzati come descritto nei passaggi seguenti.If you need to configure the health probe to go to a custom URL or modify any other settings, you must use custom probes as described in the following steps:

Probe di integrità personalizzatoCustom health probe

I probe personalizzati consentono un controllo più granulare sul monitoraggio dell'integrità.Custom probes allow you to have a more granular control over the health monitoring. Quando si usano i probe personalizzati, è possibile configurare l'intervallo di probe, l'URL e il percorso da testare e il numero di risposte non riuscite da accettare prima di contrassegnare l'istanza del pool back-end come non integra.When using custom probes, you can configure the probe interval, the URL and path to test, and how many failed responses to accept before marking the back-end pool instance as unhealthy.

Impostazioni del probe di integrità personalizzatoCustom health probe settings

La tabella seguente fornisce le definizioni delle proprietà di un probe di integrità personalizzato.The following table provides definitions for the properties of a custom health probe.

Proprietà probeProbe property DESCRIZIONEDescription
NOMEName Nome del probe.Name of the probe. Questo nome viene usato per fare riferimento al probe nelle impostazioni HTTP back-endThis name is used to refer to the probe in back-end HTTP settings.
ProtocolloProtocol Protocollo usato per inviare il probe.Protocol used to send the probe. Il probe usa il protocollo definito nelle impostazioni HTTP del back-end.The probe uses the protocol defined in the back-end HTTP settings
HostHost Nome host per inviare il probe.Host name to send the probe. Applicabile solo quando vengono configurati più siti nel gateway applicazione. In caso contrario, usare "127.0.0.1".Applicable only when multi-site is configured on Application Gateway, otherwise use '127.0.0.1'. Questo valore è diverso dal nome host della VM.This value is different from VM host name.
pathPath Percorso relativo del probe.Relative path of the probe. Il percorso valido inizia da "/".The valid path starts from '/'.
IntervalInterval Intervallo di probe in secondi.Probe interval in seconds. Questo valore è l'intervallo di tempo tra due probe consecutivi.This value is the time interval between two consecutive probes.
TimeoutTime-out Timeout del probe in secondi.Probe time-out in seconds. Se non viene ricevuta una risposta valida entro questo periodo di timeout, il probe viene contrassegnato come non riuscito.If a valid response is not received within this time-out period, the probe is marked as failed.
Soglia non integraUnhealthy threshold Numero di tentativi di probe.Probe retry count. Il server back-end viene contrassegnato come inattivo dopo che il numero di errori di probe consecutivi ha raggiunto una soglia non integra.The back-end server is marked down after the consecutive probe failure count reaches the unhealthy threshold.

Importante

Se il gateway applicazione è configurato per un singolo sito, per impostazione predefinita il nome dell'host deve essere specificato come "127.0.0.1", se non diversamente configurato nel probe personalizzato.If Application Gateway is configured for a single site, by default the Host name should be specified as '127.0.0.1', unless otherwise configured in custom probe. Come riferimento, un probe personalizzato viene inviato a <protocollo>://<host>:<porta><percorso>.For reference a custom probe is sent to <protocol>://<host>:<port><path>. La porta usata sarà la stessa definita nelle impostazioni HTTP del back-end.The port used will be the same port as defined in the back-end HTTP settings.

Passaggi successiviNext steps

Dopo aver acquisito familiarità con il monitoraggio dell'integrità del gateway applicazione, è possibile configurare un probe di integrità personalizzato nel portale di Azure oppure un probe di integrità personalizzato usando PowerShell e il modello di distribuzione Azure Resource Manager.After learning about Application Gateway health monitoring, you can configure a custom health probe in the Azure portal or a custom health probe using PowerShell and the Azure Resource Manager deployment model.