
Wir erinnern daran, dass die Grundlage des Elastic Stack eine nicht-relationale Datenbank namens Elasticsearch, die Web-OberflÀche Kibana und Datenverarbeiter (am bekanntesten Logstash, verschiedene Beats, APM und andere) bildet. Eine der angenehmen ErgÀnzungen dieses gesamten Produktstacks ist die Datenanalyse mithilfe von Algorithmen des maschinellen Lernens. In diesem Artikel klÀren wir, was diese Algorithmen darstellen. Bitte klicken Sie weiter.
Maschinelles Lernen ist eine kostenpflichtige Funktion des bedingt kostenlosen Elastic Stack und Teil des X-Pack-Pakets. Um es zu nutzen, mĂŒssen Sie nach der Installation lediglich einen 30-tĂ€gigen Testzeitraum aktivieren. Nach Ablauf der Testphase können Sie UnterstĂŒtzung anfordern, um sie zu verlĂ€ngern, oder ein Abonnement erwerben. Die Kosten fĂŒr das Abonnement richten sich nicht nach dem Datenvolumen, sondern nach der Anzahl der verwendeten Nodes. Ja, das Datenvolumen beeinflusst natĂŒrlich die Anzahl der benötigten Nodes, aber dieser Ansatz zur Lizenzierung ist fĂŒr das Budget des Unternehmens dennoch humaner. Wenn keine hohe Leistung erforderlich ist, kann man auch 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 wird ĂŒbrigens autodetect genannt) verbraucht alles, was die JVM nicht verarbeitet. Auf der Demoplattform ist das nicht so kritisch, in einer Produktionsumgebung ist es jedoch wichtig, separate Nodes fĂŒr die ML-Aufgaben bereitzustellen.
Algorithmen des maschinellen Lernens lassen sich in zwei Kategorien unterteilen â und . Im Elastic Stack gehört der Algorithmus zur Kategorie âohne Lehrerâ. Ăber kann man das mathematische Fundament der Algorithmen des maschinellen Lernens einsehen.
FĂŒr die Analyse verwendet der Algorithmus des maschinellen Lernens die Daten, die in den Elasticsearch-Indizes gespeichert sind. Aufgaben fĂŒr die Analyse können sowohl ĂŒber die BenutzeroberflĂ€che von Kibana als auch ĂŒber die API erstellt werden. Wenn Sie dies ĂŒber Kibana tun, mĂŒssen Sie nicht unbedingt einige Dinge wissen. Zum Beispiel die zusĂ€tzlichen Indizes, die der Algorithmus wĂ€hrend seiner Arbeit verwendet.
ZusĂ€tzliche Indizes, die wĂ€hrend der Analyse verwendet werden.ml-state â Informationen ĂŒber statistische Modelle (Analyse-Einstellungen);
.ml-anomalies-* â Ergebnisse der Arbeiten der ML-Algorithmen;
.ml-notifications â Einstellungen fĂŒr Benachrichtigungen zu den Analyseergebnissen.

Die Datenstruktur in der Elasticsearch-Datenbank besteht aus Indexen und den darin gespeicherten Dokumenten. Im Vergleich zu einer relationalen Datenbank kann der Index mit dem Schema der Datenbank und das Dokument mit einem Datensatz in einer Tabelle verglichen werden. Diese Vergleich ist hypothetisch und dient der vereinfachten VerstĂ€ndlichkeit des weiteren Materials fĂŒr diejenigen, die nur von Elasticsearch gehört haben.
Die API bietet dieselben Funktionen wie die WeboberflĂ€che, daher werden wir zur Veranschaulichung und zum VerstĂ€ndnis der Konzepte zeigen, wie man dies ĂŒber Kibana einrichtet. Im linken MenĂŒ gibt es einen Bereich âMachine Learningâ, in dem man einen neuen Job erstellen kann. In der Kibana-OberflĂ€che sieht dies aus wie auf dem Bild unten. Jetzt werden wir die verschiedenen Aufgabentypen durchgehen und die Analysearten zeigen, die hier erstellt werden können.

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 das Verhalten der parallel analysierten Metriken nicht, wie es im Fall von Multi Metric erscheinen könnte. Um Berechnungen unter BerĂŒcksichtigung der Korrelation verschiedener Metriken durchzufĂŒhren, kann die Population-Analyse verwendet werden. Advanced ist eine feine Einstellung der Algorithmen mit zusĂ€tzlichen Optionen fĂŒr bestimmte Aufgaben.
Single Metric
Die Analyse der VerĂ€nderungen einer einzigen Metrik ist das Einfachste, was man hier tun kann. Nach dem Klick auf âCreate Jobâ wird der Algorithmus nach Anomalien suchen.

Im Feld Aggregation kann der Ansatz zur Suche nach Anomalien ausgewÀhlt werden. Zum Beispiel bei Min werden Werte unterhalb der typischen als anomals angesehen. Es gibt Max, High Mean, Low, Mean, Distinct und andere. Eine Beschreibung aller Funktionen kann angesehen werden. .
Im Feld Field gibt das numerische Feld im Dokument an, nach dem wir die Analyse durchfĂŒhren werden.
Im Feld ist die GranularitĂ€t der Intervalle auf der Zeitachse, nach denen die Analyse durchgefĂŒhrt wird. Man kann der Automatik vertrauen oder manuell wĂ€hlen. Auf dem Bild unten wird ein Beispiel fĂŒr eine zu niedrige GranularitĂ€t gezeigt â man könnte eine Anomalie ĂŒbersehen. Mit dieser Einstellung kann die Empfindlichkeit des Algorithmus gegenĂŒber Anomalien geĂ€ndert werden.

Die Dauer der gesammelten Daten ist ein entscheidender Faktor, der die Effizienz der Analyse beeinflusst. Bei der Analyse bestimmt der Algorithmus die wiederkehrenden Intervalle, berechnet das Konfidenzintervall (Basislinien) und identifiziert Anomalien â atypische Abweichungen vom normalen Verhalten der Metrik. Nur als Beispiel:
Basislinien bei einem kleinen Datenausschnitt:

Wenn der Algorithmus etwas lernen kann, sehen die Basislinien so aus:

Nach dem Start des Auftrags identifiziert der Algorithmus anomale Abweichungen von der Norm und bewertet diese nach der Wahrscheinlichkeit der Anomalie (die Farbe des entsprechenden Labels ist in Klammern angegeben):
Warning (blau): weniger als 25
Minor (gelb): 25-50
Major (orange): 50-75
Critical (rot): 75-100
Im folgenden Diagramm ein Beispiel mit gefundenen Anomalien.

Hier sieht man die Zahl 94, die die Wahrscheinlichkeitsbeschreibung einer Anomalie darstellt. Klar ist, dass, da der Wert nah an 100 ist, wir es hier mit einer Anomalie zu tun haben. In der Spalte unter dem Diagramm wird eine extrem niedrige Wahrscheinlichkeit von 0,000063634% angegeben, dass dort ein Wert der Metrik erscheint.
ZusĂ€tzlich zur Anomalien-Suche in Kibana kann eine Prognose gestartet werden. Das geschieht ganz einfach und aus demselben Anomalien-Dashboard heraus â ĂŒber die SchaltflĂ€che Forecast in der oberen rechten Ecke.

Die Prognose wird maximal fĂŒr 8 Wochen im Voraus erstellt. Auch wenn man es sehr möchte â mehr geht ĂŒber die Designentscheidung nicht.

In bestimmten Situationen kann die Prognose sehr nĂŒtzlich sein, zum Beispiel wenn die Benutzerlast auf die Infrastruktur ĂŒberwacht wird.
Multi Metric
Jetzt kommen wir zur nĂ€chsten Funktion von ML im Elastic Stack â der Analyse mehrerer Metriken auf einmal. Aber das bedeutet nicht, dass die AbhĂ€ngigkeit einer Metrik von einer anderen analysiert wird. Es ist dasselbe wie bei der Einzelmetrik, nur mit mehreren Metriken auf einem Bildschirm, um den Einfluss des einen auf das andere bequem zu vergleichen. Die Analyse der AbhĂ€ngigkeit einer Metrik von einer anderen werden wir im Abschnitt Population erlĂ€utern.
Nach dem Klicken auf das Quadrat mit Multi Metric erscheint ein Fenster mit den Einstellungen. Auf diese gehen wir nÀher ein.

ZunĂ€chst mĂŒssen Felder fĂŒr die Analyse und die Aggregation der Daten ausgewĂ€hlt werden. Die Aggregationsoptionen sind hier dieselben wie fĂŒr die Einzelmetrik (Max, High Mean, Low, Mean, Distinct und andere). AnschlieĂend können die Daten, wenn gewĂŒnscht, nach einem der Felder aufgeteilt werden (Feld Split Data). Im Beispiel haben wir dies nach dem Feld OriginAirportID. Beachten Sie, dass das Diagramm der Metriken auf der rechten Seite nun als Vielzahl von Diagrammen dargestellt ist.

Feld Key Fields (Influencers) beeinflusst direkt die gefundenen Anomalien. StandardmĂ€Ăig wird hier immer mindestens ein Wert vorhanden sein, und Sie können zusĂ€tzliche hinzufĂŒgen. Der Algorithmus wird den Einfluss dieser Felder bei der Analyse berĂŒcksichtigen und die âeinflussreichstenâ Werte anzeigen.
Nach dem Start wird im Kibana-Interface etwa so ein Bild erscheinen.

Das ist die sogenannte Heatmap der Anomalien fĂŒr jeden Wert des Feldes OriginAirportID, das wir angegeben haben. Split Data. Wie bei der Single Metric bedeutet die Farbe das Niveau der anormalen Abweichung. Eine Ă€hnliche Analyse lĂ€sst sich beispielsweise an Arbeitsstationen durchfĂŒhren, um diejenigen zu identifizieren, bei denen verdĂ€chtig viele Autorisierungen stattfinden usw. Wir haben bereits darĂŒber berichtet , die ebenfalls hier gesammelt und analysiert werden können.
Unter der Heatmap befindet sich die Liste der Anomalien, ĂŒber jede kann man zur Single Metric Ansicht fĂŒr eine detaillierte Analyse wechseln.
Population
Um Anomalien unter den Korrelationen zwischen verschiedenen Metriken im Elastic Stack zu suchen, gibt es eine spezialisierte Population-Analyse. Mithilfe dieser lÀsst sich nach anormalen Werten in der Leistung eines Servers im Vergleich zu anderen suchen, zum Beispiel bei steigender Anzahl von Anfragen an das Zielsystem.

In dieser Illustration zeigt das Feld Population den Wert, auf den sich die analysierten Metriken beziehen. In diesem Fall ist es der Prozessname. In der Folge sehen wir, wie die CPU-Auslastung jedes Prozesses sich gegenseitig beeinflusste.
Bitte beachten Sie, dass das Diagramm der analysierten Daten von den FĂ€llen mit Single Metric und Multi Metric abweicht. Dies wurde in Kibana absichtlich so gestaltet, um die Wahrnehmung der Verteilung der Werte analysierter Daten zu verbessern.

Aus dem Diagramm ist ersichtlich, dass der Prozess stress (ĂŒbrigens verursacht durch ein spezielles Tool) auf dem Server poipu, der (oder eine Einflussnehmerin) auf das Auftreten dieser Anomalie Einfluss hatte.
Advanced
Analyse mit feiner Abstimmung. Bei der erweiterten Analyse in Kibana erscheinen zusĂ€tzliche Einstellungen. Nach dem Klicken im ErstellungsmenĂŒ auf das Kachel-Advanced öffnet sich ein solches Fenster mit Tabs. Der Tab Job Details wurde absichtlich ausgelassen, dort befinden sich grundlegende Einstellungen, die nicht direkt zur Analyseeinstellung gehören.

Im summary_count_field_name kann optional der Name des Feldes in Dokumenten angegeben werden, das aggregierte Werte enthÀlt. In diesem Beispiel handelt es sich um die Anzahl der Ereignisse pro Minute. In wird der Name des Feldes aus dem Dokument angegeben, das einen variablen Wert enthÀlt. Nach diesem Feld können die analysierten Daten in Teilmengen unterteilt werden. Bitte beachten Sie die SchaltflÀche Add detector in der vorherigen Abbildung. Unten das Ergebnis des Klicks auf diese SchaltflÀche.

Hier ist ein zusÀtzlicher Einstellungsblock zur Anpassung des Anomalie-Detektors an eine bestimmte Aufgabe. Konkrete AnwendungsfÀlle (insbesondere im Bereich Sicherheit) planen wir in den kommenden Artikeln zu behandeln. Zum Beispiel, einen der behandelten FÀlle an. Er steht im Zusammenhang mit der Suche nach selten auftretenden Werten und wird durch .
Im Feld function kann eine bestimmte Funktion zur Anomaliesuche ausgewĂ€hlt werden. Neben rare, gibt es noch ein paar interessante Funktionen â . Sie identifizieren Anomalien im Verhalten der Metriken im Verlauf des Tages oder der Woche. Weitere Analysefunktionen .
Im field_name gibt das Dokumentenfeld an, nach dem die Analyse durchgefĂŒhrt wird. By_field_name kann verwendet werden, um die Analyseergebnisse nach jedem einzelnen Wert des hier angegebenen Dokumentenfeldes zu trennen. Wenn Sie over_field_name ausfĂŒllen, erhalten wir die Population-Analyse, die wir oben behandelt haben. Wenn ein Wert in partition_field_name, angegeben wird, werden fĂŒr dieses Dokumentenfeld separate Basislinien fĂŒr jeden Wert berechnet (als Wert können beispielsweise der Name des Servers oder der Prozess auf dem Server fungieren). In exclude_frequent kann ausgewĂ€hlt werden all oder none, was bedeutet, dass hĂ€ufige Werte des Dokumentenfeldes ausgeschlossen (oder einbezogen) werden.
In diesem Artikel haben wir versucht, eine möglichst knappe Vorstellung von den Möglichkeiten des maschinellen Lernens im Elastic Stack zu geben, es gibt jedoch noch viele Details, die unerwĂ€hnt geblieben sind. ErzĂ€hlen Sie in den Kommentaren, welche AnwendungsfĂ€lle Sie mit Elastic Stack lösen konnten und fĂŒr welche Aufgaben Sie es verwenden. FĂŒr die Kontaktaufnahme mit uns können Sie persönliche Nachrichten auf Habr oder .
Quelle: habr.com
