Lit ús ûnthâlde dat de Elastic Stack is basearre op de net-relasjonele Elasticsearch-database, de Kibana-webynterface en gegevenssamlers en prosessoren (de meast ferneamde Logstash, ferskate Beats, APM en oaren). Ien fan 'e aardige tafoegings oan' e heule fermelde produktstapel is gegevensanalyse mei algoritmen foar learen fan masines. Yn it artikel wy begripe wat dizze algoritmen binne. Graach ûnder kat.
Masine learen is in betelle funksje fan 'e shareware Elastic Stack en is opnaam yn it X-Pack. Om it te brûken, aktivearje gewoan de proef fan 30 dagen nei ynstallaasje. Nei't de proefperioade ferrint, kinne jo stipe oanfreegje om it te ferlingjen of in abonnemint te keapjen. De kosten fan in abonnemint wurde berekkene net basearre op it folume fan gegevens, mar op it oantal brûkte knopen. Nee, it folume fan gegevens hat fansels ynfloed op it oantal fereaske knopen, mar dochs is dizze oanpak fan fergunningferliening minskliker yn relaasje ta it budzjet fan it bedriuw. As d'r gjin ferlet is fan hege produktiviteit, kinne jo jild besparje.
ML yn de Elastic Stack is skreaun yn C ++ en rint bûten de JVM, dêr't Elasticsearch sels rint. Dat is, it proses (troch de manier, it hjit autodetect) konsumearret alles dat de JVM net slikt. Op in demo-stand is dit net sa kritysk, mar yn in produksjeomjouwing is it wichtich om aparte knopen te tawizen foar ML-taken.
Masine-learalgoritmen falle yn twa kategoryen -
Om de analyse út te fieren, brûkt it masine-learalgoritme gegevens opslein yn Elasticsearch-yndeksen. Jo kinne taken meitsje foar analyse sawol fan 'e Kibana-ynterface as fia de API. As jo dit fia Kibana dogge, dan hoege jo guon dingen net te witten. Bygelyks ekstra yndeksen dy't it algoritme brûkt tidens syn operaasje.
Oanfoljende yndeksen brûkt yn it analyseproses.ml-state - ynformaasje oer statistyske modellen (analyze-ynstellings);
.ml-anomalies-* - resultaten fan ML-algoritmen;
.ml-notifikaasjes - ynstellings foar notifikaasjes basearre op analyseresultaten.
De gegevensstruktuer yn 'e Elasticsearch-database bestiet út yndeksen en dokuminten dy't dêryn opslein binne. As fergelike mei in relasjonele databank, kin in yndeks wurde fergelike mei in databankskema, en in dokumint mei in rekord yn in tabel. Dizze fergeliking is betingst en wurdt levere om it begryp fan fierdere materiaal te ferienfâldigjen foar dyjingen dy't allinich oer Elasticsearch hawwe heard.
Deselde funksjonaliteit is beskikber fia de API as fia de webynterface, dus foar dúdlikens en begryp fan 'e begripen sille wy sjen litte hoe't jo it konfigurearje fia Kibana. Yn it menu oan de linkerkant is d'r in seksje Machine Learning wêr't jo in nije baan kinne oanmeitsje. Yn 'e Kibana-ynterface liket it op de ôfbylding hjirûnder. No sille wy elk type taak analysearje en de soarten analyse sjen litte dy't hjir kinne wurde konstruearre.
Single Metric - analyze fan ien metrik, Multi Metric - analyze fan twa of mear metriken. Yn beide gefallen wurdt elke metrik analysearre yn in isolearre omjouwing, d.w.s. it algoritme hâldt gjin rekken mei it gedrach fan parallel analysearre metriken, sa't it kin lykje yn it gefal fan Multi Metric. Om berekkeningen út te fieren mei rekken hâldend mei de korrelaasje fan ferskate metriken, kinne jo Befolkingsanalyse brûke. En Avansearre is it fine-tunen fan de algoritmen mei ekstra opsjes foar bepaalde taken.
Single Metric
It analysearjen fan wizigingen yn ien inkele metrik is it ienfâldichste ding dat hjir kin wurde dien. Nei it klikken op Job oanmeitsje, sil it algoritme sykje nei anomalies.
Yn fjild Aggregaasje jo kinne in oanpak kieze foar it sykjen nei anomalies. Bygelyks wannear min wearden ûnder typyske wearden sille wurde beskôge as anomaal. Ite Max, Heech Mean, Low, Mean, Distinct en oaren. Beskriuwingen fan alle funksjes kinne fûn wurde
Yn fjild Fjild jout it numerike fjild oan yn it dokumint wêrop wy de analyze sille útfiere.
Yn fjild
De doer fan 'e sammele gegevens is in wichtich ding dat de effektiviteit fan' e analyse beynfloedet. Tidens analyse identifisearret it algoritme werheljende yntervallen, berekkent betrouwensintervallen (basislinen), en identifisearret anomalies - atypyske ôfwikingen fan it normale gedrach fan 'e metrike. Krekt bygelyks:
Basislinen mei in lyts stikje gegevens:
As it algoritme wat hat om fan te learen, sjocht de basisline der sa út:
Nei it begjin fan 'e taak bepaalt it algoritme anomale ôfwikingen fan' e noarm en rangearret se neffens de kâns fan in anomaly (de kleur fan 'e korrespondearjende label wurdt oanjûn tusken heakjes):
Warskôging (blau): minder dan 25
Minor (giel): 25-50
Major (oranje): 50-75
kritysk (read): 75-100
De grafyk hjirûnder lit in foarbyld sjen fan 'e fûne anomalies.
Hjir kinne jo it nûmer 94 sjen, dat de kâns op in anomaly oanjout. It is dúdlik dat, om't de wearde tichtby 100 is, it betsjut dat wy in anomaly hawwe. De kolom ûnder de grafyk toant de pejoratively lytse kâns fan 0.000063634% fan 'e metryske wearde dy't dêr ferskynt.
Neist it sykjen nei anomalies, kinne jo prognose útfiere yn Kibana. Dit wurdt dien ienfâldich en út deselde werjefte mei anomalies - knop Wettervorhersage yn 'e rjochter boppeste hoeke.
De foarsizzing wurdt makke foar maksimaal 8 wiken fan tefoaren. Sels as jo echt wolle, is it troch ûntwerp net mear mooglik.
Yn guon situaasjes sil de prognose heul nuttich wêze, bygelyks by it kontrolearjen fan brûkerslading op 'e ynfrastruktuer.
Multi Metric
Litte wy trochgean nei de folgjende ML-funksje yn 'e Elastic Stack - analysearje ferskate metriken yn ien batch. Mar dit betsjut net dat de ôfhinklikens fan de iene metrik op in oar analysearre wurdt. Dit is itselde as Single Metric, mar mei meardere metriken op ien skerm foar maklike fergeliking fan 'e ynfloed fan ien op in oar. Wy sille prate oer it analysearjen fan 'e ôfhinklikens fan ien metrik fan in oar yn' e seksje Befolking.
Nei it klikken op it plein mei Multi Metric, sil in finster mei ynstellings ferskine. Litte wy nei se yn mear detail sjen.
Earst moatte jo de fjilden selektearje foar analyse en gegevensaggregaasje op har. De aggregaasje-opsjes hjir binne itselde as foar Single Metric (Max, Heech Mean, Low, Mean, Distinct en oaren). Fierder, as jo wolle, wurde de gegevens ferdield yn ien fan 'e fjilden (fjild Split Data). Yn it foarbyld hawwe wy dit per fjild dien OriginAirportID. Tink derom dat de metrike grafyk oan 'e rjochterkant no wurdt presintearre as meardere grafiken.
fjild Key Fields (ynfloeders) direkte ynfloed op de ûntdutsen anomalies. Standert sil d'r hjir altyd op syn minst ien wearde wêze, en jo kinne ekstra tafoegje. It algoritme sil rekken hâlde mei de ynfloed fan dizze fjilden by it analysearjen en de meast "ynfloedrike" wearden sjen litte.
Nei lansearring sil sokssawat ferskine yn 'e Kibana-ynterface.
Dit is de saneamde waarmte kaart fan anomalies foar eltse fjild wearde OriginAirportID, dêr't wy yn oanjûn hawwe Split Data. Lykas by Single Metric, jout kleur it nivo fan abnormale ôfwiking oan. It is handich om in ferlykbere analyze te dwaan, bygelyks op wurkstasjons om dy te folgjen mei in fertocht grut oantal autorisaasjes, ensfh. Wy hawwe al skreaun
Under de waarmtekaart is in list mei anomalies, fan elk kinne jo wikselje nei de Single Metric-werjefte foar detaillearre analyse.
Befolking
Om te sykjen nei anomalies tusken korrelaasjes tusken ferskate metriken, hat de Elastic Stack in spesjalisearre befolkingsanalyse. It is mei har help dat jo kinne sykje nei abnormale wearden yn 'e prestaasjes fan in tsjinner yn ferliking mei oaren as bygelyks it oantal oanfragen oan it doelsysteem ferheget.
Yn dizze yllustraasje jout it fjild Befolking de wearde oan wêrop de analysearre metriken sille relatearje. Yn dit gefal is it de namme fan it proses. As resultaat sille wy sjen hoe't de prosessorlading fan elk proses inoar beynfloede.
Tink derom dat de grafyk fan 'e analysearre gegevens ferskilt fan' e gefallen mei Single Metric en Multi Metric. Dit waard dien yn Kibana troch ûntwerp foar in ferbettere belibbing fan 'e ferdieling fan wearden fan' e analysearre gegevens.
De grafyk lit sjen dat it proses abnormaal gedrage klam (troch de manier, oanmakke troch in spesjaal hulpprogramma) op 'e tsjinner poipu, dy't it foarkommen fan dizze anomaly beynfloede (of bliken die te wêzen in ynfloeder).
Avansearre
Analytics mei fine tuning. Mei Avansearre analyze ferskine ekstra ynstellingen yn Kibana. Nei it klikken op de Avansearre tegel yn it oanmeitsjen menu, ferskynt dit finster mei ljeppers. Tab Taakdetails Wy hawwe it mei doel oerslein, d'r binne basisynstellingen dy't net direkt relatearre binne oan it opsetten fan 'e analyse.
В summary_count_field_name Opsjoneel kinne jo de namme fan in fjild opjaan fan dokuminten dy't aggregearre wearden befetsje. Yn dit foarbyld, it oantal eveneminten per minuut. YN
Hjir is in ekstra blok fan ynstellings foar it konfigurearjen fan de anomaly-detektor foar in spesifike taak. Wy binne fan plan om spesifike gebrûksgefallen (benammen feiligens) te besprekken yn 'e folgjende artikels. Bygelyks,
Yn fjild funksje Jo kinne in spesifike funksje selektearje om te sykjen nei anomalies. Útsein seldsum, d'r binne in pear mear nijsgjirrige funksjes -
В fjildnamme jout it fjild oan fan it dokumint wêrop de analyze sil wurde útfierd. By_field_name kin brûkt wurde om de analyseresultaten te skieden foar elke yndividuele wearde fan it hjir spesifisearre dokumintfjild. As jo folje over_field_name jo krije de befolkingsanalyse dy't wy hjirboppe besprutsen hawwe. As jo opjaan in wearde yn partition_field_name, dan wurde foar dit fjild fan it dokumint aparte basislinen foar elke wearde berekkene (de wearde kin bygelyks de namme fan de tsjinner of proses op de tsjinner wêze). YN exclude_frequent kinne kieze allegearre of gjin, wat betsjuttet it útsluten (of opnimmen fan) faak foarkommende dokumintfjildwearden.
Yn dit artikel hawwe wy besocht in sa koart mooglik idee te jaan oer de mooglikheden fan masine learen yn 'e Elastic Stack; d'r binne noch in protte details efter de skermen. Fertel ús yn 'e opmerkingen hokker gefallen jo hawwe slagge op te lossen mei Elastic Stack en foar hokker taken jo it brûke. Om kontakt mei ús op, kinne jo gebrûk meitsje fan persoanlike berjochten op Habré of
Boarne: www.habr.com