Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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 - mei de learaar и sûnder learaar. Yn 'e Elastic Stack is it algoritme yn' e kategory "net tafersjoch". Troch dizze keppeling Jo kinne it wiskundige apparaat sjen fan algoritmen foar masine-learen.

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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 link.

Yn fjild Fjild jout it numerike fjild oan yn it dokumint wêrop wy de analyze sille útfiere.

Yn fjild Emmer span - Granulariteit fan yntervallen op 'e tiidline wêryn't de analyze sil wurde útfierd. Jo kinne de automatisearring fertrouwe of manuell kieze. De ôfbylding hjirûnder is in foarbyld fan te leech granulariteit - jo kinne de anomaly misse. Mei dizze ynstelling kinne jo de gefoelichheid fan it algoritme feroarje foar anomalies.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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:

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

As it algoritme wat hat om fan te learen, sjocht de basisline der sa út:

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

De foarsizzing wurdt makke foar maksimaal 8 wiken fan tefoaren. Sels as jo echt wolle, is it troch ûntwerp net mear mooglik.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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 oer fertochte eveneminten yn EventLog Windows, dy't hjir ek sammele en analysearre wurde kin.

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

В 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 categorization_field_name jout de namme en wearde oan fan in fjild út it dokumint dat befettet wat fariabele wearde. Mei it masker op dit fjild kinne jo de analysearre gegevens splitse yn subsets. Jou omtinken oan de knop Foegje detektor ta yn de foarige yllustraasje. Hjirûnder is it resultaat fan it klikken op dizze knop.

Machine Learning begripe yn 'e elastyske stapel (aka Elasticsearch, aka ELK)

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, Sjoch ris ien fan de útinoar fallen gefallen. It is ferbûn mei it sykjen nei selden ferskinende wearden en wurdt ymplementearre seldsume funksje.

Yn fjild funksje Jo kinne in spesifike funksje selektearje om te sykjen nei anomalies. Útsein seldsum, d'r binne in pear mear nijsgjirrige funksjes - tiid fan de dei и tiid_fan_wike. Se identifisearje anomalies yn it gedrach fan metriken oer de dei of wike, respektivelik. Oare analyze funksjes stiet yn de dokumintaasje.

В 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 feedbackformulier op 'e webside.

Boarne: www.habr.com

Add a comment