Wenn es um die Verwaltung von Internetpräsenzen geht, ist der Unterschied zwischen einem kleinen technischen Problem und einem größeren Vorfall oft eine Frage der Geschwindigkeit. Proaktive Warnmeldungen spielen dabei eine entscheidende Rolle. Deshalb haben wir die HTTP-Fehlerquoten-Benachrichtigungen eingeführt, mit der Administratoren einen Überblick darüber erhalten, wann bei Endnutzern Fehler auftreten.
Was aber, wenn es zu Problemen kommt, die nicht als Fehler angezeigt werden, etwa ein plötzlicher Rückgang oder abrupter Anstieg des Datenverkehrs?
Ab sofort bieten wir unseren Enterprise-Kunden Benachrichtigungen bei Traffic-Anomalien. Diese Meldungen werden angezeigt, wenn Cloudflare unerwartete Veränderungen im Datenverkehr feststellt, und geben einen weiteren wertvollen Einblick in den Zustand Ihrer Systeme.
Unerwartete Veränderungen beim Traffic können auf viele Dinge hinweisen. Wenn Sie eine E-Commerce-Website betreiben und einen sprunghaften Anstieg des Datenverkehrs feststellen, könnte das eine gute Nachricht sein: Möglicherweise reagieren die Kunden auf eine von Ihnen gestartete Verkaufsaktion oder Sie haben gerade eine Anzeige in einer beliebten Fernsehsendung geschaltet und erhalten deshalb mehr Aufmerksamkeit. Es könnte aber auch bedeuten, dass etwas schief läuft: Vielleicht hat jemand versehentlich eine Firewall-Regel deaktiviert, weshalb Sie nun mehr bösartigen Datenverkehr verzeichnen. In jedem Fall möchten Sie wahrscheinlich darüber im Bilde sein, dass sich etwas verändert hat.
Auch eine plötzliche Abnahme des Traffic kann viele Ursachen haben. Vielleicht ist es Freitagnachmittag und alle Ihre Mitarbeitenden haben sich abgemeldet und greifen nicht mehr auf Ihre Firmenwebsite zu. Möglicherweise funktioniert ein Link zu Ihrer Website nicht mehr, sodass potenzielle Kunden diese nicht erreichen. Da Ihnen mit jeder Minute, in der der Datenverkehr niedrig ist, Einnahmen verloren gehen können, möchten Sie so schnell wie möglich in Erfahrung bringen, was dahintersteckt.
Woher wissen wir, wann eine Warnung erforderlich ist?
Anomalien in Zeitreihendaten lassen sich nur schwer zuverlässig berechnen. Am leichtesten ist es, dafür grundlegende Schwellenwerte zu verwenden. Wie wir jedoch bereits in einem früheren Blogbeitrag beschrieben haben, sind einfache Schwellenwerte nicht sehr genau, wenn man feststellen möchte, wann tatsächlich etwas schief läuft. Diese Methode funktioniert nicht richtig, weil es einfach zu viele Grenzfälle gibt.
Die Berechnung von Anomalien bei HTTP-Fehlern ist relativ einfach. Wir wissen, dass die Zahl der Fehler im Allgemeinen sehr niedrig sein sollte, sodass jeder steile Anstieg ein Problem darstellt und daher eine Warnung erforderlich ist. Aus diesem Grund verwenden wir Service Level Objectives (SLO), um Anomalien für unsere HTTP-Fehlerquotenmeldungen zu berechnen.
Bei der Analyse des gesamten HTTP-Traffics wird jedoch ähnlich vorgegangen wie bei den Cloudflare-Sicherheitsvorfällen: Es gibt einen allgemeinen Referenzwert für Vorfälle, der anhand von Langzeittrends berechnet wird. Jede Abweichung von diesem Referenzwert muss gemeldet werden. Aufgrund dieser Ähnlichkeiten haben wir beschlossen, für die Benachrichtigungen über Traffic-Anomalien die gleichen Berechnungen zu verwenden wie bei Sicherheitsvorfällen: z-Scores. Dabei wird der aktuelle Wert mit dem Durchschnittswert eines bestimmten Zeitraums verglichen. Der z-Score ergibt sich aus der Zahl der Standardabweichungen des aktuellen Werts vom Durchschnitt.
Darstellung von HTTP-Traffic und der zugehörigen z-Scores. Blau ist der HTTP-Datenverkehr, lila ist die positive z-Score-Grenze des Traffic und grün die negative.
Bei Meldungen von Traffic-Anomalien vergleichen wir den Datenverkehr der letzten fünf Minuten (das kleine Zeitfenster) mit dem durchschnittlichen Datenverkehr der letzten vier Stunden (das große Zeitfenster). Positive z-Scores zeigen einen Anstieg an, negative z-Scores einen Rückgang. Wenn der aktuelle Wert mehr als 3,5 Standardabweichungen vom Durchschnitt aufweist, wird eine Warnmeldung ausgegeben. Wir messen alle fünf Minuten, sodass wir bei einem starken Anstieg des Traffic oder einem Rückgang rechtzeitig Alarm schlagen können.
Der grüne Bereich ist das große Zeitfenster und der rote Bereich das kleine.
Bei Sicherheitsvorfällen wird nur im Fall eines starken Anstiegs eine Benachrichtigung angezeigt (weil ein Rückgang fast immer etwas Positives ist). Im Fall von Traffic-Anomalien werden dagegen sowohl bei einem starken Anstieg als auch bei Rückgängen Warnmeldungen versandt, da ein Rückgang des HTTP-Datenverkehrs wahrscheinlich auf ein Problem hindeutet, während ein Anstieg gut oder schlecht sein kann.
Wie bei den Warnungen über Sicherheitsvorfälle unterstützen auch die Benachrichtigungen über Traffic-Anomalien Mindestschwellenwerte. Somit wird keine Warnung ausgeben, wenn wir zwar feststellen, dass ein Ereignis außerhalb von 3,5 Standardabweichungen liegt, die Anzahl der Ereignisse jedoch unbedeutend ist. Ein starker Anstieg muss mindestens 200 Anfragen betragen und ein Rückgang muss ebenfalls mindestens 200 Anfragen umfassen. Dadurch lösen kleinere Schwankungen beim Traffic keine lästigen Warnmeldungen aus.
Eingehendere Betrachtung
Cloudflare speichert in Clickhouse Stichprobenstatistiken über die Anfragen, die unser Netzwerk passieren. Jede Minute nehmen wir den HTTP-Traffic von Clickhouse und speichern ihn in einer Instanz von VictoriaMetrics, einer Lösung zur Speicherung von Zeitreihendaten. VictoriaMetrics bietet uns kostenlos sofort einsatzbereite algorithmische Funktionen und hat sich für unseren Anwendungsfall als sehr geeignet erwiesen. Wir haben uns aus mehreren Gründen für VictoriaMetrics entschieden.
Erstens ist die Lösung leicht zu konfigurieren und zu bedienen. Als Team wollen wir den Betriebsaufwand so gering wie möglich halten und VictoriaMetrics hat sich bisher hervorragend bewährt. Zweitens lässt sich VictoriaMetrics horizontal skalieren, d. h. wir können die Lösung in einem hochverfügbaren Modus betreiben. Für ein System wie dieses, bei dem wir etwas Zuverlässiges brauchen, um zeitkritische Informationen für unsere Kunden zu berechnen, ist Hochverfügbarkeit unerlässlich. Schließlich haben wir bei unseren Tests festgestellt, dass VictoriaMetrics etwa ⅓ des Arbeitsspeichers benötigt, den Prometheus, ein ähnliches Alternativprodukt, für denselben Anwendungsfall beansprucht.
Sobald wir über Daten in VictoriaMetrics verfügen, können wir Abfragen durchführen und feststellen, ob wir unsere Kunden auf Grundlage der von ihnen im Vorfeld erstellten Konfigurationen benachrichtigen müssen oder nicht. Zu diesem Zweck nutzen wir unser bestehendes Warnmeldesystem, das wir bereits im Jahr 2019 in einem Blogbeitrag beschrieben haben. Wir wissen, dass wir uns darauf verlassen können, dass unser aktuelles Benachrichtigungssystem für die letzte Meile diese kritischen Meldungen an unsere Kunden übermittelt.
Datenfluss von der HTTP-Anfrage zur Benachrichtigung
Setting up the Notification
Um diese Benachrichtigung zu konfigurieren, rufen Sie im Dashboard die Registerkarte „Notifications“ auf. Wählen Sie „Traffic Anomalies“ als Benachrichtigungstyp aus. Wie bei allen Cloudflare-Benachrichtigungen können Sie Ihre Benachrichtigung benennen, beschreiben und auswählen, auf welche Weise Sie benachrichtigt werden.
Benachrichtigung über Traffic-Anomalien im Dashboard
Sie können wählen, welche Domains Sie auf Traffic-Anomalien überwachen lassen, ob Sie Datenverkehr einbeziehen, der bereits einer Abwehr durch Cloudflare DoS- oder WAF-Produkte unterzogen wurde, und ob Sie bestimmte Statuscodes ein- oder ausschließen. Sie können auch entscheiden, ob Sie bei einem starken Anstieg des Traffic, bei einem Rückgang oder in beiden Fällen informiert werden.
Wir freuen uns, unsere Enterprise-Kunden künftig mit wertvollen Benachrichtigungen über den allgemeinen Zustand ihrer Systeme unterstützen zu können. Rufen Sie einfach die Registerkarte „Notifications“ im Dashboard auf, um diese neue Benachrichtigung auszuprobieren!