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
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.
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
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
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 -
Web Consolidation sistemak hutsegiteak aurreikusteko arazoak sortzen dituzten funtzio ugari ditu:
- 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;
- ezarpen-eginbideak, baita bezeroek sistema hau erabiltzen duten helburuek ere, askotan anomaliak eragiten dituzte aldez aurretik degradatu gabe;
- datu multzo osoarekiko anomalien ehunekoa txikia da (< % 5);
- 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;
- 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:
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:
- Streaming moduan behar bezala funtzionatzeko, sare neuronalaren ereduak entrenatzeko datuek datu "normalak" baino ez dituzte sartu behar;
- 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
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
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.
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.
6. Irudia Autokodetzaile sinkronoa
Autokodetzailerako hautatu zen
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.
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.
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).
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).
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).
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:
Iturria: www.habr.com