Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Rappelons que la Suite Elastic s'appuie sur la base de données non relationnelle Elasticsearch, l'interface web Kibana et des collecteurs et processeurs de données (le plus connu Logstash, divers Beats, APM et autres). L’un des ajouts intéressants à l’ensemble de la pile de produits répertoriés est l’analyse des données à l’aide d’algorithmes d’apprentissage automatique. Dans l'article, nous comprenons ce que sont ces algorithmes. S'il vous plaît sous chat.

L'apprentissage automatique est une fonctionnalité payante du shareware Elastic Stack et est inclus dans le X-Pack. Pour commencer à l'utiliser, activez simplement l'essai de 30 jours après l'installation. Une fois la période d'essai expirée, vous pouvez demander de l'aide pour la prolonger ou acheter un abonnement. Le coût d'un abonnement n'est pas calculé en fonction du volume de données, mais en fonction du nombre de nœuds utilisés. Non, le volume de données affecte bien sûr le nombre de nœuds requis, mais cette approche en matière de licence est néanmoins plus humaine par rapport au budget de l'entreprise. Si une productivité élevée n’est pas nécessaire, vous pouvez économiser de l’argent.

Le ML dans la Suite Elastic est écrit en C++ et s'exécute en dehors de la JVM, dans laquelle Elasticsearch lui-même s'exécute. Autrement dit, le processus (d'ailleurs, on l'appelle détection automatique) consomme tout ce que la JVM n'avale pas. Sur un stand de démonstration, ce n'est pas si critique, mais dans un environnement de production, il est important d'allouer des nœuds distincts pour les tâches ML.

Les algorithmes d'apprentissage automatique se répartissent en deux catégories - с ителем и sans professeur. Dans la Suite Elastic, l'algorithme est dans la catégorie « non supervisé ». Par ce lien Vous pouvez voir l'appareil mathématique des algorithmes d'apprentissage automatique.

Pour effectuer l'analyse, l'algorithme d'apprentissage automatique utilise les données stockées dans les index Elasticsearch. Vous pouvez créer des tâches d'analyse à la fois depuis l'interface Kibana et via l'API. Si vous faites cela via Kibana, vous n’avez pas besoin de savoir certaines choses. Par exemple, des index supplémentaires que l'algorithme utilise lors de son fonctionnement.

Indices supplémentaires utilisés dans le processus d'analyse.ml-state — informations sur les modèles statistiques (paramètres d'analyse) ;
.ml-anomalies-* — résultats des algorithmes ML ;
.ml-notifications — paramètres pour les notifications basées sur les résultats d'analyse.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

La structure des données de la base de données Elasticsearch se compose d'index et de documents qui y sont stockés. Comparé à une base de données relationnelle, un index peut être comparé à un schéma de base de données et un document à un enregistrement dans une table. Cette comparaison est conditionnelle et est fournie pour simplifier la compréhension d'autres documents pour ceux qui n'ont entendu parler que d'Elasticsearch.

La même fonctionnalité est disponible via l'API que via l'interface Web, donc pour plus de clarté et de compréhension des concepts, nous montrerons comment la configurer via Kibana. Dans le menu de gauche se trouve une section Machine Learning où vous pouvez créer un nouveau Job. Dans l'interface Kibana, cela ressemble à l'image ci-dessous. Nous allons maintenant analyser chaque type de tâche et montrer les types d'analyse qui peuvent être construits ici.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Single Metric - analyse d'une métrique, Multi Metric - analyse de deux ou plusieurs métriques. Dans les deux cas, chaque métrique est analysée dans un environnement isolé, c'est-à-dire l'algorithme ne prend pas en compte le comportement des métriques analysées en parallèle, comme cela peut paraître dans le cas de Multi Metric. Pour effectuer des calculs prenant en compte la corrélation de différentes métriques, vous pouvez utiliser l'analyse de population. Et Advanced peaufine les algorithmes avec des options supplémentaires pour certaines tâches.

Métrique unique

Analyser les changements dans une seule métrique est la chose la plus simple qui puisse être faite ici. Après avoir cliqué sur Créer un travail, l'algorithme recherchera les anomalies.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Dans l' Agrégation vous pouvez choisir une approche pour rechercher des anomalies. Par exemple, quand Min les valeurs inférieures aux valeurs typiques seront considérées comme anormales. Manger Max, Haute Moyenne, Faible, Moyenne, Distinct et d'autres. Les descriptions de toutes les fonctions peuvent être trouvées lien.

Dans l' Champ indique le champ numérique du document sur lequel nous effectuerons l'analyse.

Dans l' Portée du godet — la granularité des intervalles sur la chronologie le long de laquelle l'analyse sera effectuée. Vous pouvez faire confiance à l'automatisation ou choisir manuellement. L'image ci-dessous est un exemple de granularité trop faible : vous risquez de manquer l'anomalie. Grâce à ce paramètre, vous pouvez modifier la sensibilité de l'algorithme aux anomalies.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

La durée des données collectées est un élément clé qui affecte l’efficacité de l’analyse. Au cours de l'analyse, l'algorithme identifie les intervalles répétitifs, calcule les intervalles de confiance (lignes de base) et identifie les anomalies, c'est-à-dire les écarts atypiques par rapport au comportement normal de la métrique. Juste par exemple :

Lignes de base avec un petit morceau de données :

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Lorsque l’algorithme a quelque chose à apprendre, la ligne de base ressemble à ceci :

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Après avoir démarré la tâche, l'algorithme détermine les écarts anormaux par rapport à la norme et les classe selon la probabilité d'anomalie (la couleur de l'étiquette correspondante est indiquée entre parenthèses) :

Attention (bleu) : moins de 25
Mineur (jaune) : 25-50
Majeur (orange) : 50-75
Critique (rouge) : 75-100

Le graphique ci-dessous montre un exemple des anomalies trouvées.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Ici vous pouvez voir le nombre 94, qui indique la probabilité d'une anomalie. Il est clair que puisque la valeur est proche de 100, cela signifie que nous avons une anomalie. La colonne sous le graphique montre la probabilité péjorativement faible que 0.000063634 % de la valeur métrique y apparaisse.

En plus de rechercher des anomalies, vous pouvez exécuter des prévisions dans Kibana. Cela se fait simplement et depuis la même vue avec les anomalies - bouton Prévision dans le coin supérieur droit.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

La prévision est faite au maximum 8 semaines à l’avance. Même si vous le souhaitez vraiment, ce n’est plus possible de par sa conception.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Dans certaines situations, les prévisions seront très utiles, par exemple lors du suivi de la charge des utilisateurs sur l'infrastructure.

Multimétrique

Passons à la fonctionnalité ML suivante de la Suite Elastic : analyser plusieurs métriques en un seul lot. Mais cela ne signifie pas que la dépendance d’une métrique par rapport à une autre sera analysée. C'est la même chose que Single Metric, mais avec plusieurs métriques sur un seul écran pour une comparaison facile de l'impact de l'une sur l'autre. Nous parlerons de l'analyse de la dépendance d'une métrique par rapport à une autre dans la section Population.

Après avoir cliqué sur le carré avec Multi Metric, une fenêtre avec les paramètres apparaîtra. Examinons-les plus en détail.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Vous devez d’abord sélectionner les champs à analyser et à regrouper les données. Les options d'agrégation ici sont les mêmes que pour Single Metric (Max, Haute Moyenne, Faible, Moyenne, Distinct et d'autres). De plus, si vous le souhaitez, les données sont divisées dans l'un des champs (champ Diviser les données). Dans l'exemple, nous avons fait cela par champ OriginAirportID. Notez que le graphique des métriques à droite est désormais présenté sous forme de plusieurs graphiques.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Champ Domaines clés (influenceurs) affecte directement les anomalies détectées. Par défaut, il y aura toujours au moins une valeur ici, et vous pouvez en ajouter d'autres. L'algorithme prendra en compte l'influence de ces champs lors de l'analyse et affichera les valeurs les plus « influentes ».

Après le lancement, quelque chose comme ceci apparaîtra dans l'interface Kibana.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

C'est ce qu'on appelle carte thermique des anomalies pour chaque valeur de champ OriginAirportID, ce que nous avons indiqué dans Diviser les données. Comme pour Single Metric, la couleur indique le niveau d’écart anormal. Il est pratique de faire une analyse similaire, par exemple sur les postes de travail, pour suivre ceux qui disposent d'un nombre d'autorisations suspect, etc. Nous avons déjà écrit à propos des événements suspects dans EventLog Windows, qui peuvent également être collectés et analysés ici.

Sous la carte thermique se trouve une liste d’anomalies, à partir de chacune d’elles vous pouvez passer à la vue Single Metric pour une analyse détaillée.

d'habitants

Pour rechercher des anomalies parmi les corrélations entre différentes métriques, la Suite Elastic dispose d'une analyse de population spécialisée. C'est avec son aide que vous pouvez rechercher des valeurs anormales dans les performances d'un serveur par rapport aux autres lorsque, par exemple, le nombre de requêtes adressées au système cible augmente.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Dans cette illustration, le champ Population indique la valeur à laquelle se rapporteront les métriques analysées. Dans ce cas, il s'agit du nom du processus. En conséquence, nous verrons comment la charge du processeur de chaque processus s’influence mutuellement.

Veuillez noter que le graphique des données analysées diffère des cas avec Single Metric et Multi Metric. Cela a été fait dans Kibana par conception pour une meilleure perception de la distribution des valeurs des données analysées.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Le graphique montre que le processus s'est comporté anormalement stress (d'ailleurs, généré par un utilitaire spécial) sur le serveur poipu, qui a influencé (ou s'est avéré être un influenceur) l'apparition de cette anomalie.

Avancé

Analyses avec réglage fin. Avec l'analyse avancée, des paramètres supplémentaires apparaissent dans Kibana. Après avoir cliqué sur la vignette Avancé dans le menu de création, cette fenêtre avec des onglets apparaît. Languette Détails de l'emploi Nous l'avons volontairement sauté, il existe des paramètres de base qui ne sont pas directement liés à la configuration de l'analyse.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

В résumé_count_field_name Vous pouvez éventuellement spécifier le nom d'un champ à partir de documents contenant des valeurs agrégées. Dans cet exemple, le nombre d'événements par minute. DANS nom_champ_catégorisation indique le nom et la valeur d'un champ du document qui contient une valeur variable. En utilisant le masque sur ce champ, vous pouvez diviser les données analysées en sous-ensembles. Faites attention au bouton Ajouter un détecteur dans l'illustration précédente. Vous trouverez ci-dessous le résultat du clic sur ce bouton.

Comprendre l'apprentissage automatique dans la Suite Elastic (alias Elasticsearch, alias ELK)

Voici un bloc de paramètres supplémentaire pour configurer le détecteur d'anomalies pour une tâche spécifique. Nous prévoyons de discuter de cas d'utilisation spécifiques (en particulier ceux de sécurité) dans les articles suivants. Par exemple, regardez un des boitiers démontés. Il est associé à la recherche de valeurs apparaissant rarement et est mis en œuvre fonction rare.

Dans l' fonction Vous pouvez sélectionner une fonction spécifique pour rechercher des anomalies. Sauf rare, il y a quelques fonctions plus intéressantes - moment de la journée и heure_de_semaine. Ils identifient les anomalies dans le comportement des métriques tout au long de la journée ou de la semaine, respectivement. Autres fonctions d'analyse est dans la documentation.

В nom de domaine indique le champ du document sur lequel l'analyse sera effectuée. Par_nom_champ peut être utilisé pour séparer les résultats d'analyse pour chaque valeur individuelle du champ de document spécifié ici. Si vous remplissez over_field_name vous obtenez l’analyse de la population dont nous avons discuté ci-dessus. Si vous spécifiez une valeur dans nom_champ_partition, alors pour ce champ du document, des lignes de base distinctes seront calculées pour chaque valeur (la valeur peut être, par exemple, le nom du serveur ou du processus sur le serveur). DANS exclure_frequent peut choisir TOUTE ou aucun, ce qui signifie exclure (ou inclure) les valeurs de champs de document fréquentes.

Dans cet article, nous avons essayé de donner une idée aussi succincte que possible des capacités du machine learning dans la Suite Elastic ; il reste encore beaucoup de détails en coulisses. Dites-nous dans les commentaires quels cas vous avez réussi à résoudre à l'aide d'Elastic Stack et pour quelles tâches vous l'utilisez. Pour nous contacter, vous pouvez utiliser les messages personnels sur Habré ou formulaire de commentaires sur le site Web.

Source: habr.com

Ajouter un commentaire