Recordem que Elastic Stack es basa en la base de dades no relacional Elasticsearch, la interfície web de Kibana i els col·lectors i processadors de dades (els més famosos Logstash, diversos Beats, APM i altres). Una de les bones addicions a tota la pila de productes llistada és l'anàlisi de dades mitjançant algorismes d'aprenentatge automàtic. A l'article entenem quins són aquests algorismes. Si us plau, sota el gat.
L'aprenentatge automàtic és una característica de pagament del shareware Elastic Stack i s'inclou a l'X-Pack. Per començar a utilitzar-lo, només cal que activeu la prova de 30 dies després de la instal·lació. Un cop expirat el període de prova, podeu sol·licitar assistència per ampliar-lo o comprar una subscripció. El cost d'una subscripció no es calcula en funció del volum de dades, sinó del nombre de nodes utilitzats. No, el volum de dades, per descomptat, afecta el nombre de nodes necessaris, però tot i així aquest enfocament de llicències és més humà en relació amb el pressupost de l'empresa. Si no cal una alta productivitat, podeu estalviar diners.
ML a Elastic Stack està escrit en C++ i s'executa fora de la JVM, en la qual s'executa Elasticsearch. És a dir, el procés (per cert, s'anomena autodetecció) consumeix tot allò que la JVM no s'empassa. En un estand de demostració, això no és tan crític, però en un entorn de producció és important assignar nodes separats per a les tasques de ML.
Els algorismes d'aprenentatge automàtic es divideixen en dues categories: −
Per dur a terme l'anàlisi, l'algoritme d'aprenentatge automàtic utilitza dades emmagatzemades als índexs Elasticsearch. Podeu crear tasques d'anàlisi tant des de la interfície de Kibana com a través de l'API. Si ho feu a través de Kibana, no cal que sàpigues algunes coses. Per exemple, índexs addicionals que utilitza l'algorisme durant el seu funcionament.
Índexs addicionals utilitzats en el procés d'anàlisi.ml-state — informació sobre models estadístics (configuració d'anàlisi);
.ml-anomalies-* — resultats dels algorismes de ML;
.ml-notifications: configuració de les notificacions basades en els resultats de l'anàlisi.
L'estructura de dades de la base de dades Elasticsearch consta d'índexs i documents emmagatzemats en ells. Quan es compara amb una base de dades relacional, un índex es pot comparar amb un esquema de base de dades i un document amb un registre d'una taula. Aquesta comparació és condicional i es proporciona per simplificar la comprensió de material addicional per a aquells que només han sentit parlar d'Elasticsearch.
La mateixa funcionalitat està disponible a través de l'API que a través de la interfície web, de manera que per a la claredat i la comprensió dels conceptes, mostrarem com configurar-la a través de Kibana. Al menú de l'esquerra hi ha una secció d'aprenentatge automàtic on podeu crear un treball nou. A la interfície de Kibana s'assembla a la imatge següent. Ara analitzarem cada tipus de tasca i mostrarem els tipus d'anàlisi que es poden construir aquí.
Mètrica única: anàlisi d'una mètrica, Mètrica múltiple: anàlisi de dues o més mètriques. En ambdós casos, cada mètrica s'analitza en un entorn aïllat, és a dir. l'algoritme no té en compte el comportament de les mètriques analitzades en paral·lel, com podria semblar en el cas del Multi Metric. Per realitzar càlculs tenint en compte la correlació de diverses mètriques, podeu utilitzar l'anàlisi de població. I Advanced està afinant els algorismes amb opcions addicionals per a determinades tasques.
Mètrica única
Analitzar els canvis en una sola mètrica és el més senzill que es pot fer aquí. Després de fer clic a Crea feina, l'algoritme buscarà anomalies.
En camp Aggregation podeu triar un enfocament per cercar anomalies. Per exemple, quan Min els valors per sota dels valors típics es consideraran anòmals. Menja Màxim, Alt Mitjana, Baixa, Mitjana, Distint i altres. Es poden trobar descripcions de totes les funcions
En camp Camp indica el camp numèric del document sobre el qual realitzarem l'anàlisi.
En camp
La durada de les dades recollides és un element clau que afecta l'eficàcia de l'anàlisi. Durant l'anàlisi, l'algoritme identifica intervals repetits, calcula intervals de confiança (línies de base) i identifica anomalies: desviacions atípiques del comportament habitual de la mètrica. Només per exemple:
Línies de base amb una petita dada:
Quan l'algoritme té alguna cosa de què aprendre, la línia de base té aquest aspecte:
Després d'iniciar la tasca, l'algoritme determina desviacions anòmales de la norma i les classifica segons la probabilitat d'una anomalia (el color de l'etiqueta corresponent s'indica entre parèntesis):
Avís (blau): menys de 25
Menor (groc): 25-50
Major (taronja): 50-75
Crític (vermell): 75-100
El gràfic següent mostra un exemple de les anomalies trobades.
Aquí podeu veure el número 94, que indica la probabilitat d'una anomalia. És evident que com que el valor és proper al 100, vol dir que tenim una anomalia. La columna de sota del gràfic mostra la probabilitat pejorativament petita que hi aparegui el 0.000063634% del valor mètric.
A més de cercar anomalies, podeu executar previsions a Kibana. Això es fa simplement i des de la mateixa vista amb anomalies - botó Forecast a la cantonada superior dreta.
La previsió es fa amb un màxim de 8 setmanes d'antelació. Fins i tot si realment ho voleu, ja no és possible per disseny.
En algunes situacions, la previsió serà molt útil, per exemple, quan es controla la càrrega dels usuaris a la infraestructura.
Multimètrica
Passem a la següent funció de ML a Elastic Stack: analitzant diverses mètriques en un sol lot. Però això no vol dir que s'analitzarà la dependència d'una mètrica d'una altra. És el mateix que la mètrica única, però amb múltiples mètriques en una pantalla per comparar fàcilment l'impacte d'una sobre una altra. Parlarem de l'anàlisi de la dependència d'una mètrica sobre una altra a l'apartat Població.
Després de fer clic al quadrat amb mètrica múltiple, apareixerà una finestra amb la configuració. Vegem-los amb més detall.
Primer heu de seleccionar els camps per a l'anàlisi i l'agregació de dades sobre ells. Les opcions d'agregació aquí són les mateixes que per a la mètrica única (Màxim, Alt Mitjana, Baixa, Mitjana, Distint i altres). A més, si es desitja, les dades es divideixen en un dels camps (camp Dades dividides). A l'exemple, ho hem fet per camp OrigenAirportID. Observeu que el gràfic de mètriques de la dreta es presenta ara com a gràfics múltiples.
Camp Camps clau (influenciadors) afecta directament les anomalies detectades. De manera predeterminada, sempre hi haurà almenys un valor aquí i podeu afegir-ne de addicionals. L'algorisme tindrà en compte la influència d'aquests camps a l'hora d'analitzar i mostrar els valors més "influents".
Després del llançament, apareixerà alguna cosa com aquesta a la interfície de Kibana.
Això és l'anomenat Mapa de calor d'anomalies per a cada valor de camp OrigenAirportID, que hem indicat a Dades dividides. Igual que amb la mètrica única, el color indica el nivell de desviació anormal. És convenient fer una anàlisi similar, per exemple, a les estacions de treball per fer un seguiment d'aquelles amb un nombre sospitós d'autoritzacions, etc. Ja hem escrit
A sota del mapa de calor hi ha una llista d'anomalies, de cadascuna podeu canviar a la vista de mètrica única per a una anàlisi detallada.
Població
Per buscar anomalies entre les correlacions entre diferents mètriques, Elastic Stack disposa d'una anàlisi de població especialitzada. És amb la seva ajuda que podeu buscar valors anòmals en el rendiment d'un servidor en comparació amb altres quan, per exemple, augmenta el nombre de peticions al sistema objectiu.
En aquesta il·lustració, el camp Població indica el valor al qual es relacionaran les mètriques analitzades. En aquest cas és el nom del procés. Com a resultat, veurem com la càrrega del processador de cada procés es va influir mútuament.
Tingueu en compte que el gràfic de les dades analitzades difereix dels casos amb mètrica única i mètrica múltiple. Això es va fer a Kibana per disseny per millorar la percepció de la distribució de valors de les dades analitzades.
El gràfic mostra que el procés es va comportar de manera anormal estrès (per cert, generat per una utilitat especial) al servidor poipu, que va influir (o va resultar ser un influencer) en l'aparició d'aquesta anomalia.
Avançat
Anàlisis amb afinació fina. Amb l'anàlisi avançada, apareixen paràmetres addicionals a Kibana. Després de fer clic a la fitxa Avançada al menú de creació, apareix aquesta finestra amb pestanyes. Tab detalls de l'oferta Ho hem saltat a propòsit, hi ha configuracions bàsiques que no estan directament relacionades amb la configuració de l'anàlisi.
В summary_count_field_name Opcionalment, podeu especificar el nom d'un camp a partir de documents que contenen valors agregats. En aquest exemple, el nombre d'esdeveniments per minut. EN
Aquí hi ha un bloc addicional de paràmetres per configurar el detector d'anomalies per a una tasca específica. Tenim previst parlar de casos d'ús específics (especialment els de seguretat) als articles següents. Per exemple,
En camp function Podeu seleccionar una funció específica per cercar anomalies. Excepte rar, hi ha un parell de funcions més interessants -
В nom_camp indica el camp del document sobre el qual es realitzarà l'anàlisi. Per_nom_camp es pot utilitzar per separar els resultats de l'anàlisi per a cada valor individual del camp del document especificat aquí. Si omples over_field_name obteniu l'anàlisi de població que hem comentat anteriorment. Si especifiqueu un valor a nom_camp_partició, llavors per a aquest camp del document es calcularan línies de base separades per a cada valor (el valor pot ser, per exemple, el nom del servidor o del procés al servidor). EN excloure_freqüent pot triar tots o cap, que significarà excloure (o incloure) els valors dels camps del document que es produeixen amb freqüència.
En aquest article, hem intentat donar una idea tan succinta com sigui possible sobre les capacitats de l'aprenentatge automàtic a Elastic Stack; encara queden molts detalls enrere. Expliqueu-nos als comentaris quins casos heu aconseguit resoldre amb Elastic Stack i per a quines tasques l'utilitzeu. Per contactar amb nosaltres, podeu utilitzar missatges personals a Habré o
Font: www.habr.com