Bewährte Methoden für die automatische Skalierung
Die automatische Skalierung von Azure Monitor gilt nur für Azure Virtual Machine Scale Sets, Azure Cloud Services, Web-App-Features von Azure App Service und Azure API Management.
Konzepte der automatischen Skalierung
- Eine Ressource kann nur eine Einstellung für die automatische Skalierung haben.
- Eine Einstellung für die automatische Skalierung kann ein oder mehrere Profile beinhalten, und jedes Profil kann eine oder mehrere Regeln für die automatische Skalierung beinhalten.
- Eine Einstellung für die automatische Skalierung skaliert Instanzen horizontal hoch, indem die Anzahl der Instanzen erhöht, und herunter, indem die Anzahl der Instanzen verringert wird.
- Eine Einstellung für die automatische Skalierung hat einen Höchst-, Mindest- und Standardwert von Instanzen.
- Eine automatische Skalierungsaufgabe liest die zugeordnete Skalierungsmetrik und überprüft dabei, ob die konfigurierten Schwellenwerte zum horizontalen Hoch- oder Herunterskalieren überschritten wurden. Eine Liste der Metriken, nach der die automatische Skalierung vorgenommen werden kann, finden Sie unter Übliche Metriken für die automatische Skalierung in Azure Monitor.
- Alle Schwellenwerte werden auf Instanzebene berechnet. Beispielsweise bedeutet „Hochskalieren um eine Instanz, wenn die durchschnittliche CPU-Auslastung > 80 % und Anzahl der Instanzen 2 beträgt“, dass hochskaliert wird, wenn die durchschnittliche CPU-Auslastung aller Instanzen mehr als 80 % beträgt.
- Alle Fehler bei der automatischen Skalierung werden im Aktivitätsprotokoll protokolliert. Anschließend können Sie eine Warnung für das Aktivitätsprotokoll konfigurieren, damit Sie per E-Mail, SMS oder Webhook benachrichtigt werden, wenn bei der Autoskalierung ein Fehler auftritt.
- Auf ähnliche Weise werden alle erfolgreichen Skalierungsaktionen im Aktivitätsprotokoll erfasst. Anschließend können Sie eine Warnung für das Aktivitätsprotokoll konfigurieren, damit Sie per E-Mail, SMS oder Webhook benachrichtigt werden, wenn eine erfolgreiche Aktion für die Autoskalierung durchgeführt wurde. Sie können auf der Registerkarte „Benachrichtigungen“ in den Einstellungen für die automatische Skalierung auch E-Mail- oder Webhook-Benachrichtigungen konfigurieren, um bei erfolgreichen Skalierungsaktionen informiert zu werden.
Empfohlene Methoden für die automatische Skalierung
Verwenden Sie die folgenden Best Practices für die automatische Skalierung.
Stellen Sie sicher, dass sich die Höchst- und Mindestwerte unterscheiden und eine angemessene Spanne zwischen ihnen liegt.
Falls Ihre Einstellung ein Minimum von 2 und ein Maximum von 2 hat und die Anzahl der aktuellen Instanzen 2 beträgt, kann keine Skalierungsaktion durchgeführt werden. Behalten Sie eine passende Spanne zwischen der maximalen und der minimalen Instanzenanzahl bei. Beide Werte gelten dabei als inklusive. Die automatische Skalierung skaliert immer zwischen diesen Grenzwerten.
Die manuelle Skalierung wird durch die Minimum- und Maximumwerte der automatischen Skalierung zurückgesetzt
Wenn Sie die Anzahl der Instanzen manuell auf einen Wert oberhalb oder unterhalb dieser Grenzen aktualisieren, skaliert die Engine für die automatische Skalierung automatisch auf den Mindestwert (sofern der Wert niedriger ist) oder den Höchstwert (sofern er höher ist). Angenommen, Sie legen den Bereich zwischen 3 und 6 fest. Wenn Sie eine ausgeführte Instanz haben, skaliert die Engine für die automatische Skalierung bei der nächsten Ausführung auf drei Instanzen. Wenn Sie manuell die Skalierung auf acht Instanzen festlegen, wird ebenso bei der nächsten Ausführung der automatischen Skalierung wieder auf sechs Instanzen herunterskaliert. Die manuelle Skalierung ist temporär, sofern Sie nicht auch die Regeln für die automatische Skalierung zurücksetzen.
Verwenden Sie immer eine Regelkombination für das horizontale Hoch- und Herunterskalieren, die eine Erhöhung und Verringerung durchführt.
Wenn Sie nur einen Teil der Kombination verwenden, erfolgt die automatische Skalierung nur in eine Richtung (Hochskalieren oder Herunterskalieren), bis sie die im Profil definierte maximale oder minimale Anzahl der Instanzen erreicht. Diese Situation ist nicht optimal. Im Idealfall sollten Sie Ihre Ressource in Zeiten hoher Auslastung aufskalieren, um die Verfügbarkeit sicherzustellen. Ebenso sollte Ihre Ressource in Zeiten geringer Auslastung abskaliert werden, damit Sie Kosteneinsparungen realisieren können.
Wenn Sie eine Regel für das Auf- und Abskalieren verwenden, sollten Sie idealerweise dieselbe Metrik nutzen, um beides zu steuern. Andernfalls ist es möglich, dass die Bedingungen für das Herunter- und Hochskalieren gleichzeitig erfüllt werden, was zu einer gewissen Fluktuation führt. Die folgende Regelkombination wird beispielsweise nicht empfohlen, da keine Herunterskalierungsregel für die Arbeitsspeicherauslastung vorhanden ist:
- Falls CPU-Auslastung > 90 %, um 1 hochskalieren
- Falls Arbeitsspeicherauslastung > 90 %, um 1 hochskalieren
- Falls CPU-Auslastung < 45 %, um 1 herunterskalieren
In diesem Beispiel kann eine Situation eintreten, bei der die Arbeitsspeicherauslastung über 90 % liegt, die CPU-Auslastung jedoch weniger als 45 % beträgt. Dies kann zu Fluktuation führen, solange beide Bedingungen erfüllt sind.
Wählen Sie die passende Statistik für Ihre Diagnosemetrik aus
Für die Diagnosemetriken können Sie zwischen Durchschnitt, Minimum, Maximum und Gesamt als Metrik, nach der skaliert werden soll, auswählen. Die am häufigsten verwendete Statistik ist Durchschnitt.
Überlegungen zu Skalierungsschwellenwerten für spezielle Metriken
Für spezielle Metriken, wie die Metrik für die Länge der Azure Storage- oder Azure Service Bus-Warteschlange, ist der Schwellenwert die durchschnittliche Anzahl der Nachrichten, die pro aktueller Anzahl der Instanzen verfügbar ist. Wählen Sie den Schwellenwert für diese Metrik sorgfältig aus.
Veranschaulichen wir diesen Punkt mit einem Beispiel, um sicherzustellen, dass Sie dieses Verhalten besser verstehen:
- Erhöhen der Anzahl der Instanzen um 1, wenn Anzahl der Nachrichten in Storage-Warteschlange >= 50
- Verringern der Anzahl der Instanzen um 1, wenn Anzahl der Nachrichten in Storage-Warteschlange <= 10
Gehen Sie dabei von der folgenden Abfolge aus:
- Es gibt zwei Instanzen der Storage-Warteschlange.
- Es treffen weiterhin Nachrichten ein, und die Gesamtanzahl beim Überprüfen der Storage-Warteschlange liegt bei 50. Sie könnten davon ausgehen, dass die automatische Skalierung eine horizontale Hochskalierungsaktion durchführt. Beachten Sie jedoch, dass es sich immer noch um 50/2 = 25 Nachrichten pro Instanz handelt. So erfolgt keine horizontale Skalierung. Damit die erste Hochskalierung ausgeführt wird, sollte die Gesamtanzahl der Nachrichten in der Storage-Warteschlange 100 sein.
- Nehmen Sie jetzt an, dass die Gesamtanzahl der Nachrichten 100 erreicht.
- Eine dritte Instanz der Storage-Warteschlange wird aufgrund einer Hochskalierungsaktion hinzugefügt. Die nächste Aktion zur horizontalen Skalierung wird erst durchgeführt, wenn die Gesamtzahl der Nachrichten in der Warteschlange 150 erreicht, da 150 / 3 = 50.
- Jetzt nimmt die Anzahl der Nachrichten in der Warteschlange ab. Bei drei Instanzen wird die erste horizontale Herunterskalierungsaktion durchgeführt, wenn die Gesamtzahl der Nachrichten in der Warteschlange 30 beträgt, da 30/3 = 10 Nachrichten pro Instanz ergeben – den Schwellenwert zum horizontalen Herunterskalieren.
Skalierungsüberlegungen, wenn in einem Profil mehrere Regeln konfiguriert sind
Es gibt Fälle, in denen Sie möglicherweise mehrere Regeln innerhalb eines Profils festlegen müssen. Die folgenden Regeln für die automatische Skalierung werden von der Engine für die automatische Skalierung verwendet, wenn mehrere Regeln festgelegt sind:
- Beim horizontalen Hochskalieren wird die Autoskalierung durchgeführt, sobald eine Regel erfüllt wird.
- Beim Herunterskalieren wird die automatische Skalierung nur ausgeführt, wenn alle Regeln erfüllt werden.
Zur Veranschaulichung nehmen Sie an, Sie hätten die folgenden vier Regeln für die automatische Skalierung:
- Falls CPU-Auslastung < 30 %, um 1 herunterskalieren
- Falls Arbeitsspeicherauslastung < 50 %, um 1 herunterskalieren
- Horizontal um 1 hochskalieren, falls CPU-Auslastung > 75 %
- Horizontal um 1 hochskalieren, falls Arbeitsspeicherauslastung > 75 %
Daraufhin erfolgt die folgende Aktion:
- Falls die CPU-Auslastung 76 % und die Arbeitsspeicherauslastung 50 % beträgt, erfolgt eine Aufskalierung.
- Falls die CPU-Auslastung 50 % und die Arbeitsspeicherauslastung 76 % beträgt, erfolgt eine Aufskalierung.
Andererseits wird, wenn die CPU-Auslastung 25 % und die Arbeitsspeicherauslastung 51 % beträgt, nicht automatisch herunterskaliert. Um herunterzuskalieren, muss die CPU-Auslastung 29 % und die Arbeitsspeicherauslastung 49 % betragen.
Wählen Sie als Standard immer eine sichere Anzahl an Instanzen
Die Standardinstanzenanzahl ist wichtig, da die Autoskalierung Ihren Dienst auf diese Instanzenanzahl skaliert, wenn keine Metriken zur Verfügung stehen. Wählen Sie daher eine Standardanzahl an Instanzen, die für Ihre Workloads sicher ist.
Konfigurieren der Benachrichtigungen für das automatische Skalieren
Die automatische Skalierung schreibt in das Aktivitätsprotokoll, wenn eine der folgenden Bedingungen eintritt:
- Die Autoskalierung gibt einen Skalierungsvorgang aus.
- Der Autoskalierungsdienst schließt eine Skalierungsaktion erfolgreich ab.
- Bei einer Skalierungsaktion der automatischen Skalierung tritt ein Fehler auf.
- Für den Autoskalierungsdienst stehen keine Metriken zur Verfügung, auf deren Grundlage eine Skalierungsentscheidung getroffen werden kann.
- Metriken stehen wieder zur Verfügung (Wiederherstellung), um eine Skalierungsentscheidung zu treffen.
- Die automatische Skalierung erkennt eine Fluktuation und bricht den Skalierungsversuch ab. In dieser Situation wird der Protokolltyp
Flapping
angezeigt. Wenn dieser Protokolltyp angezeigt wird, sollten Sie prüfen, ob die Schwellenwerte zu dicht beieinander liegen. - Die automatische Skalierung erkennt eine Fluktuation, kann aber immer noch erfolgreich skalieren. In dieser Situation wird der Protokolltyp
FlappingOccurred
angezeigt. Wenn dieser Protokolltyp angezeigt wird, hat die Engine für die automatische Skalierung versucht, eine Skalierung durchzuführen (z. B. von vier Instanzen auf zwei), jedoch festgestellt, dass diese Änderung zu Fluktuation führt. Stattdessen hat die Engine für die automatische Skalierung auf eine andere Anzahl von Instanzen skaliert (z. B. drei Instanzen anstelle von zwei verwendet), was keine Fluktuation mehr verursacht, sodass eine Skalierung auf diese Anzahl von Instanzen erfolgt ist.
Sie können auch eine Aktivitätsprotokollwarnung zur Überwachung der Integrität der Engine für die automatische Skalierung verwenden. Ein Beispiel beschreibt das Erstellen einer Aktivitätsprotokollwarnung zum Überwachen aller Vorgänge der Engine für die automatische Skalierung in Ihrem Abonnement. Ein anderes Beispiel beschreibt das Erstellen einer Aktivitätsprotokollwarnung zum Überwachen aller fehlerhaften Vorgänge zum automatischen Herunterskalieren/Hochskalieren in Ihrem Abonnement.
Neben der Verwendung von Warnungen zu Aktivitätsprotokollen können Sie auf der Registerkarte „Benachrichtigungen“ in den Einstellungen für die automatische Skalierung auch E-Mail- oder Webhook-Benachrichtigungen konfigurieren, um bei Skalierungsaktionen informiert zu werden.
Sicheres Senden von Daten mithilfe von TLS 1.2
Um die Sicherheit von Daten bei der Übertragung an Azure Monitor sicherzustellen, wird dringend empfohlen, den Agent so zu konfigurieren, dass er mindestens TLS 1.2 (Transport Layer Security) verwendet. Ältere Versionen von TLS/Secure Sockets Layer (SSL) wurden als gefährdet eingestuft. Sie funktionieren aus Gründen der Abwärtskompatibilität zwar noch, werden jedoch nicht empfohlen. Die IT-Branche ist bemüht, die Unterstützung dieser älteren Protokolle baldmöglichst zu beenden.
Das PCI Security Standards Council hat den 30. Juni 2018 als Termin für die Deaktivierung älterer Versionen von TLS/SSL und das Upgrade auf sicherere Protokolle festgelegt. Sobald Azure keine Legacy-Unterstützung mehr anbietet und wenn Ihre Agents nicht mindestens über TLS 1.2 kommunizieren können, ist das Senden von Daten an Azure Monitor-Protokolle nicht möglich.
Es wird empfohlen, Ihren Agent nicht explizit so zu konfigurieren, dass nur TLS 1.2 verwendet wird, es sei denn, dies ist unbedingt erforderlich. Dem Agent sollte stattdessen besser das automatische Erkennen, Aushandeln und Nutzen zukünftiger Sicherheitsstandards ermöglicht werden. Andernfalls könnten Sie die zusätzliche Sicherheit neuerer Standards verpassen und möglicherweise Probleme auftreten, wenn TLS 1.2 sich im Vergleich mit diesen neueren Standards als veraltet erweist.
Nächste Schritte
- Fluktuation bei der Autoskalierung
- Erstellen einer Aktivitätsprotokollwarnung, um alle Vorgänge der Engine für die Autoskalierung für Ihr Abonnement zu überwachen
- Erstellen einer Aktivitätsprotokollwarnung, um alle Autoskalierungsvorgänge zum Ab- und Aufskalieren in Ihrem Abonnement, bei denen Fehler aufgetreten sind, zu überwachen