Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

Software-sistemen industria-garapenak arreta handia eskatzen du azken produktuaren akatsen tolerantziari, bai eta hutsegiteei eta hutsegiteei erantzun azkarra ematea ere, gertatuz gero. Monitorizazioak, jakina, hutsegiteei eta hutsegiteei modu eraginkorragoan eta azkarragoan erantzuten laguntzen du, baina ez nahikoa. Lehenik eta behin, oso zaila da zerbitzari kopuru handi baten jarraipena egitea - jende kopuru handia behar da. Bigarrenik, aplikazioak nola funtzionatzen duen ondo ulertu behar duzu bere egoera aurreikusteko. Horregatik, garatzen ari garen sistemak, haien errendimendua eta ezaugarriak ondo ulertzen dituen jende asko behar dugu. Demagun hori egiteko prest dagoen jende nahikoa aurkitzen baduzu ere, denbora asko behar dela entrenatzeko.

Zer egin? Horra datorkigu adimen artifiziala lagungarri. Artikuluak buruz hitz egingo du mantentze aurreikuslea (mantentze iragarlea). Ikuspegi hau aktiboki ospea lortzen ari da. Artikulu ugari idatzi dira, besteak beste, HabrΓ©-ri buruz. Enpresa handiek ikuspegi hau guztiz baliatzen dute zerbitzarien errendimendua mantentzeko. Artikulu ugari aztertu ondoren, ikuspegi hau probatzea erabaki genuen. Zer atera zen hortik?

Sarrera

Garatutako software sistema lehenago edo beranduago martxan jartzen da. Erabiltzailearentzat garrantzitsua da sistemak hutsegiterik gabe funtzionatzea. Larrialdi bat gertatzen bada, gutxieneko atzerapenarekin konpondu behar da.

Software-sistema baten laguntza teknikoa sinplifikatzeko, batez ere zerbitzari asko badira, exekutatzen ari den software-sistema baten neurketak hartzen dituzten monitorizazio-programak erabili ohi dira, haren egoera diagnostikatzea eta hutsegitea zerk eragin duen zehazten laguntzen dutenak. Prozesu honi software-sistemaren jarraipena deitzen zaio.

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

1. Irudia Grafana monitorizatzeko interfazea

Metrikak software-sistema baten, bere exekuzio-ingurunearen edo sistema exekutatzen ari den ordenagailu fisikoaren hainbat adierazle dira, metrikak jaso ziren unearen denbora-zigiluarekin. Analisi estatikoan, metrika horiei denbora serie deitzen zaie. Software-sistemaren egoera kontrolatzeko, metrikak grafiko moduan bistaratzen dira: denbora X ardatzean dago eta balioak Y ardatzean daude (1. irudia). Exekutatzen den software-sistema batetik (nodo bakoitzetik) milaka neurketa har daitezke. Metrikoen espazio bat osatzen dute (dimentsio anitzeko serie denbora).

Software-sistema konplexuetarako metrika ugari biltzen direnez, eskuzko monitorizazioa lan zaila bihurtzen da. Administratzaileak analizatutako datu kopurua murrizteko, jarraipen-tresnek arazo posibleak automatikoki identifikatzeko tresnak dituzte. Adibidez, abiarazle bat konfigura dezakezu disko libreko espazioa zehaztutako atalase batetik behera jaisten denean. Automatikoki ere diagnostikatu dezakezu zerbitzaria itzaltzea edo zerbitzuaren abiaduraren moteltze larria. Praktikan, monitorizazio-tresnek lan ona egiten dute dagoeneko gertatutako akatsak detektatzeko edo etorkizuneko hutsegiteen sintoma sinpleak identifikatzeko, baina, oro har, balizko hutsegite bat aurreikustea zaila izaten jarraitzen du haientzat. Neurrien eskuzko analisiaren bidez aurreikusteak espezialista kualifikatuen inplikazioa eskatzen du. Produktibitate baxua da. Balizko hutsegite gehienak oharkabean pasa daitezke.

Berriki, software sistemen mantentze prediktiboa deritzona gero eta ezagunagoa bihurtu da IT softwarea garatzeko enpresa handien artean. Ikuspegi honen funtsa sistemaren degradazioa eragiten duten arazoak aurkitzea da hasierako faseetan, huts egin baino lehen, adimen artifiziala erabiliz. Ikuspegi honek ez du sistemaren eskuzko monitorizazioa guztiz baztertzen. Jarraipen-prozesu osoaren laguntzailea da.

Mantentze-lan prediktiboa ezartzeko tresna nagusia denbora serieetan anomaliak bilatzea da, geroztik anomalia bat gertatzen denean datuetan denbora pixka bat igaro ondoren probabilitate handia dago porrota edo porrota egongo da. Anomalia software-sistema baten errendimenduaren desbideratze jakin bat da, hala nola, eskaera mota baten exekuzio-abiaduraren degradazioa identifikatzea edo bezeroen saioen maila konstante batean emandako zerbitzu-eskaeren batez besteko kopuruaren beherakada.

Software-sistemetarako anomaliak bilatzeko zereginak bere berezitasunak ditu. Teorian, software-sistema bakoitzerako beharrezkoa da lehendik dauden metodoak garatu edo hobetzea, izan ere, anomaliak bilatzea gauzatzen den datuen araberakoa baita, eta software-sistemen datuak asko aldatzen dira sistema ezartzeko tresnen arabera. , zein ordenagailutan exekutatzen ari den.

Software-sistemen akatsak iragartzerakoan anomaliak bilatzeko metodoak

Lehenik eta behin, esan beharra dago porrotak aurreikusteko ideia artikuluan inspiratu zela "Ikaskuntza automatikoa IT monitorizazioan". Anomalien bilaketa automatikoarekin planteamenduaren eraginkortasuna probatzeko, Web-Consolidation software sistema aukeratu zen, hau da, NPO Krista enpresaren proiektuetako bat. Aurretik, eskuzko jarraipena egiten zitzaion jasotako metriketan oinarrituta. Sistema nahiko konplexua denez, metrika ugari hartzen dira horretarako: JVM adierazleak (zabor-biltzaileen karga), kodea exekutatzen den sistema eragilearen adierazleak (memoria birtuala, OSaren % CPU karga), sarearen adierazleak (sarearen karga). ), zerbitzaria bera (CPU karga, memoria), wildfly metrika eta aplikazioaren berezko metrika azpisistema kritiko guztientzat.

Neurri guztiak sistematik hartzen dira grafitoa erabiliz. Hasieran, whisper datu-basea grafanarako soluzio estandar gisa erabiltzen zen, baina bezero-basea hazi ahala, grafitoak ezin izan zuen aurre egin, DC diskoaren azpisistemaren ahalmena agortu baitzuen. Horren ostean, irtenbide eraginkorragoa bilatzea erabaki zen. Hautua aldekoa izan zen grafito+clickhouse, eta horri esker, disko azpisistemaren karga magnitude ordena batean murriztea eta okupatutako diskoko espazioa bost edo sei aldiz murriztea ahalbidetu zuen. Jarraian grafito+clickhouse erabiliz metrikak biltzeko mekanismoaren diagrama bat dago (2. irudia).

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

2. irudia. Metrikak biltzeko eskema

Diagrama barne dokumentaziotik hartua da. Grafana (erabiltzen dugun monitorizazio UI) eta grafitoaren arteko komunikazioa erakusten du. Aplikazio batetik neurketak kentzea software bereizi baten bidez egiten da - jmxtrans. Grafitoan jartzen ditu.
Web Consolidation sistemak hutsegiteak aurreikusteko arazoak sortzen dituzten funtzio ugari ditu:

  1. Joera askotan aldatzen da. Software sistema honetarako hainbat bertsio daude eskuragarri. Horietako bakoitzak sistemaren software zatian aldaketak dakartza. Horren arabera, modu honetan, garatzaileek zuzenean eragiten dute sistema jakin baten metriketan eta joera aldaketa eragin dezakete;
  2. ezarpen-eginbideak, baita bezeroek sistema hau erabiltzen duten helburuek ere, askotan anomaliak eragiten dituzte aldez aurretik degradatu gabe;
  3. datu multzo osoarekiko anomalien ehunekoa txikia da (< % 5);
  4. Sistematik adierazleak jasotzean hutsuneak egon daitezke. Denbora-tarte labur batzuetan, monitorizazio-sistemak ez ditu neurketak lortzen. Adibidez, zerbitzaria gainkargatuta badago. Hau funtsezkoa da sare neuronal bat entrenatzeko. Hutsuneak sintetikoki bete beharra dago;
  5. Anomaliak dituzten kasuak data/hilabete/ordu zehatz baterako (urtarokotasuna) baino ez dira garrantzitsuak. Sistema honek erabiltzaileek erabiltzeko araudi argiak ditu. Horren arabera, neurketak denbora zehatz baterako soilik dira garrantzitsuak. Sistema ezin da etengabe erabili, hilabete batzuetan baizik: selektiboa urtearen arabera. Kasu batean metrikaren portaera berdinak software-sistemaren hutsegite bat ekar dezakeenean, baina ez beste batean, egoerak sortzen dira.
    Hasteko, software sistemen monitorizazio datuetan anomaliak detektatzeko metodoak aztertu ziren. Gai honi buruzko artikuluetan, anomalien ehunekoa gainerako datu-multzoarekiko txikia denean, gehienetan sare neuronalak erabiltzea proposatzen da.

Sare neuronaleko datuak erabiliz anomaliak bilatzeko oinarrizko logika 3. irudian ageri da:

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

3. Irudia. Sare neuronal bat erabiliz anomaliak bilatzea

Uneko neurketen fluxuaren leihoaren iragarpenaren edo leheneratzearen emaitzaren arabera, martxan dagoen software-sistematik jasotako desbideratzea kalkulatzen da. Software-sistematik lortutako metrikaren eta sare neuronalaren artean alde handia badago, egungo datu-segmentua anomalia dela ondoriozta dezakegu. Neurona-sareak erabiltzeko arazo sorta hauek sortzen dira:

  1. Streaming moduan behar bezala funtzionatzeko, sare neuronalaren ereduak entrenatzeko datuek datu "normalak" baino ez dituzte sartu behar;
  2. beharrezkoa da eredu eguneratua edukitzea zuzen detektatzeko. Neurrietan joerak eta urtaroak aldatzeak positibo faltsu ugari sor ditzake ereduan. Eguneratzeko, eredua zaharkituta dagoen unea argi zehaztu behar da. Eredua beranduago edo lehenago eguneratzen baduzu, ziurrenik, positibo faltsu ugari izango dira.
    Ez dugu ahaztu behar positibo faltsuak maiz agertzea bilatzeaz eta saihesteaz. Uste da gehienetan larrialdi egoeretan gertatuko direla. Hala ere, sare neuronaleko akats baten ondorio ere izan daitezke entrenamendu nahikoa ez dela eta. Beharrezkoa da ereduaren positibo faltsuen kopurua minimizatzea. Bestela, iragarpen faltsuek sistema egiaztatzeko helburua duen administratzaile denbora asko galduko dute. Goiz edo beranduago administratzaileak monitorizazio sistema β€œparanoikoari” erantzutea besterik ez du geldituko.

Sare neuronal errepikakorra

Denbora serieetan anomaliak detektatzeko, erabil dezakezu neurona-sare errepikakorra LSTM memoriarekin. Arazo bakarra da aurreikusitako denbora serieetarako soilik erabil daitekeela. Gure kasuan, metrika guztiak ez dira aurreikusgarriak. 4. Irudian RNN LSTM denbora serie bati aplikatzeko saiakera bat erakusten da.

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

4. Irudia. LSTM memoria-zelulekin sare neuronal errekurrente baten adibidea

4. Irudian ikus daitekeenez, RNN LSTM denbora tarte horretan anomalien bilaketari aurre egin ahal izan zion. Emaitza iragarpen-errore handia (batez besteko errorea) duenean, adierazleetan anomalia bat gertatu da. RNN LSTM bakarra erabiltzea, argi eta garbi, ez da nahikoa izango, metrika kopuru txiki baterako aplikagarria baita. Anomaliak bilatzeko metodo laguntzaile gisa erabil daiteke.

Hutsak iragartzeko autokodetzailea

Autokodetzailea – Funtsean, neurona-sare artifiziala. Sarrera geruza kodetzailea da, irteera geruza deskodetzailea. Mota honetako neurona-sare guztien desabantaila anomaliak ondo lokalizatzen ez dituztela da. Autokodetzaile sinkronoaren arkitektura bat aukeratu zen.

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

5. Irudia. Autokodetzailearen funtzionamenduaren adibidea

Autokodetzaileak datu normaletan trebatzen dira eta, ondoren, ereduari ematen zaizkion datuetan zerbait anomalia aurkitzen dute. Zeregin honetarako behar duzuna. Zeregin honetarako autokodetzaile egokia den aukeratzea besterik ez da geratzen. Autokodetzaile baten forma arkitekturalki sinpleena aurrera eta itzultzen ez den neurona-sare bat da, oso antzekoa dena. geruza anitzeko pertzeptrona (geruza anitzeko perceptron, MLP), sarrerako geruza batekin, irteerako geruza batekin eta haiek lotzen dituzten ezkutuko geruza bat edo gehiagorekin.
Hala ere, autokodetzaileen eta MLPen arteko desberdintasunak hauek dira: autokodetzaile batean, irteerako geruzak sarrerako geruzaren nodo kopuru bera duela, eta X sarrera batek emandako xede-balioa iragartzeko entrenatu beharrean, autokodetzailea trebatu egiten dela. bere X-ak berreraikitzeko. Horregatik, Autokodetzaileak gainbegiratu gabeko ikaskuntza-ereduak dira.

Autokodetzailearen zeregina X sarrerako bektoreko elementu anormalei dagozkien r0 ... rn denbora-indizeak aurkitzea da. Efektu hori errore karratua bilatuz lortzen da.

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

6. Irudia Autokodetzaile sinkronoa

Autokodetzailerako hautatu zen arkitektura sinkronikoa. Bere abantailak: streaming prozesatzeko modua erabiltzeko gaitasuna eta sare neuronalaren parametro kopuru nahiko txikiagoa beste arkitektura batzuekin alderatuta.

Positibo faltsuak minimizatzeko mekanismoa

Garatzen ari den anomaliak detektatzeko eredurako hainbat egoera anormal sortzen direnez eta neurona-sarearen entrenamendu nahikorik gabeko egoera posible bat dela eta, positibo faltsuak minimizatzeko mekanismo bat garatzea beharrezkoa zela erabaki zen. Mekanismo hau administratzaileak sailkatutako txantiloi-oinarri batean oinarritzen da.

Denbora-lerroaren eraldaketa dinamikorako algoritmoa (DTW algoritmoak, ingelesezko dynamic time warping-etik) denbora-sekuentzien arteko korrespondentzia optimoa aurkitzeko aukera ematen du. Hizketa-hautematean erabiltzen da lehen aldiz: bi hizketa-seinalek jatorrizko ahozko esaldi bera nola adierazten duten zehazteko erabiltzen da. Ondoren, beste arlo batzuetan aurkitu zen horretarako aplikazioa.

Positibo faltsuak minimizatzeko printzipio nagusia estandar datu-base bat biltzea da, sare neuronalak erabiliz atzemandako kasu susmagarriak sailkatzen dituen operadore baten laguntzarekin. Ondoren, sailkatutako estandarra sistemak detektatu duen kasuarekin alderatzen da, eta kasua faltsua den edo hutsegite bat ekartzen duen ondorioa ateratzen da. DTW algoritmoa erabiltzen da zehazki bi denbora-serie konparatzeko. Minimizazio tresna nagusia sailkapena da oraindik. Erreferentzia-kasu ugari bildu ondoren, sistema operadoreari gutxiago galdetzen hasiko dela aurreikusten da, kasu gehienen antzekotasunagatik eta antzekoak agertzeagatik.

Ondorioz, goian deskribatutako neurona-sareen metodoetan oinarrituta, programa esperimental bat eraiki zen "Web-Consolidation" sistemaren hutsegiteak aurreikusteko. Programa honen helburua, lehendik zegoen jarraipen datuen eta aurreko hutsegiteei buruzko informazioaren artxiboa erabiliz, gure software-sistemetarako ikuspegi honen gaitasuna ebaluatzea zen. Programaren eskema 7. irudian behean aurkezten da.

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

7. Irudia. Espazio metrikoaren analisian oinarritutako hutsegiteak iragartzeko eskema

Diagraman, bi bloke nagusi bereiz daitezke: jarraipeneko datu-jarioan (metriak) denbora-tarte anomaloen bilaketa eta positibo faltsuak minimizatzeko mekanismoa. Oharra: helburu esperimentaletarako, datuak JDBC konexio baten bidez lortzen dira grafitoak gordeko dituen datu-basetik.
Jarraian, garapenaren ondorioz lortutako monitorizazio sistemaren interfazea da (8. irudia).

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

8. Irudia. Jarraipen-sistema esperimentalaren interfazea

Interfazeak anomaliaren ehunekoa bistaratzen du jasotako metriketan oinarrituta. Gure kasuan, ordainagiria simulatu egiten da. Dagoeneko hainbat astetako datu guztiak dauzkagu eta pixkanaka kargatzen ari gara porrota eragiten duen anomaliaren kasua egiaztatzeko. Beheko egoera-barrak une jakin bateko datu-anomaliaren ehuneko orokorra bistaratzen du, autokodetzaile baten bidez zehazten dena. Gainera, aurreikusitako metriketarako portzentaje bereizia bistaratzen da, RNN LSTM-k kalkulatzen duena.

PUZaren errendimenduan oinarritutako anomaliak detektatzeko adibide bat RNN LSTM sare neuronalaren bidez (9. irudia).

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

9. Irudia RNN LSTM aurkikuntza

Kasu nahiko sinple bat, funtsean, anormal arrunta, baina sistemaren porrota ekarri zuena, arrakastaz kalkulatu zen RNN LSTM erabiliz. Denbora-tarte honetan anomaliaren adierazlea % 85-95 da; % 80tik gorako guztia (atalasea esperimentalki zehaztu zen) anomaliatzat hartzen da.
Eguneratze baten ondoren sistemak abiarazi ezin izan duen anomalia detektatzeko adibidea. Egoera hau autokodetzaileak detektatzen du (10. irudia).

Sare neuronalak erabiliz anomaliak bilatzen ditugu eta hutsegiteak aurreikusten ditugu

10. Irudia Autokodetzaile detektatzeko adibidea

Irudian ikus dezakezun bezala, PermGen maila batean itsatsita dago. Autokodetzaileari arraroa iruditu zitzaion, inoiz ez baitzuen horrelakorik ikusi. Hemen anomaliak %100ean jarraitzen du sistema funtzionamendu egoerara itzultzen den arte. Anomalia bat bistaratzen da metrika guztietan. Lehen esan bezala, autokodetzaileak ezin ditu anomaliak lokalizatu. Operadoreari dei egiten zaio funtzio hori betetzeko egoera hauetan.

Ondorioa

PC "Web-Consolidation" hainbat urte daramatza garatzen. Sistema nahiko egoera egonkor batean dago, eta erregistratutako intzidentzia kopurua txikia da. Hala ere, hutsegitea gertatu baino 5-10 minutu lehenago hutsegitea eragiten duten anomaliak aurkitzea posible zen. Zenbait kasutan, hutsegite bat aldez aurretik jakinarazteak "konponketa" lanak egiteko aurreikusitako denbora aurrezten lagunduko luke.

Egindako esperimentuetan oinarrituta, goizegi da azken ondorioak ateratzeko. Orain arte, emaitzak kontrajarriak dira. Alde batetik, argi dago neurona-sareetan oinarritutako algoritmoak anomalia β€œerabilgarriak” aurkitzeko gai direla. Bestalde, positibo faltsuen portzentaje handi bat geratzen da, eta neurona-sare batean espezialista kualifikatu batek detektatu dituen anomalia guztiak ezin dira hauteman. Desabantailen artean, orain sare neuronalak funtzionamendu normala izateko irakasle batekin trebatzea eskatzen du.

Hutsegiteak iragartzeko sistema gehiago garatzeko eta egoera egoki batera eramateko, hainbat modu aurreikus daitezke. Porrota eragiten duten anomaliak dituzten kasuen azterketa zehatzagoa da hau, sistemaren egoeran asko eragiten duten neurketa garrantzitsuen zerrendan gehitze hori dela eta, eta beharrezkoak ez diren alferrikako batzuk baztertu direlako. Gainera, norabide horretan mugitzen bagara, porrotak eragiten dituzten anomaliak dituzten gure kasuetarako algoritmoak espezializatzeko saiakerak egin ditzakegu. Bada beste modu bat. Hau sare neuronalen arkitektura hobetu da eta, ondorioz, detekzio-zehaztasuna areagotzen da entrenamendu-denbora murriztuz.

Nire esker ona adierazten diet artikulu honen garrantzia idazten eta mantentzen lagundu didaten lankideei: Victor Verbitsky eta Sergei Finogenov.

Iturria: www.habr.com

Gehitu iruzkin berria