Lastenausgleichs-IntegritätstestsLoad Balancer health probes

Wenn Sie Lastausgleichsregeln mit Azure Load Balancer verwenden, müssen Sie einen Integritätstest angeben, damit Load Balancer den Back-End-Endpunktstatus erkennen kann.When using load-balancing rules with Azure Load Balancer, you need to specify health probes to allow Load Balancer to detect the backend endpoint status. Die Konfiguration des Integritätstests und die Testantworten bestimmen, welche Back-End-Poolinstanzen neue Flows empfangen.The configuration of the health probe and probe responses determine which backend pool instances will receive new flows. Anhand von Integritätstests können Sie einen Fehler in einer Anwendung für einen Back-End-Endpunkt erkennen.You can use health probes to detect the failure of an application on a backend endpoint. Sie können auch eine benutzerdefinierte Antwort auf einen Integritätstest generieren und den Integritätstest zur Flusssteuerung verwenden, um die Last oder geplante Downtimes zu verwalten.You can also generate a custom response to a health probe and use the health probe for flow control to manage load or planned downtime. Wenn ein einem Integritätstest ein Fehler auftritt, beendet der Load Balancer das Senden neuer Flows an die entsprechende fehlerhafte Instanz.When a health probe fails, Load Balancer will stop sending new flows to the respective unhealthy instance. Die ausgehende Konnektivität ist nicht betroffen, nur eingehende Konnektivität ist beeinträchtigt.Outbound connectivity is not impacted, only inbound connectivity is impacted.

Integritätstests unterstützen mehrere Protokolle.Health probes support multiple protocols. Die Verfügbarkeit eines bestimmten Integritätstestprotokolls hängt von der Load Balancer-SKU ab.The availability of a specific health probe protocol varies by Load Balancer SKU. Darüber hinaus variiert das Verhalten des Diensts je nach Load Balancer-SKU. Die Tabelle zeigt dies:Additionally, the behavior of the service varies by Load Balancer SKU as shown in this table:

Standard-SKUStandard SKU Basic-SKUBasic SKU
TesttypenProbe types TCP, HTTP, HTTPSTCP, HTTP, HTTPS TCP, HTTPTCP, HTTP
Verhalten bei Tests mit FehlernProbe down behavior Alle Tests mit Fehlern, alle TCP-Flows werden fortgesetzt.All probes down, all TCP flows continue. Alle Tests mit Fehlern, alle TCP-Flows laufen ab.All probes down, all TCP flows expire.

Wichtig

Lesen Sie dieses Dokument in seiner Gesamtheit, einschließlich der wichtigen Hinweise zum Entwurf unten, um einen zuverlässigen Dienst zu erstellen.Review this document in its entirety, including important design guidance below to create a reliable service.

Wichtig

Load Balancer-Integritätstests stammen von der IP-Adresse 168.63.129.16 und dürfen nicht blockiert werden, damit Ihre Instanz beim Test als online markiert wird.Load Balancer health probes originate from the IP address 168.63.129.16 and must not be blocked for probes to mark up your instance. Einzelheiten finden Sie unter Quell-IP-Adresse von Tests.Review probe source IP address for details.

Wichtig

Unabhängig vom konfigurierten Timeout-Schwellenwert wird bei HTTP(S)-Integritätstests von Load Balancer automatisch eine Instanz getestet, wenn der Server einen anderen Statuscode als „HTTP 200 OK“ zurückgibt oder wenn die Verbindung durch ein TCP-Reset getrennt wird.Regardless of configured time-out threshold, HTTP(S) Load Balancer health probes will automatically probe down an instance if the server returns any status code that is not HTTP 200 OK or if the connection is terminated via TCP reset.

TestkonfigurationProbe configuration

Die Integritätstestkonfiguration umfasst folgende Elemente:Health probe configuration consists of the following elements:

  • Dauer des Intervalls zwischen einzelnen TestsDuration of the interval between individual probes
  • Anzahl der Testantworten, die beobachtet werden müssen, bevor der Test in einen anderen Zustand übergeht.Number of probe responses which have to be observed before the probe transitions to a different state
  • Protokoll des TestsProtocol of the probe
  • Port des TestsPort of the probe
  • HTTP-Pfad, der für HTTP GET bei Verwendung von HTTP(S)-Tests verwendet werden soll.HTTP path to use for HTTP GET when using HTTP(S) probes

Hinweis

Wenn Sie Azure PowerShell, die Azure CLI, Vorlagen oder eine API verwenden, ist eine Testdefinition nicht obligatorisch, und ihr Vorhandensein wird nicht überprüft.A probe definition is not mandatory or checked for when using Azure PowerShell, Azure CLI, Templates or API. Validierungstests werden nur bei Verwendung des Azure-Portals durchgeführt.Probe validation tests are only done when using the Azure Portal.

Verstehen des Anwendungssignals, Erkennen des Signals und Reaktion der PlattformUnderstanding application signal, detection of the signal, and reaction of the platform

Anzahl der Testantworten, die auf beides angewendet wirdThe number of probe responses applies to both

  • Anzahl der erfolgreichen Tests, bei der eine Instanz als online gekennzeichnet werden kann undthe number of successful probes that allow an instance to be marked as up, and
  • Anzahl der Tests mit einem Timeout, bei der eine Instanz als offline gekennzeichnet wird.the number of timed-out probes that cause an instance to be marked as down.

Die angegebenen Werte für das Timeout und das Intervall bestimmen, ob eine Instanz als online oder offline markiert wird.The timeout and interval values specified determine whether an instance will be marked as up or down. Die Dauer des Intervalls multipliziert mit der Anzahl der Testantworten bestimmt die Zeitspann, in der die Testantworten erkannt werden müssen.The duration of the interval multiplied by the number of probe responses determines the duration during which the probe responses have to be detected. Und der Dienst reagiert, nachdem die erforderlichen Tests erreicht wurden.And the service will react after the required probes have been achieved.

Wir können das Verhalten anhand eines Beispiels weiter veranschaulichen.We can illustrate the behavior further with an example. Wenn Sie die Anzahl der Testantworten auf 2 und das Intervall auf 5 Sekunden festgelegt haben, bedeutet dies, dass 2 Testfehler durch Timeouts innerhalb eines Intervalls von 10 Sekunden beobachtet werden müssen.If you have set the number of probe responses to 2 and the interval to 5 seconds, this means 2 probe time-out failures must be observed within a 10 second interval. Da der Zeitpunkt, zu dem ein Test gesendet wird, nicht synchronisiert ist, wenn Ihre Anwendung den Zustand ggf. ändert, können wir die Zeit bis zur Erkennung an zwei Szenarien festmachen:Because the time at which a probe is sent is not synchronized when your application may change state, we can bound the time to detect by two scenarios:

  1. Wenn Ihre Anwendung kurz vor dem Eintreffen des ersten Tests mit der Generierung einer Testantwort aufgrund eines Timeouts beginnt, dauert die Erkennung dieser Ereignisse 10 Sekunden (Intervalle von 2 × 5 Sekunden) plus die Dauer der Anwendung, die beginnt, ein Timeout zu signalisieren, wenn der erste Test eintrifft.If your application starts producing a time-out probe response just before the first probe arrives, the detection of these events will take 10 seconds (2 x 5 second intervals) plus the duration of the application starting to signal a time-out to when the first probe arrives. Sie können davon ausgehen, dass diese Erkennung etwas länger als 10 Sekunden dauert.You can assume this detection to take slightly over 10 seconds.
  2. Wenn Ihre Anwendung unmittelbar nach dem Eintreffen des ersten Tests mit der Generierung einer Testfehlerantwort aufgrund eines Timeouts beginnt, startet die Erkennung dieser Ereignisse erst mit dem Eintreffen des nächsten Tests (mit Timeout) plus weiteren 10 Sekunden (Intervalle von 2 × 5 Sekunden).If your application starts producing a time-out probe response just after the first probe arrives, the detection of these events will not begin until the next probe arrives (and times out) plus another 10 seconds (2 x 5 second intervals). Sie können davon ausgehen, dass diese Erkennung fast 15 Sekunden in Anspruch nimmt.You can assume this detection to take just under 15 seconds.

In diesem Beispiel benötigt die Plattform nach der Erkennung eine kurze Zeit, um auf diese Änderung zu reagieren.For this example, once detection has occurred, the platform will then take a small amount of time to react to this change. Dies bedeutet eine Abhängigkeit von mehreren Faktoren:This means a depending on

  1. Wann die Anwendung mit der Zustandsänderung beginnt undwhen the application begins changing state and
  2. wann diese Änderung erkannt wird und die erforderlichen Kriterien erfüllt sind (Anzahl der im angegebenen Intervall gesendeten Tests) undwhen this change is detected and met the required criteria (number of probes sent at the specified interval) and
  3. wann die Erkennung über die Plattform kommuniziert wurde.when the detection has been communicated across the platform

Sie können davon ausgehen, dass die Reaktion auf eine Testantwort aufgrund eines Timeouts zwischen einem Minimum von etwas mehr als 10 Sekunden und einem Maximum von etwas mehr als 15 Sekunden dauert, um auf eine Änderung des Signals von der Anwendung zu reagieren.you can assume the reaction to a time-out probe response will take between a minimum of just over 10 seconds and a maximum of slightly over 15 seconds to react to a change in the signal from the application. Dieses Beispiel dient der Veranschaulichung des Geschehens, jedoch ist es nicht möglich, eine genaue Dauer über die in diesem Beispiel dargestellte grobe Orientierung hinaus vorherzusagen.This example is provided to illustrate what is taking place, however, it is not possible to forecast an exact duration beyond the above rough guidance illustrated in this example.

Hinweis

Der Integritätstest testet alle ausgeführten Instanzen im Back-End-Pool.The health probe will probe all running instances in the backend pool. Wenn eine Instanz beendet wird, wird sie erst nach ihrem erneuten Start wieder getestet.If an instance is stopped it will not be probed until it has been started again.

TesttypenProbe types

Das vom Integritätstest verwendete Protokoll kann für Folgendes konfiguriert werden:The protocol used by the health probe can be configured to one of the following:

Die verfügbaren Protokolle sind von der verwendeten Load Balancer-SKU abhängig:The available protocols depend on the Load Balancer SKU used:

TCPTCP HTTPHTTP HTTPSHTTPS
Standard-SKUStandard SKU
Basic-SKUBasic SKU

TCP-TestTCP probe

TCP-Tests leiten eine Verbindung über einen offenen Drei-Wege-TCP-Handshake mit dem definierten Port ein.TCP probes initiate a connection by performing a three-way open TCP handshake with the defined port. TCP-Tests beenden eine Verbindung mit einem Vier-Wege-TCP-Schließen-Handshake.TCP probes terminate a connection with a four-way close TCP handshake.

Das Mindestintervall für Tests beträgt 5 Sekunden, und die Mindestanzahl von fehlerhaften Antworten ist 2.The minimum probe interval is 5 seconds and the minimum number of unhealthy responses is 2. Die gesamte Dauer aller Intervalle darf 120 Sekunden nicht überschreiten.The total duration of all intervals cannot exceed 120 seconds.

TCP-Tests führen in folgenden Fällen zu Fehlern:A TCP probe fails when:

  • Der TCP-Listener für die Instanz reagiert innerhalb des Zeitlimits gar nicht.The TCP listener on the instance doesn't respond at all during the timeout period. Wann der Test als nicht ausgeführt markiert wird, hängt von der konfigurierten Anzahl unbeantworteter Testanforderungen aufgrund eines Timeouts vor dem Markieren des Tests als nicht ausgeführt ab.A probe is marked down based on the number of timed-out probe requests, which were configured to go unanswered before marking down the probe.
  • Der Test empfängt ein TCP-Reset von der Instanz.The probe receives a TCP reset from the instance.

Im Folgenden wird veranschaulicht, wie Sie diese Art von Testkonfiguration in einer Resource Manager-Vorlage ausdrücken können:The following illustrates how you could express this kind of probe configuration in a Resource Manager template:

    {
      "name": "tcp",
      "properties": {
        "protocol": "Tcp",
        "port": 1234,
        "intervalInSeconds": 5,
        "numberOfProbes": 2
      },

HTTP-/HTTPS-Test HTTP / HTTPS probe

Hinweis

Der HTTPS-Test ist nur für Load Balancer Standard verfügbar.HTTPS probe is only available for Standard Load Balancer.

HTTP- und HTTPS-Tests basieren auf dem TCP-Test und geben eine HTTP GET-Anforderung mit dem angegebenen Pfad aus.HTTP and HTTPS probes build on the TCP probe and issue an HTTP GET with the specified path. Diese beiden Tests unterstützen für HTTP GET relative Pfade.Both of these probes support relative paths for the HTTP GET. HTTPS-Tests sind mit HTTP-Tests identisch, weisen jedoch zusätzlich einen Transport Layer Security-Wrapper (TLS, früher als SSL bezeichnet) auf.HTTPS probes are the same as HTTP probes with the addition of a Transport Layer Security (TLS, formerly known as SSL) wrapper. Der Integritätstest kennzeichnet die Instanz als online, wenn diese innerhalb des Zeitlimits mit dem HTTP-Statuscode 200 antwortet.The health probe is marked up when the instance responds with an HTTP status 200 within the timeout period. Bei diesem Integritätstest wird standardmäßig versucht, den konfigurierten Integritätstestport alle 15 Sekunden zu prüfen.The health probe attempts to check the configured health probe port every 15 seconds by default. Das minimale Testintervall beträgt 5 Sekunden.The minimum probe interval is 5 seconds. Die gesamte Dauer aller Intervalle darf 120 Sekunden nicht überschreiten.The total duration of all intervals cannot exceed 120 seconds.

HTTP/HTTPS-Tests eignen sich auch zum Implementieren Ihrer eigenen Logik, um Instanzen aus der Lastenausgleichsrotation zu entfernen, wenn der Testport auch der Listener für den Dienst selbst ist.HTTP / HTTPS probes can also be useful to implement your own logic to remove instances from load balancer rotation if the probe port is also the listener for the service itself. Sie können z.B. eine Instanz entfernen, wenn sie über 90 % CPU beansprucht und einen anderen HTTP-Status als 200 zurückgibt.For example, you might decide to remove an instance if it's above 90% CPU and return a non-200 HTTP status.

Hinweis

Der HTTPS-Test erfordert die Verwendung von Zertifikaten mit einem minimalen Signaturhash von SHA256 in der gesamten Kette.The HTTPS Probe requires the use of certificates based that have a minimum signature hash of SHA256 in the entire chain.

Wenn Sie Cloud Services verwenden und über Webrollen verfügen, die „w3wp.exe“ verwenden, erreichen Sie auch eine automatische Überwachung Ihrer Website.If you use Cloud Services and have web roles that use w3wp.exe, you also achieve automatic monitoring of your website. Fehler in Ihrem Websitecode geben einen anderen Status als 200 an den Lastenausgleichstest zurück.Failures in your website code return a non-200 status to the load balancer probe.

HTTP-/HTTPS-Tests führen in folgenden Fällen zu Fehlern:An HTTP / HTTPS probe fails when:

  • Der Testendpunkt gibt einen anderen HTTP-Antwortcode als 200 zurück (z.B. 403, 404 oder 500).Probe endpoint returns an HTTP response code other than 200 (for example, 403, 404, or 500). Dadurch wird der Integritätstest sofort als nicht ausgeführt markiert.This will mark down the health probe immediately.
  • Der HTTP-Testendpunkt reagiert während des kleineren Zeitraums des Testintervalls und eines Zeitlimits von 30 Sekunden gar nicht.Probe endpoint doesn't respond at all during the minimum of the probe interval and 30-second timeout period. Möglicherweise bleiben mehrere Testanforderungen unbeantwortet, bevor der Test als nicht ausgeführt markiert wird und die Summe aller Timeoutintervalle erreicht wurde.Multiple probe requests might go unanswered before the probe gets marked as not running and until the sum of all timeout intervals has been reached.
  • Der Testendpunkt schließt die Verbindung über ein TCP-Reset.Probe endpoint closes the connection via a TCP reset.

Im Folgenden wird veranschaulicht, wie Sie diese Art von Testkonfiguration in einer Resource Manager-Vorlage ausdrücken können:The following illustrates how you could express this kind of probe configuration in a Resource Manager template:

    {
      "name": "http",
      "properties": {
        "protocol": "Http",
        "port": 80,
        "requestPath": "/",
        "intervalInSeconds": 5,
        "numberOfProbes": 2
      },
    {
      "name": "https",
      "properties": {
        "protocol": "Https",
        "port": 443,
        "requestPath": "/",
        "intervalInSeconds": 5,
        "numberOfProbes": 2
      },

Gast-Agent-Test (nur klassisch)Guest agent probe (Classic only)

Clouddienstrollen (Workerrollen und Webrollen) verwenden standardmäßig einen Gast-Agent für die Testüberwachung.Cloud service roles (worker roles and web roles) use a guest agent for probe monitoring by default. Ein Gast-Agent-Test ist eine „Notfallkonfiguration“.A guest agent probe is a last resort configuration. Verwenden Sie einen Integritätstest immer explizit mit einem TCP- oder HTTP-Test.Always use a health probe explicitly with a TCP or HTTP probe. Ein Gast-Agent-Test ist bei den meisten Anwendungsszenarien nicht so effektiv wie explizit definierte Tests.A guest agent probe is not as effective as explicitly defined probes for most application scenarios.

Ein Gast-Agent-Test ist eine Überprüfung des Gast-Agents auf dem virtuellen Computer.A guest agent probe is a check of the guest agent inside the VM. Er lauscht dann und antwortet nur mit einer HTTP-OK-200-Antwort, wenn sich die Instanz im Zustand „Bereit“ befindet.It then listens and responds with an HTTP 200 OK response only when the instance is in the Ready state. (Andere Zustände sind „Beschäftigt“, „Wird wiederverwendet“ oder „Wird beendet“.)(Other states are Busy, Recycling, or Stopping.)

Weitere Informationen finden Sie unter Konfigurieren der Dienstdefinitionsdatei (CSDEF) für Integritätstests oder Erste Schritte durch Erstellen eines öffentlichen Lastenausgleichs für Clouddienste.For more information, see Configure the service definition file (csdef) for health probes or Get started by creating a public load balancer for cloud services.

Wenn der Gast-Agent nicht mit dem HTTP-OK-Code 200 antwortet, kennzeichnet der Lastenausgleich die Instanz als nicht reagierend.If the guest agent fails to respond with HTTP 200 OK, the load balancer marks the instance as unresponsive. Er sendet dann keine Flows mehr an diese Instanz.It then stops sending flows to that instance. Das Lastenausgleichsmodul überprüft die Instanz weiterhin.The load balancer continues to check the instance.

Wenn der Gast-Agent mit dem HTTP-Code 200 antwortet, sendet das Lastenausgleichsmodul wieder Flows an diese Instanz.If the guest agent responds with an HTTP 200, the load balancer sends new flows to that instance again.

Wenn Sie eine Webrolle verwenden, wird der Websitecode in der Regel in „w3wp.exe“ ausgeführt. Dieses Programm wird nicht von der Azure-Fabric oder vom Gast-Agent überwacht.When you use a web role, the website code typically runs in w3wp.exe, which isn't monitored by the Azure fabric or guest agent. Fehler in „w3wp.exe“ (z. B. HTTP 500-Antworten) werden dem Gast-Agent nicht gemeldet.Failures in w3wp.exe (for example, HTTP 500 responses) aren't reported to the guest agent. Folglich nimmt der Lastenausgleich diese Instanz nicht aus der Rotation.Consequently, the load balancer doesn't take that instance out of rotation.

Verhalten bei erfolgreichen TestsProbe up behavior

TCP-, HTTP- und HTTPS-Integritätstests werden in den folgenden Fällen als fehlerfrei eingestuft und markieren den Back-End-Endpunkt als fehlerfrei:TCP, HTTP, and HTTPS health probes are considered healthy and mark the backend endpoint as healthy when:

  • Der Integritätstest ist nach dem Starten der VM erfolgreich.The health probe is successful once after the VM boots.
  • Die angegebene Anzahl von Tests, die erforderlich ist, um den Back-End-Endpunkt als fehlerfrei zu markieren, wurde erreicht.The specified number of probes required to mark the backend endpoint as healthy has been achieved.

Jeder Back-End-Endpunkt, der einen fehlerfreien Zustand erreicht hat, ist berechtigt, neue Streams zu empfangen.Any backend endpoint which has achieved a healthy state is eligible for receiving new flows.

Hinweis

Wenn das Ergebnis des Integritätstests schwankt, wartet der Lastenausgleich länger, bevor der Back-End-Endpunkt erneut in den fehlerfreien Zustand versetzt wird.If the health probe fluctuates, the load balancer waits longer before it puts the backend endpoint back in the healthy state. Diese zusätzliche Wartezeit schützt den Benutzer und die Infrastruktur und ist eine bewusste Richtlinie.This extra wait time protects the user and the infrastructure and is an intentional policy.

Verhalten bei Tests mit FehlernProbe down behavior

TCP-VerbindungenTCP connections

Neue TCP-Verbindungen mit dem verbleibenden fehlerfreien Back-End-Endpunkt werden erfolgreich hergestellt.New TCP connections will succeed to remaining healthy backend endpoint.

Wenn beim Integritätstest eines Back-End-Endpunkts ein Fehler auftritt, bleiben die für diesen Back-End-Endpunkt eingerichteten TCP-Verbindungen bestehen.If a backend endpoint's health probe fails, established TCP connections to this backend endpoint continue.

Wenn bei allen Überprüfungen für sämtliche Instanzen in einem Back-End-Pool ein Fehler auftritt, werden keine neue Flows an den Back-End-Pool gesendet.If all probes for all instances in a backend pool fail, no new flows will be sent to the backend pool. Load Balancer Standard erlaubt aber die Fortführung der eingerichteten TCP-Flows.Standard Load Balancer will permit established TCP flows to continue. Load Balancer Basic beendet alle vorhandenen TCP-Flows an den Back-End-Pool.Basic Load Balancer will terminate all existing TCP flows to the backend pool.

Load Balancer ist ein Pass-Through-Dienst (TCP-Verbindungen werden nicht beendet), und der Flow erfolgt immer zwischen dem Client und dem Gastbetriebssystem sowie der Anwendung der VM.Load Balancer is a pass through service (does not terminate TCP connections) and the flow is always between the client and the VM's guest OS and application. Wenn bei einem Pool alle Tests zu Fehlern führen, reagiert das Front-End nicht auf Versuche zum Öffnen von TCP-Verbindungen (SYN), da kein fehlerfreier Back-End-Endpunkt zum Empfangen des Flows vorhanden ist, und es sendet eine SYN-ACK-Antwort.A pool with all probes down will cause a frontend to not respond to TCP connection open attempts (SYN) as there is no healthy backend endpoint to receive the flow and respond with an SYN-ACK.

UDP-DatagrammeUDP datagrams

UDP-Datagramme werden an fehlerfreie Back-End-Endpunkte übermittelt.UDP datagrams will be delivered to healthy backend endpoints.

Das UDP ist verbindungslos und es werden kein Flusszustände für das UDP nachverfolgt.UDP is connectionless and there is no flow state tracked for UDP. Wenn beim Integritätstest eines beliebigen Back-End-Endpunkts ein Fehler auftritt, werden vorhandene UDP-Flows an eine andere fehlerfreie Instanz im Back-End-Pool umgeleitet.If any backend endpoint's health probe fails, existing UDP flows will move to another healthy instance in the backend pool.

Wenn bei allen Tests für einen Back-End-Pool Fehler auftreten, werden alle vorhandenen UDP-Flows für Load Balancer Basic und Standard beendet.If all probes for all instances in a backend pool fail, existing UDP flows will terminate for Basic and Standard Load Balancers.

Quell-IP-Adresse von TestsProbe source IP address

Load Balancer verwendet einen verteilten Dienst für die Stichprobenentnahme für sein internes Integritätsmodell.Load Balancer uses a distributed probing service for its internal health model. Der Testdienst befindet sich auf jedem Host mit VMs und kann bedarfsgesteuert programmiert werden, um Integritätstests gemäß der Kundenkonfiguration zu generieren.The probing service resides on each host where VMs and can be programmed on-demand to generate health probes per the customer's configuration. Der Datenverkehr im Rahmen von Integritätstests findet direkt zwischen dem Testdienst, der den Integritätstest generiert, und der Kunden-VM statt.The health probe traffic is directly between the probing service that generates the health probe and the customer VM. Bei allen Lastenausgleichs-Integritätstests lautet die Quell-IP-Adresse 168.63.129.16.All Load Balancer health probes originate from the IP address 168.63.129.16 as their source. Sie können einen IP-Adressraum in einem VNET verwenden, bei dem es sich nicht um einen RFC1918-Adressraum handelt.You can use IP address space inside of a VNet that is not RFC1918 space. Die Verwendung einer global reservierten IP-Adresse im Besitz von Microsoft reduziert die Wahrscheinlichkeit eines IP-Adressenkonflikts mit dem IP-Adressraum, den Sie innerhalb des VNET verwenden.Using a globally reserved, Microsoft owned IP address reduces the chance of an IP address conflict with the IP address space you use inside the VNet. Diese IP-Adresse ist in allen Regionen identisch und ändert sich nicht. Sie stellt kein Sicherheitsrisiko dar, da nur die interne Azure-Plattformkomponente ein Paket von dieser IP-Adresse senden kann.This IP address is the same in all regions and does not change and is not a security risk because only the internal Azure platform component can source a packet from this IP address.

Das Diensttag „AzureLoadBalancer“ identifiziert diese IP-Quelladresse in Ihren Netzwerksicherheitsgruppen und lässt Datenverkehr von Integritätstests standardmäßig zu.The AzureLoadBalancer service tag identifies this source IP address in your network security groups and permits health probe traffic by default.

Zusätzlich zu Load Balancer-Integritätstests wird diese IP-Adresse für die folgenden Vorgänge verwendet:In addition to Load Balancer health probes, the following operations use this IP address:

  • Ermöglichen der Kommunikation zwischen VM-Agent und Plattform, um zu signalisieren, dass sich der VM-Agent im Zustand „Bereit“ befindet.Enables the VM Agent to communicating with the platform to signal it is in a “Ready” state
  • Ermöglichen der Kommunikation mit dem virtuellen DNS-Server, um für die Kunden eine gefilterte Namensauflösung bereitzustellen, die keine benutzerdefinierten DNS-Server definieren.Enables communication with the DNS virtual server to provide filtered name resolution to customers that do not define custom DNS servers. Diese Filterung stellt sicher, dass Kunden nur die Hostnamen ihrer Bereitstellung auflösen können.This filtering ensures that customers can only resolve the hostnames of their deployment.
  • Ermöglichen des Abrufs einer dynamischen IP-Adresse vom DHCP-Dienst in Azure durch die VM.Enables the VM to obtain a dynamic IP address from the DHCP service in Azure.

Leitfaden für den EntwurfDesign guidance

Integritätstests werden verwendet, um Ihren Dienst resilient zu machen und die Skalierung des Diensts zu ermöglichen.Health probes are used to make your service resilient and allow it to scale. Eine fehlerhafte Konfiguration oder ein schlechtes Entwurfsmuster können sich auf die Verfügbarkeit und Skalierbarkeit des Diensts auswirken.A misconfiguration or bad design pattern can impact the availability and scalability of your service. Lesen Sie dieses gesamte Dokument, und überlegen Sie, wie sich die Markierung der Testantwort als offline oder online auf Ihr Szenario und die Verfügbarkeit Ihres Anwendungsszenarios auswirkt.Review this entire document and consider what the impact to your scenario is when this probe response is marked down or marked up, and how it impacts the availability of your application scenario.

Beim Entwerfen des Integritätsmodells für Ihre Anwendung sollten Sie einen Port eines Back-End-Endpunkts testen, der die Integrität dieser Instanz und des von Ihnen bereitgestellten Anwendungsdiensts widerspiegelt.When you design the health model for your application, you should probe a port on a backend endpoint that reflects the health of that instance and the application service you are providing. Der Anwendungsport und der Testport müssen nicht identisch sein.The application port and the probe port are not required to be the same. In einigen Szenarien kann es wünschenswert sein, dass der Testport und der Port, an dem Ihre Anwendung den Dienst bereitstellt, nicht identisch sind.In some scenarios, it may be desirable for the probe port to be different than the port your application provides service on.

Manchmal kann es nützlich sein, wenn Ihre Anwendung nicht nur eine Integritätstestantwort zur Erkennung der Anwendungsintegrität generiert, sondern Load Balancer auch direkt signalisiert, ob Ihre Instanz neue Flows empfangen soll.Sometimes it can be useful for your application to generate a health probe response to not only detect your application health, but also signal directly to Load Balancer whether your instance should receive or not receive new flows. Sie können die Testantwort bearbeiten, um es Ihrer Anwendung zu ermöglichen, einen Rückstau zu erzeugen und die Übermittlung neuer Flows an eine Instanz zu drosseln, indem der Integritätstest als fehlerhaft markiert wird, oder die Wartung der Anwendung vorzubereiten und den Ausgleich für Ihr Szenario zu initiieren.You can manipulate the probe response to allow your application to create backpressure and throttle delivery of new flows to an instance by failing the health probe or prepare for maintenance of your application and initiate draining your scenario. Bei Verwendung von Load Balancer Standard können TCP-Flows bei einem Signal vom Typ Test mit Fehlern immer fortgesetzt werden, bis das Leerlauftimeout erreicht oder die Verbindung geschlossen wird.When using Standard Load Balancer, a probe down signal will always allow TCP flows to continue until idle timeout or connection closure.

Für den UDP-Lastenausgleich sollten Sie ein benutzerdefiniertes Integritätstestsignal vom Back-End-Endpunkt generieren und einen TCP-, HTTP- oder HTTPS-Integritätstest mit dem entsprechenden Listener als Ziel verwenden, um die Integrität der UDP-Anwendung widerzuspiegeln.For UDP load balancing, you should generate a custom health probe signal from the backend endpoint and use either a TCP, HTTP, or HTTPS health probe targeting the corresponding listener to reflect the health of your UDP application.

Bei Verwendung von Lastenausgleichsregeln für Hochverfügbarkeitsports mit Load Balancer Standard wird für alle Ports ein Lastenausgleich ausgeführt, sodass eine Antwort vom Integritätstest den Status der gesamten Instanz widerspiegeln muss.When using HA Ports load-balancing rules with Standard Load Balancer, all ports are load balanced and a single health probe response must reflect the status of the entire instance.

Verwenden Sie für einen Integritätstest der Instanz, die den Integritätstest empfängt, weder eine Übersetzung noch einen Proxy für eine andere Instanz in Ihrem VNET. Diese Konfiguration kann zu kaskadierenden Fehlern in Ihrem Szenario führen.Do not translate or proxy a health probe through the instance that receives the health probe to another instance in your VNet as this configuration can lead to cascading failures in your scenario. Stellen Sie sich folgendes Szenario vor: Eine Reihe von Appliances von einem Drittanbieter wird im Back-End-Pool einer Load Balancer-Ressource bereitgestellt, um Skalierung und Redundanz für die Appliance zu bieten. Der Integritätstest ist zum Testen eines Ports konfiguriert, für den die Drittanbieterappliance einen Proxy oder eine Übersetzung für andere VMs hinter der Appliance verwendet.Consider the following scenario: a set of third-party appliances is deployed in the backend pool of a Load Balancer resource to provide scale and redundancy for the appliances and the health probe is configured to probe a port that the third-party appliance proxies or translates to other virtual machines behind the appliance. Wenn Sie den gleichen Port testen, den Sie verwenden, um Anforderungen zu übersetzen oder über einen Proxy an die anderen VMs hinter der Appliance zu senden, wird die Appliance selbst durch jede Testantwort von einer einzelnen VM hinter der Appliance als inaktiv markiert.If you probe the same port you are using to translate or proxy requests to the other virtual machines behind the appliance, any probe response from a single virtual machine behind the appliance will mark the appliance itself dead. Diese Konfiguration kann aufgrund eines einzelnen Back-End-Endpunkts hinter der Appliance zu einem kaskadierenden Fehler des gesamten Anwendungsszenarios führen.This configuration can lead to a cascading failure of the entire application scenario as a result of a single backend endpoint behind the appliance. Der Trigger kann ein zeitweiliger Testfehler sein, durch den Load Balancer das ursprüngliche Ziel (die Applianceinstanz) als offline markiert, wodurch wiederum das gesamte Anwendungsszenario deaktiviert werden kann.The trigger can be an intermittent probe failure that will cause Load Balancer to mark down the original destination (the appliance instance) and in turn can disable your entire application scenario. Testen Sie stattdessen die Integrität der Anwendung selbst.Probe the health of the appliance itself instead. Die Auswahl des Tests zum Bestimmen des Integritätssignals ist ein wichtiger Aspekt für Szenarien mit virtuellen Netzwerkgeräten (Network Virtual Appliance, NVA). Fragen Sie den Anwendungshersteller, welches Integritätssignal für solche Szenarien geeignet ist.The selection of the probe to determine the health signal is an important consideration for network virtual appliances (NVA) scenarios and you must consult your application vendor for what the appropriate health signal is for such scenarios.

Wenn Sie die IP-Quelladresse des Tests in Ihren Firewallrichtlinien nicht zulassen, tritt ein Fehler beim Integritätstest auf, da Ihre Instanz nicht erreicht werden kann.If you don't allow the source IP of the probe in your firewall policies, the health probe will fail as it is unable to reach your instance. Daraufhin kennzeichnet das Lastenausgleichsmodul Ihre Instanz als offline, da beim Integritätstest ein Fehler aufgetreten ist.In turn, Load Balancer will mark down your instance due to the health probe failure. Diese Fehlkonfiguration kann dazu führen, dass Ihr Szenario mit Lastenausgleich fehlschlägt.This misconfiguration can cause your load balanced application scenario to fail.

Damit der Load Balancer-Integritätstest Ihre Instanz als online markieren kann, müssen Sie diese IP-Adresse in allen Azure-Netzwerksicherheitsgruppen und lokalen Firewallrichtlinien zulassen.For Load Balancer's health probe to mark up your instance, you must allow this IP address in any Azure network security groups and local firewall policies. Standardmäßig enthält jede Netzwerksicherheitsgruppe das Diensttag „AzureLoadBalancer“, um Datenverkehr im Rahmen von Integritätstests zulassen.By default, every network security group includes the service tag AzureLoadBalancer to permit health probe traffic.

Wenn Sie einen Integritätstestfehler überprüfen oder eine einzelne Instanz abgrenzen möchten, können Sie eine Netzwerksicherheitsgruppe verwenden, um den Integritätstest explizit zu blockieren (Zielport oder IP-Quelladresse), und den Fehler für einen Test simulieren.If you wish to test a health probe failure or mark down an individual instance, you can use a network security groups to explicitly block the health probe (destination port or source IP) and simulate the failure of a probe.

Konfigurieren Sie Ihr VNET nicht mit dem für Microsoft reservierten IP-Adressbereich mit 168.63.129.16.Do not configure your VNet with the Microsoft owned IP address range that contains 168.63.129.16. Solche Konfigurationen verursachen ein Konflikt mit der IP-Adresse des Integritätstests und können dazu führen, dass Ihr Szenario fehlschlägt.Such configurations will collide with the IP address of the health probe and can cause your scenario to fail.

Wenn Sie über mehrere Schnittstellen auf dem virtuellen Computer verfügen, müssen Sie sicherstellen, dass auf den Test über die Schnittstelle geantwortet wird, über die er empfangen wurde.If you have multiple interfaces on your VM, you need to insure you respond to the probe on the interface you received it on. Möglicherweise müssen Sie diese Adresse auf der VM oder für jede Schnittstelle einzeln mittels Übersetzung der Quellnetzwerkadresse übersetzen.You may need to source network address translate this address in the VM on a per interface basis.

Aktivieren Sie TCP-Zeitstempel nicht.Do not enable TCP timestamps. Das Aktivieren von TCP-Zeitstempeln kann zu einem Fehler bei Integritätstests führen, weil TCP-Pakete vom TCP-Stapel des Gastbetriebssystems der VM gelöscht werden und Load Balancer den entsprechenden Endpunkt dadurch als offline markiert.Enabling TCP timestamps can cause health probes to fail due to TCP packets being dropped by the VM's guest OS TCP stack, which results in Load Balancer marking down the respective endpoint. Standardmäßig werden TCP-Zeitstempel bei VM-Images mit verstärkter Sicherheit routinemäßig aktiviert. Sie müssen deaktiviert werden.TCP timestamps are routinely enabled by default on security hardened VM images and must be disabled.

ÜberwachungMonitoring

Öffentliche und interne Load Balancer Standard stellen pro Endpunkt und Back-End-Endpunkt den Integritätsteststatus als mehrdimensionale Metriken über Azure Monitor bereit.Both public and internal Standard Load Balancer expose per endpoint and backend endpoint health probe status as multi-dimensional metrics through Azure Monitor. Diese Metriken können von anderen Azure-Diensten oder Anwendungen von Partnern genutzt werden.These metrics can be consumed by other Azure services or partner applications.

Der öffentliche Load Balancer Basic stellt den Integritätsteststatus zusammengefasst pro Back-End-Pool über Azure Monitor-Protokolle bereit.Basic public Load Balancer exposes health probe status summarized per backend pool via Azure Monitor logs. Azure Monitor-Protokolle steht für interne Load Balancer Basic-Instanzen nicht zur Verfügung.Azure Monitor logs are not available for internal Basic Load Balancers. Mit Azure Monitor-Protokolle können Sie den Testintegritätsstatus und die Testanzahl für den öffentlichen Lastenausgleich überprüfen.You can use Azure Monitor logs to check on the public load balancer probe health status and probe count. Die Protokollierung kann mit Power BI oder Azure Operational Insights verwendet werden, um Statistiken zum Integritätsstatus des Lastenausgleichs bereitzustellen.Logging can be used with Power BI or Azure Operational Insights to provide statistics about load balancer health status.

EinschränkungenLimitations

  • HTTPS-Tests bieten keine Unterstützung für die gegenseitige Authentifizierung mit einem Clientzertifikat.HTTPS probes do not support mutual authentication with a client certificate.
  • Gehen Sie davon aus, dass bei Integritätstests ein Fehler auftritt, wenn TCP-Zeitstempel aktiviert sind.You should assume Health probes will fail when TCP timestamps are enabled.

Nächste SchritteNext steps