Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Erinnern wir uns daran, dass der Elastic Stack auf der nicht relationalen Elasticsearch-Datenbank, der Kibana-Webschnittstelle sowie Datensammlern und -prozessoren (dem bekanntesten Logstash, verschiedenen Beats, APM und anderen) basiert. Eine der netten Ergänzungen zum gesamten aufgeführten Produktstapel ist die Datenanalyse mithilfe von Algorithmen für maschinelles Lernen. In dem Artikel verstehen wir, was diese Algorithmen sind. Bitte unter Kat.

Maschinelles Lernen ist eine kostenpflichtige Funktion der Shareware Elastic Stack und im X-Pack enthalten. Um es zu nutzen, aktivieren Sie nach der Installation einfach die 30-Tage-Testversion. Nach Ablauf des Testzeitraums können Sie Support zur Verlängerung anfordern oder ein Abonnement erwerben. Die Kosten für ein Abonnement berechnen sich nicht nach dem Datenvolumen, sondern nach der Anzahl der genutzten Knoten. Nein, das Datenvolumen wirkt sich natürlich auf die Anzahl der benötigten Knoten aus, dennoch ist dieser Lizenzierungsansatz im Verhältnis zum Unternehmensbudget humaner. Wenn keine hohe Produktivität erforderlich ist, können Sie Geld sparen.

ML im Elastic Stack ist in C++ geschrieben und läuft außerhalb der JVM, in der Elasticsearch selbst läuft. Das heißt, der Prozess (er heißt übrigens Autodetect) verbraucht alles, was die JVM nicht schluckt. Auf einem Demostand ist dies nicht so kritisch, aber in einer Produktionsumgebung ist es wichtig, separate Knoten für ML-Aufgaben zuzuweisen.

Algorithmen für maschinelles Lernen lassen sich in zwei Kategorien einteilen: mit учителем и ohne Lehrer. Im Elastic Stack gehört der Algorithmus zur Kategorie „unüberwacht“. Von Link Sie können den mathematischen Apparat von Algorithmen für maschinelles Lernen sehen.

Um die Analyse durchzuführen, verwendet der Algorithmus für maschinelles Lernen in Elasticsearch-Indizes gespeicherte Daten. Sie können Aufgaben zur Analyse sowohl über die Kibana-Schnittstelle als auch über die API erstellen. Wenn Sie dies über Kibana tun, müssen Sie einige Dinge nicht wissen. Beispielsweise zusätzliche Indizes, die der Algorithmus während seiner Ausführung verwendet.

Zusätzliche Indizes, die im Analyseprozess verwendet werden.ml-state – Informationen zu statistischen Modellen (Analyseeinstellungen);
.ml-anomalies-* – Ergebnisse von ML-Algorithmen;
.ml-Benachrichtigungen – Einstellungen für Benachrichtigungen basierend auf Analyseergebnissen.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Die Datenstruktur in der Elasticsearch-Datenbank besteht aus Indizes und darin gespeicherten Dokumenten. Im Vergleich zu einer relationalen Datenbank kann ein Index mit einem Datenbankschema und ein Dokument mit einem Datensatz in einer Tabelle verglichen werden. Dieser Vergleich ist an Bedingungen geknüpft und wird bereitgestellt, um das Verständnis weiterer Materialien für diejenigen zu erleichtern, die bisher nur von Elasticsearch gehört haben.

Über die API ist die gleiche Funktionalität verfügbar wie über die Webschnittstelle. Zur Verdeutlichung und zum Verständnis der Konzepte zeigen wir daher, wie sie über Kibana konfiguriert wird. Im Menü auf der linken Seite gibt es einen Bereich für maschinelles Lernen, in dem Sie einen neuen Job erstellen können. In der Kibana-Oberfläche sieht es wie im Bild unten aus. Jetzt analysieren wir jeden Aufgabentyp und zeigen die Analysetypen, die hier erstellt werden können.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Single Metric – Analyse einer Metrik, Multi Metric – Analyse von zwei oder mehr Metriken. In beiden Fällen wird jede Metrik in einer isolierten Umgebung analysiert, d. h. Der Algorithmus berücksichtigt nicht das Verhalten parallel analysierter Metriken, wie es im Fall von Multi Metric den Anschein haben könnte. Um Berechnungen unter Berücksichtigung der Korrelation verschiedener Metriken durchzuführen, können Sie die Bevölkerungsanalyse verwenden. Und Advanced optimiert die Algorithmen mit zusätzlichen Optionen für bestimmte Aufgaben.

Einzelner Messwert

Die Analyse von Änderungen in einer einzelnen Metrik ist das einfachste, was hier möglich ist. Nachdem Sie auf Job erstellen geklickt haben, sucht der Algorithmus nach Anomalien.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Im Anhäufung Sie können einen Ansatz zur Suche nach Anomalien wählen. Zum Beispiel wann Min. Werte unter den typischen Werten werden als anomal angesehen. Essen Max, Hoch Mittel, Niedrig, Mittel, Deutlich und andere. Beschreibungen aller Funktionen finden Sie hier Link.

Im Feld gibt das numerische Feld im Dokument an, für das wir die Analyse durchführen.

Im Schaufelspanne — Granularität der Intervalle auf der Zeitachse, entlang derer die Analyse durchgeführt wird. Sie können der Automatisierung vertrauen oder manuell auswählen. Das Bild unten ist ein Beispiel für eine zu niedrige Granularität. Möglicherweise übersehen Sie die Anomalie. Mit dieser Einstellung können Sie die Empfindlichkeit des Algorithmus gegenüber Anomalien ändern.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Die Dauer der gesammelten Daten ist ein entscheidender Faktor, der die Wirksamkeit der Analyse beeinflusst. Während der Analyse identifiziert der Algorithmus sich wiederholende Intervalle, berechnet Konfidenzintervalle (Basislinien) und identifiziert Anomalien – atypische Abweichungen vom normalen Verhalten der Metrik. Nur zum Beispiel:

Basislinien mit einem kleinen Datenstück:

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Wenn der Algorithmus etwas lernen kann, sieht die Grundlinie so aus:

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Nach dem Start der Aufgabe ermittelt der Algorithmus anomale Abweichungen von der Norm und ordnet sie nach der Wahrscheinlichkeit einer Anomalie (die Farbe der entsprechenden Beschriftung ist in Klammern angegeben):

Warnung (blau): weniger als 25
Moll (gelb): 25-50
Major (orange): 50-75
Kritisch (rot): 75-100

Die folgende Grafik zeigt ein Beispiel der gefundenen Anomalien.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Hier sehen Sie die Zahl 94, die die Wahrscheinlichkeit einer Anomalie angibt. Es ist klar, dass, da der Wert nahe bei 100 liegt, eine Anomalie vorliegt. Die Spalte unter der Grafik zeigt die abwertend geringe Wahrscheinlichkeit, dass dort 0.000063634 % des Metrikwerts auftauchen.

Zusätzlich zur Suche nach Anomalien können Sie in Kibana Prognosen ausführen. Dies geschieht einfach und aus der gleichen Ansicht mit der Anomalien-Schaltfläche Prognose in der oberen rechten Ecke.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Die Prognose erfolgt maximal 8 Wochen im Voraus. Selbst wenn Sie es wirklich wollen, ist es von Natur aus nicht mehr möglich.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

In manchen Situationen ist die Prognose sehr nützlich, beispielsweise bei der Überwachung der Benutzerlast auf der Infrastruktur.

Multimetrisch

Kommen wir zur nächsten ML-Funktion im Elastic Stack – der Analyse mehrerer Metriken in einem Stapel. Dies bedeutet jedoch nicht, dass die Abhängigkeit einer Metrik von einer anderen analysiert wird. Dies ist das Gleiche wie „Einzelne Metrik“, jedoch mit mehreren Metriken auf einem Bildschirm, um die Auswirkungen voneinander leicht vergleichen zu können. Wir werden im Abschnitt „Population“ über die Analyse der Abhängigkeit einer Metrik von einer anderen sprechen.

Nach einem Klick auf das Quadrat mit Multi Metric erscheint ein Fenster mit Einstellungen. Schauen wir sie uns genauer an.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Zuerst müssen Sie die Felder für die Analyse und Datenaggregation auswählen. Die Aggregationsoptionen sind hier dieselben wie für Single Metric (Max, Hoch Mittel, Niedrig, Mittel, Deutlich und andere). Falls gewünscht, werden die Daten außerdem in eines der Felder (Feld) unterteilt Daten teilen). Im Beispiel haben wir dies feldweise gemacht OriginAirportID. Beachten Sie, dass das Metrikdiagramm auf der rechten Seite jetzt als mehrere Diagramme dargestellt wird.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Feld Schlüsselfelder (Influencer) wirkt sich direkt auf die erkannten Anomalien aus. Standardmäßig gibt es hier immer mindestens einen Wert, und Sie können weitere hinzufügen. Der Algorithmus berücksichtigt den Einfluss dieser Felder bei der Analyse und zeigt die „einflussreichsten“ Werte an.

Nach dem Start wird so etwas in der Kibana-Oberfläche angezeigt.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Dies ist das sogenannte Heatmap der Anomalien für jeden Feldwert OriginAirportID, was wir in angegeben haben Daten teilen. Wie bei Single Metric zeigt die Farbe den Grad der abnormalen Abweichung an. Es ist praktisch, eine ähnliche Analyse beispielsweise auf Workstations durchzuführen, um diejenigen mit verdächtig vielen Berechtigungen usw. zu verfolgen. Wir haben bereits geschrieben über verdächtige Ereignisse in EventLog Windows, die hier ebenfalls gesammelt und analysiert werden können.

Unterhalb der Heatmap befindet sich eine Liste der Anomalien. Von jeder Anomalie können Sie zur detaillierten Analyse in die Ansicht „Einzelmetrik“ wechseln.

Grundgesamtheit

Um nach Anomalien zwischen Korrelationen zwischen verschiedenen Metriken zu suchen, verfügt der Elastic Stack über eine spezielle Populationsanalyse. Mit seiner Hilfe können Sie nach anomalen Werten in der Leistung eines Servers im Vergleich zu anderen suchen, wenn beispielsweise die Anzahl der Anfragen an das Zielsystem zunimmt.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

In dieser Abbildung gibt das Feld „Population“ den Wert an, auf den sich die analysierten Metriken beziehen. In diesem Fall ist es der Name des Prozesses. Als Ergebnis werden wir sehen, wie sich die Prozessorlast der einzelnen Prozesse gegenseitig beeinflusst.

Bitte beachten Sie, dass sich die Grafik der analysierten Daten von den Fällen mit Single Metric und Multi Metric unterscheidet. Dies wurde in Kibana absichtlich durchgeführt, um eine bessere Wahrnehmung der Werteverteilung der analysierten Daten zu ermöglichen.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Die Grafik zeigt, dass sich der Prozess abnormal verhalten hat Der Stress (übrigens von einem speziellen Dienstprogramm generiert) auf dem Server poipu, der das Auftreten dieser Anomalie beeinflusste (oder sich als Influencer herausstellte).

Fortgeschrittener

Analytik mit Feintuning. Bei der erweiterten Analyse werden in Kibana zusätzliche Einstellungen angezeigt. Nachdem Sie im Erstellungsmenü auf die Kachel „Erweitert“ geklickt haben, erscheint dieses Fenster mit Registerkarten. Tab Job Details Wir haben es absichtlich übersprungen, es gibt Grundeinstellungen, die nicht direkt mit der Einrichtung der Analyse zusammenhängen.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

В summary_count_field_name Optional können Sie den Namen eines Felds aus Dokumenten angeben, die aggregierte Werte enthalten. In diesem Beispiel die Anzahl der Ereignisse pro Minute. IN Kategorisierungsfeldname Gibt den Namen und Wert eines Felds aus dem Dokument an, das einen Variablenwert enthält. Mithilfe der Maske in diesem Feld können Sie die analysierten Daten in Teilmengen aufteilen. Achten Sie auf den Knopf Detektor hinzufügen in der vorherigen Abbildung. Unten sehen Sie das Ergebnis des Klickens auf diese Schaltfläche.

Maschinelles Lernen im Elastic Stack verstehen (auch bekannt als Elasticsearch, auch bekannt als ELK)

Hier ist ein zusätzlicher Einstellungsblock zum Konfigurieren des Anomaliedetektors für eine bestimmte Aufgabe. Wir planen, in den folgenden Artikeln spezifische Anwendungsfälle (insbesondere Sicherheitsfälle) zu diskutieren. Beispielsweise, aussehen einer der zerlegten Koffer. Es ist mit der Suche nach selten vorkommenden Werten verbunden und wird umgesetzt seltene Funktion.

Im Funktion Sie können eine bestimmte Funktion auswählen, um nach Anomalien zu suchen. Außer selten, es gibt noch ein paar weitere interessante Funktionen - time_of_day и time_of_week. Sie identifizieren Anomalien im Verhalten von Kennzahlen im Laufe des Tages bzw. der Woche. Weitere Analysefunktionen steht in der Dokumentation.

В Feldname gibt das Feld des Dokuments an, für das die Analyse durchgeführt wird. Nach_Feldname kann verwendet werden, um die Analyseergebnisse für jeden einzelnen Wert des hier angegebenen Dokumentfelds zu trennen. Wenn Sie füllen over_field_name Sie erhalten die Populationsanalyse, die wir oben besprochen haben. Wenn Sie einen Wert in angeben Partitionsfeldname, dann werden für dieses Feld des Dokuments für jeden Wert separate Baselines berechnet (der Wert kann beispielsweise der Name des Servers oder Prozesses auf dem Server sein). IN ausschließen_frequent kann wählen alle oder keine, was bedeutet, dass häufig vorkommende Dokumentfeldwerte ausgeschlossen (oder eingeschlossen) werden.

In diesem Artikel haben wir versucht, einen möglichst prägnanten Überblick über die Möglichkeiten des maschinellen Lernens im Elastic Stack zu geben; es bleiben noch viele Details hinter den Kulissen. Teilen Sie uns in den Kommentaren mit, welche Fälle Sie mit Elastic Stack lösen konnten und für welche Aufgaben Sie es verwenden. Um mit uns in Kontakt zu treten, können Sie persönliche Nachrichten auf Habré oder verwenden Feedback-Formular auf der Website.

Source: habr.com

Kommentar hinzufügen