
Wir erinnern daran, dass die Grundlage des Elastic Stack aus der nicht-relationalen Datenbank Elasticsearch, der WeboberflĂ€che Kibana und Datenverarbeitungs-Tools besteht (am bekanntesten sind Logstash, verschiedene Beats, APM und andere). Eine der nĂŒtzlichen ErgĂ€nzungen dieses gesamten Produktstacks ist die Datenanalyse mithilfe von Algorithmen fĂŒr maschinelles Lernen. In diesem Artikel klĂ€ren wir, was diese Algorithmen sind. Wir bitten um Ihr VerstĂ€ndnis.
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 einfach die 30-tĂ€gige Testversion aktivieren. Nach Ablauf der Testphase können Sie UnterstĂŒtzung zur VerlĂ€ngerung anfordern oder ein Abonnement erwerben. Die Kosten des Abonnements werden nicht anhand des Datenvolumens, sondern nach der Anzahl der verwendeten Knoten berechnet. NatĂŒrlich beeinflusst das Datenvolumen die Anzahl der benötigten Knoten, aber dieser Lizenzierungsansatz ist dennoch budgetfreundlicher fĂŒr das Unternehmen. 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 selbst Elasticsearch betrieben wird. Das heiĂt, der Prozess (er wird ĂŒbrigens autodetect genannt) konsumiert alles, was die JVM nicht verarbeiten kann. In einer Demoumgebung ist das nicht so kritisch, aber in einer Produktionsumgebung ist es wichtig, separate Knoten fĂŒr ML-Aufgaben bereitzustellen.
Die Algorithmen des maschinellen Lernens lassen sich in zwei Kategorien unterteilen â und . Im Elastic Stack gehört der Algorithmus zur Kategorie "unĂŒberwachtes Lernen". Ăber kann man die mathematischen Grundlagen der Algorithmen des maschinellen Lernens einsehen.
FĂŒr die DurchfĂŒhrung von Analysen nutzt der Algorithmus des maschinellen Lernens Daten, die in den Elasticsearch-Indizes gespeichert sind. AnalysauftrĂ€ge können sowohl ĂŒber die Kibana-OberflĂ€che als auch ĂŒber die API erstellt werden. Bei der DurchfĂŒhrung ĂŒber Kibana sind einige Dinge nicht zwingend erforderlich. Zum Beispiel die zusĂ€tzlichen Indizes, die der Algorithmus wĂ€hrend seiner Arbeit verwendet.
ZusĂ€tzliche Indizes, die im Analyseprozess verwendet werden,.ml-state â Informationen ĂŒber statistische Modelle (Analyseeinstellungen);
.ml-anomalies-* â Ergebnisse der Arbeit der ML-Algorithmen;
.ml-notifications â Einstellungen fĂŒr Benachrichtigungen zu den Analyseergebnissen.

Die Datenstruktur in einer Elasticsearch-Datenbank besteht aus Indizes und den darin gespeicherten Dokumenten. Im Vergleich zu einer relationalen Datenbank kann ein Index mit dem Schema einer Datenbank verglichen werden, wĂ€hrend ein Dokument einer Zeile in einer Tabelle entspricht. Diese Vergleich ist bedingt und dient der Vereinfachung des VerstĂ€ndnisses des folgenden Materials fĂŒr diejenigen, die nur von Elasticsearch gehört haben.
Ăber die API steht dieselbe FunktionalitĂ€t zur VerfĂŒgung wie ĂŒber die WeboberflĂ€che. Daher werden wir zur Veranschaulichung und zum VerstĂ€ndnis der Konzepte zeigen, wie die Einstellungen ĂŒber Kibana vorgenommen werden. Im linken MenĂŒ gibt es den Abschnitt Machine Learning, in dem Sie eine neue Aufgabe (Job) erstellen können. Im Kibana-Interface sieht das aus wie auf dem Bild unten. Jetzt werden wir jeden Aufgabentyp erlĂ€utern und die Arten von Analysen zeigen, die hier konstruiert werden können.

Single Metric â Analyse einer einzelnen 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 parallel analysierter Metriken nicht, wie es im Fall von Multi Metric erscheinen könnte. Um Berechnungen unter BerĂŒcksichtigung der Korrelation verschiedener Metriken durchzufĂŒhren, kann eine Populationsanalyse angewendet werden. Advanced ist eine Feinabstimmung der Algorithmen mit zusĂ€tzlichen Optionen fĂŒr spezifische Aufgaben.
Single Metric
Die Analyse von Ănderungen einer einzelnen Metrik ist das Einfachste, was hier getan werden kann. Nach dem Klicken auf Create Job sucht der Algorithmus nach Anomalien.

Im Feld Aggregation Es kann eine Methode zur Anomalien-Suche ausgewĂ€hlt werden. Zum Beispiel, bei Min werden Werte unterhalb der ĂŒblichen als anomale betrachtet. Es gibt Max, High Mean, Low, Mean, Distinct und weitere. Eine Beschreibung aller Funktionen kann eingesehen werden. .
Im Feld Field das numerische Feld im Dokument angeben, nach dem die Analyse durchgefĂŒhrt wird.
Im Feld â die GranularitĂ€t der Intervalle auf der Zeitachse, anhand derer die Analyse durchgefĂŒhrt wird. Sie können der Automatisierung vertrauen oder manuell auswĂ€hlen. Im Bild unten sehen Sie ein Beispiel fĂŒr zu niedrige GranularitĂ€t â Sie könnten eine Anomalie ĂŒbersehen. Mit dieser Einstellung können Sie die SensibilitĂ€t des Algorithmus fĂŒr Anomalien Ă€ndern.

Die Dauer der gesammelten Daten ist entscheidend fĂŒr die Effizienz der Analyse. Bei der Analyse bestimmt der Algorithmus wiederkehrende Intervalle, berechnet das Vertrauensintervall (Basislinien) und identifiziert Anomalien â untypische Abweichungen vom normalen Verhalten der Metrik. Nur als Beispiel:
Basislinien bei einem kleinen Datenabschnitt:

Wenn der Algorithmus etwas hat, woran er lernen kann â erscheinen die Basislinien so:

Nachdem die Aufgabe ausgefĂŒhrt wurde, identifiziert der Algorithmus anomale Abweichungen von der Norm und klassifiziert sie nach der Wahrscheinlichkeit einer Anomalie (in Klammern ist die Farbe des entsprechenden Labels angegeben):
Warning (blau): weniger als 25
Minor (gelb): 25-50
Major (orange): 50-75
Critical (rot): 75-100
Im folgenden Diagramm sehen Sie ein Beispiel mit gefundenen Anomalien.

Hier sehen wir die Zahl 94, die die Wahrscheinlichkeit einer Anomalie angibt. Es ist offensichtlich, dass ein Wert nahe 100 bedeutet, dass wir es mit einer Anomalie zu tun haben. In der Spalte unter dem Diagramm wird eine vernachlÀssigbar geringe Wahrscheinlichkeit von 0,000063634 % angegeben, dass dort ein Metrikwert erscheint.
Neben der Anomalieerkennung in Kibana können Sie auch Vorhersagen durchfĂŒhren. Dies geschieht ganz einfach aus derselben Ansicht mit Anomalien â die SchaltflĂ€che Prognose in der oberen rechten Ecke.

Die Prognose kann maximal 8 Wochen im Voraus erstellt werden. Selbst wenn es sehr gewĂŒnscht ist â mehr ist designbedingt nicht möglich.

In einigen Situationen kann die Prognose sehr nĂŒtzlich sein, zum Beispiel beim Verfolgen der Benutzerlast auf die Infrastruktur.
Multi Metric
Kommen wir zur nĂ€chsten Möglichkeit von ML im Elastic Stack â der gleichzeitigen Analyse mehrerer Metriken. Das bedeutet jedoch nicht, dass wir die AbhĂ€ngigkeit einer Metrik von einer anderen analysieren. Es ist dasselbe wie bei der Einzelmetrik, nur mit mehreren Metriken auf einem Bildschirm zum besseren Vergleich der EinflĂŒsse. Ăber die Analyse der AbhĂ€ngigkeit einer Metrik von einer anderen werden wir im Abschnitt Bevölkerung sprechen.
Nach dem Klicken auf das Quadrat mit der Multi Metric erscheint ein Fenster mit den Einstellungen. Darauf werden wir nÀher eingehen.

ZunĂ€chst mĂŒssen Sie die Felder fĂŒr die Analyse auswĂ€hlen und die Daten entsprechend aggregieren. Die Aggregationsoptionen sind hier die gleichen wie bei Single Metric (Max, High Mean, Low, Mean, Distinct und andere). AnschlieĂend können die Daten nach einem der Felder aufgeteilt werden (Feld Daten aufteilen). Im Beispiel haben wir dies nach dem Feld OriginAirportID. Beachten Sie, dass das Diagramm der Metriken auf der rechten Seite jetzt in Form mehrerer Grafiken dargestellt wird.

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

Dies ist die sogenannte Heatmap der Anomalien fĂŒr jeden Wert des Feldes OriginAirportID, das wir in Daten aufteilen. Ăhnlich wie im Fall von Single Metric zeigt die Farbe das MaĂ des anomalen Abweichens an. Eine Ă€hnliche Analyse lĂ€sst sich bequem zum Beispiel fĂŒr Arbeitsstationen durchfĂŒhren, um diejenigen zu verfolgen, bei denen verdĂ€chtig viele Anmeldungen stattfinden usw. Wir haben bereits ĂŒber , die ebenfalls hier gesammelt und analysiert werden können.
Unter der WĂ€rmekarte finden Sie eine Liste von Anomalien, von denen jede zu einer Ansicht der Einzelmetrik fĂŒr eine detaillierte Analyse weiterleitet.
Bevölkerung
Um Anomalien in den Korrelationen zwischen verschiedenen Metriken im Elastic Stack zu suchen, gibt es eine spezielle Analyse der Bevölkerung. Mit dieser Analyse können anomale Werte in der Leistung eines Servers im Vergleich zu anderen gefunden werden, zum Beispiel bei steigendem Anfragevolumen an das Zielsystem.

Auf dieser Abbildung wird im Feld Bevölkerung der Wert angezeigt, auf den sich die analysierten Metriken beziehen. In diesem Fall ist es der Name des Prozesses. Dadurch sehen wir, wie die CPU-Auslastung jeder dieser Prozesse sich gegenseitig beeinflusst hat.
Bitte beachten Sie, dass sich das Diagramm der analysierten Daten von den FĂ€llen bei der Einzelmetrik und der Mehrfachmetrik unterscheidet. Dies wurde in Kibana bewusst so gestaltet, um die Wahrnehmung der Verteilung der analysierten Werte zu verbessern.

Aus dem Diagramm geht hervor, dass der Prozess stress (ĂŒbrigens von einem speziellen Tool erzeugt) auf dem Server poipu, der (oder der Einflussnehmer) auf das Entstehen dieser Anomalie hatte.
Erweitert
Fein abgestimmte Analytik. Bei der Advanced-Analyse in Kibana erscheinen zusĂ€tzliche Einstellungen. Nach dem Klick im ErstellungsmenĂŒ auf die Kachel Advanced öffnet sich ein Fenster mit Registerkarten. Die Registerkarte Job Details haben wir absichtlich ausgelassen, da dort die grundlegenden Einstellungen stehen, die nicht direkt mit der Analyseeinstellung zu tun haben.

In summary_count_field_name kann optional der Name des Feldes aus den Dokumenten angegeben werden, das aggregierte Werte enthÀlt. In diesem Beispiel handelt es sich um die Anzahl der Ereignisse pro Minute. In der wird der Name eines Feldwerts aus dem Dokument angegeben, das einen variablen Wert enthÀlt. Mit diesem Feld kann man die analysierten Daten in Untergruppen unterteilen. Achten Sie auf die SchaltflÀche Add detector in der vorherigen Abbildung. Unten sehen Sie das Ergebnis des Klicks auf diese SchaltflÀche.

Hier befindet sich ein zusĂ€tzlicher Einstellungsblock zur Konfiguration des Anomaliedetektors fĂŒr eine bestimmte Aufgabe. Wir planen, spezifische AnwendungsfĂ€lle (insbesondere im Sicherheitsbereich) in den nĂ€chsten Artikeln zu behandeln. Zum Beispiel, einer der behandelten FĂ€lle. Er bezieht sich auf die Suche nach selten auftretenden Werten und wird durch die .
Im Feld realisieren. Sie können eine spezifische Funktion zur Erkennung von Anomalien auswĂ€hlen. Neben seltenen, gibt es auch ein paar interessante Funktionen â . Diese erkennen Anomalien im Verhalten der Metriken im Laufe des Tages oder der Woche. Weitere Analysefunktionen .
In feldname gibt das Feld des Dokuments an, nach dem analysiert werden soll. nach_feldname kann verwendet werden, um die Analyseergebnisse nach jedem einzelnen Wert des hier angegebenen Dokumentfelds zu unterteilen. Wenn Sie ĂŒber_feldname verwenden, erhalten Sie eine Population-Analyse, die wir zuvor betrachtet haben. Wenn Sie einen Wert in partition_feldname, angeben, werden fĂŒr dieses Dokumentfeld separate Basislinien fĂŒr jeden Wert berechnet (als Wert können beispielsweise der Name des Servers oder des Prozesses auf dem Server dienen). In hĂ€ufig_ausgeschlossen kann ausgewĂ€hlt werden all oder keine, was bedeutet, dass hĂ€ufig vorkommende Werte der Dokumentfelder ausgeschlossen (oder eingeschlossen) werden.
In diesem Artikel haben wir versucht, einen kompakten Ăberblick ĂŒber die Möglichkeiten des maschinellen Lernens im Elastic Stack zu geben. Viele Details bleiben jedoch im Hintergrund. Teilen Sie uns in den Kommentaren mit, welche AnwendungsfĂ€lle Sie mit Elastic Stack lösen konnten und fĂŒr welche Aufgaben Sie ihn verwenden. Sie können uns ĂŒber persönliche Nachrichten auf Habr oder .
Quelle: habr.com
