Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Industriële ontwikkeling van sagtewarestelsels vereis groot aandag aan die fouttoleransie van die finale produk, sowel as 'n vinnige reaksie op mislukkings en mislukkings, indien dit wel voorkom. Monitering help natuurlik om meer doeltreffend en vinnig op mislukkings en mislukkings te reageer, maar nie genoeg nie. Eerstens is dit baie moeilik om tred te hou met 'n groot aantal bedieners - 'n groot aantal mense is nodig. Tweedens moet u 'n goeie begrip hê van hoe die toepassing werk om die toestand daarvan te voorspel. Daarom het ons baie mense nodig wat 'n goeie begrip het van die stelsels wat ons ontwikkel, hul werkverrigting en kenmerke. Gestel, selfs al kry jy genoeg mense wat dit wil doen, neem dit steeds baie tyd om hulle op te lei.

Wat om te doen? Dit is waar kunsmatige intelligensie tot die redding kom. Die artikel gaan oor voorspellende instandhouding (voorspellende instandhouding). Hierdie benadering is vinnig besig om gewild te word. 'n Groot aantal artikels is geskryf, onder meer oor Habré. Groot ondernemings gebruik hierdie benadering met groot krag om die gesondheid van hul bedieners te handhaaf. Nadat ons 'n groot aantal artikels hersien het, het ons besluit om hierdie benadering te probeer. Wat het daarvan gekom?

Inleiding

Die ontwikkelde sagtewarestelsel gaan vroeër of later in werking. Dit is belangrik vir die gebruiker dat die stelsel sonder foute werk. Indien 'n noodsituasie wel voorkom, moet dit met minimale vertraging uitgeskakel word.

Om die tegniese ondersteuning van 'n sagtewarestelsel te vereenvoudig, veral as daar baie bedieners is, word moniteringsprogramme gewoonlik gebruik wat metrieke van 'n lopende sagtewarestelsel neem, dit moontlik maak om die toestand daarvan te diagnoseer en te help bepaal wat presies die mislukking veroorsaak het. Hierdie proses word sagtewarestelselmonitering genoem.

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 1. Grafana monitering koppelvlak

Metrieke is verskeie aanwysers van 'n sagtewarestelsel, sy uitvoeringsomgewing of 'n fisiese rekenaar waaronder die stelsel loop met 'n tydstempel van die oomblik toe die metrieke ontvang is. In statiese analise word metrieke data tydreekse genoem. Om die toestand van die sagtewarestelsel te monitor, word metrieke in die vorm van grafieke vertoon: langs die X-as - tyd, en langs die Y-as - waardes (Figuur 1). Etlike duisend metrieke kan van 'n lopende sagtewarestelsel (van elke nodus) geneem word. Hulle vorm die ruimte van metrieke (multidimensionele tydreekse).

Aangesien 'n groot aantal metrieke uit komplekse sagtewarestelsels verwyder word, word handmonitering 'n moeilike taak. Om die hoeveelheid data wat 'n administrateur ontleed te verminder, bevat moniteringsnutsmiddels gereedskap om potensiële probleme outomaties te identifiseer. Byvoorbeeld, jy kan 'n sneller opstel wat brand wanneer vrye skyfspasie onder 'n gespesifiseerde drempel daal. U kan ook 'n bedienerafskakeling of 'n kritieke diensvertraging outomaties diagnoseer. In die praktyk doen moniteringsinstrumente 'n goeie werk om mislukkings op te spoor wat reeds plaasgevind het of om eenvoudige simptome van toekomstige mislukkings te identifiseer, maar oor die algemeen bly die voorspelling van 'n moontlike mislukking 'n moeilike neut om vir hulle te kraak. Voorspelling deur handmatige ontleding van metrieke vereis die betrokkenheid van gekwalifiseerde spesialiste. Dit is laag produktief. Die meeste potensiële mislukkings kan ongemerk bly.

Onlangs het die sogenaamde voorspellende instandhouding van sagtewarestelsels al hoe meer gewild geword onder groot IT-sagteware-ontwikkelingsmaatskappye. Die essensie van hierdie benadering is om probleme te vind wat lei tot stelseldegradasie in die vroeë stadiums, voordat dit misluk, met behulp van kunsmatige intelligensie. Hierdie benadering sluit nie manuele monitering van die stelsel heeltemal uit nie. Dit is bykomstig tot die moniteringsproses as geheel.

Die belangrikste hulpmiddel vir die implementering van voorspellende instandhouding is die taak om anomalieë in tydreekse te vind, aangesien wanneer 'n anomalie voorkom in die data, daar is 'n hoë waarskynlikheid dat na 'n geruime tyd mislukking of mislukking plaasvind. 'n Anomalie is 'n afwyking in die werkverrigting van 'n sagtewarestelsel, soos die opsporing van agteruitgang in die spoed van die uitvoering van 'n navraag van een tipe of 'n afname in die gemiddelde aantal versoeke wat met 'n konstante vlak van kliëntsessies bedien word.

Die taak om anomalieë vir sagtewarestelsels te vind, het sy eie besonderhede. In teorie, vir elke sagtewarestelsel, is dit nodig om bestaande metodes te ontwikkel of te verfyn, aangesien die soeke na afwykings baie afhanklik is van die data waarin dit uitgevoer word, en die data van sagtewarestelsels verskil baie na gelang van die gereedskap vir die implementering van die stelsel, tot op watter rekenaar dit loop.

Anomalie Soekmetodes om sagtewarestelselfoute te voorspel

Eerstens is dit die moeite werd om te sê dat die idee van die voorspelling van mislukkings deur die artikel geïnspireer is "Masjineleer in IT-monitering". Om die doeltreffendheid van die benadering met outomatiese soektog na anomalieë te toets, is die Web-Consolidation-sagtewarestelsel gekies, wat een van NPO Krista se projekte is. Daarvoor is handmonitering voorheen volgens die ontvangde statistieke uitgevoer. Aangesien die stelsel redelik kompleks is, word 'n groot aantal statistieke daarvoor geneem: JVM-aanwysers (vullisverwyderlading), aanwysers van die bedryfstelsel waaronder die kode uitgevoer word (virtuele geheue, % OS-SVE-lading), netwerkaanwysers (netwerklading) ), die bediener self (CPU-lading, geheue), wildvlieg-metrieke en inheemse toepassingsstatistieke vir alle kritieke substelsels.

Alle metrieke word uit die stelsel geneem deur grafiet te gebruik. Aanvanklik is die fluisterdatabasis as 'n standaardoplossing vir grafana gebruik, maar met die groei van die kliëntebasis het grafiet opgehou om te hanteer, nadat die bandwydte van die DC-skyfsubstelsel uitgeput is. Daarna is besluit om na 'n doeltreffender oplossing te soek. Die keuse is ten gunste van gemaak grafiet+klikhuis, wat dit moontlik gemaak het om die las op die skyfsubstelsel met 'n orde van grootte te verminder en die skyfspasie wat beset word met vyf tot ses keer te verminder. Hieronder is 'n diagram van die meganisme vir die insameling van metrieke met behulp van grafiet + klikhuis (Figuur 2).

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 2. Skema vir die verwydering van metrieke

Die skema is geneem uit interne dokumentasie. Dit wys die uitruil van data tussen grafana (die moniteringsgebruikerskoppelvlak wat ons gebruik) en grafiet. Die verwydering van statistieke uit die toepassing word uitgevoer deur 'n aparte sagteware - jmxtrans. Hy sit hulle ook in grafiet.
Die Web Consolidation-stelsel het 'n aantal kenmerke wat probleme skep vir die voorspelling van mislukkings:

  1. daar is dikwels 'n verandering in neiging. Daar is verskillende weergawes van hierdie sagteware stelsel. Elkeen van hulle bring veranderinge in die sagteware deel van die stelsel. Gevolglik beïnvloed ontwikkelaars op hierdie manier die maatstawwe van hierdie stelsel direk en kan dit 'n tendensverandering veroorsaak;
  2. die eienaardigheid van die implementering, sowel as die doelwitte van die gebruik van hierdie stelsel deur kliënte, vereis dikwels anomalieë sonder vorige agteruitgang;
  3. die persentasie anomalieë relatief tot die hele datastel is klein (< 5%);
  4. daar kan leemtes wees in die verkryging van aanwysers van die stelsel. Met 'n paar kort tussenposes versuim die moniteringstelsel om statistieke te ontvang. Byvoorbeeld, as die bediener oorlaai is. Dit is van kritieke belang vir neurale netwerk opleiding. Daar is 'n behoefte om die leemtes sinteties aan te vul;
  5. Gevalle met anomalieë is dikwels net relevant vir 'n spesifieke dag/maand/tyd (seisoenale). Hierdie stelsel het 'n duidelike regulering van die gebruik van sy gebruikers. Gevolglik is die maatstawwe slegs vir 'n spesifieke tyd relevant. Die stelsel kan nie voortdurend gebruik word nie, maar slegs in sommige maande: selektief afhangend van die jaar. Daar is situasies wanneer dieselfde gedrag van metrieke in een geval tot die mislukking van die sagtewarestelsel kan lei, maar nie in die ander nie.
    Om mee te begin, is metodes vir die opsporing van anomalieë in die monitering van data van sagtewarestelsels ontleed. In artikels oor hierdie onderwerp, met 'n klein persentasie anomalieë relatief tot die res van die datastel, word dit meestal voorgestel om neurale netwerke te gebruik.

Die basiese logika vir die vind van anomalieë met behulp van neurale netwerkdata word in Figuur 3 getoon:

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 3. Soek vir anomalieë deur 'n neurale netwerk te gebruik

Gebaseer op die resultaat van die voorspelling of die herstel van die venster van die huidige vloei van metrieke, word die afwyking van dit wat van die lopende sagtewarestelsel ontvang is, bereken. In die geval van 'n groot verskil tussen die ontvangde metrieke van die sagtewarestelsel en die neurale netwerk, kan ons aflei dat die huidige datasegment abnormaal is. Die volgende aantal probleme ontstaan ​​vir die gebruik van neurale netwerke:

  1. vir korrekte werk in stroommodus, moet die data vir opleiding van neurale netwerkmodelle slegs "normale" data insluit;
  2. jy moet 'n bygewerkte model hê vir korrekte opsporing. Veranderinge in neiging en seisoenaliteit in metrieke kan 'n groot aantal vals positiewe in die model veroorsaak. Om dit op te dateer, is dit nodig om die tyd duidelik te definieer wanneer die model verouderd is. As die model later of vroeër bygewerk word, sal waarskynlik 'n groot aantal vals positiewes volg.
    U moet ook nie vergeet om die gereelde voorkoms van vals positiewe te vind en te voorkom nie. Daar word aanvaar dat hulle die meeste in noodsituasies sal voorkom. Hulle kan egter ook die gevolg wees van 'n neurale netwerkfout as gevolg van onvoldoende opleiding. Dit is nodig om die aantal vals positiewe van die model te minimaliseer. Andersins sal vals voorspellings baie administrateur se tyd mors om die stelsel na te gaan. Vroeër of later sal die administrateur eenvoudig ophou om op die "paranoïese" moniteringstelsel te reageer.

Herhalende neurale netwerk

Om anomalieë in tydreekse op te spoor, kan jy aansoek doen herhalende neurale netwerk met LSTM geheue. Die enigste probleem is dat dit slegs op voorspelbare tydreekse toegepas kan word. In ons geval is nie alle maatstawwe voorspelbaar nie. 'n Poging om RNN LSTM vir 'n tydreeks toe te pas, word in Figuur 4 getoon.

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 4. 'n Voorbeeld van die werking van 'n herhalende neurale netwerk met LSTM geheueselle

Soos gesien kan word uit Figuur 4, het RNN LSTM daarin geslaag om die soektog na 'n anomalie in hierdie tydsinterval te hanteer. Waar die resultaat 'n hoë voorspellingsfout (gemiddelde fout) het, het 'n anomalie inderdaad plaasgevind in terme van aanwysers. Die gebruik van een RNN LSTM sal natuurlik nie genoeg wees nie, aangesien dit van toepassing is op 'n klein aantal metrieke. Kan as 'n hulpmetode gebruik word om afwykings te vind.

Outo-enkodeerder vir mislukkingsvoorspelling

Outo-enkodeerder is in wese 'n kunsmatige neurale netwerk. Invoerlaag is enkodeerder, uitvoerlaag is dekodeerder. Die nadeel van alle neurale netwerke van hierdie tipe is dat dit anomalieë swak lokaliseer. Die argitektuur van die sinchrone outo-enkodeerder is gekies.

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 5. 'n Voorbeeld van die werk van die outo-enkodeerder

Outo-enkodeerders oefen op normale data en vind dan iets onreëlmatigs in die data wat in die model ingevoer word. Net wat jy nodig het vir hierdie taak. Dit bly net om te kies watter van die outo-enkodeerders geskik is vir hierdie taak. Die argitektonies eenvoudigste vorm van 'n outo-enkodeerder is 'n voorwaartse, nie-herhalende neurale netwerk, wat baie soortgelyk is aan meerlaag perceptron (multilayer perceptron, MLP), met 'n invoerlaag, 'n uitsetlaag en een of meer versteekte lae wat hulle verbind.
Die verskille tussen outo-enkodeerder en MLP's is egter dat die uitsetlaag in 'n outo-enkodeerder dieselfde aantal nodusse as die invoerlaag het, en dat die outo-enkodeerder leer om te rekonstrueer in plaas daarvan om die teikenwaarde Y te voorspel wat deur die inset X gegee word. sy eie X. Daarom is outo-enkodeerders sonder toesig leermodelle.

Die taak van die outo-enkodeerder is om tydindekse r0 ... rn te vind wat ooreenstem met anomale elemente in die insetvektor X. Hierdie effek word verkry deur na 'n kwadratiese fout te soek.

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 6. Sinchroniese outo-enkodeerder

Vir die outo-enkodeerder is gekies sinchrone argitektuur. Die voordele daarvan: die vermoë om stroomverwerkingsmodus te gebruik en 'n relatief kleiner aantal neurale netwerkparameters in vergelyking met ander argitekture.

Vals positiewe minimaliseringsmeganisme

As gevolg van die feit dat verskeie noodsituasies ontstaan, en die situasie van onvoldoende opleiding van die neurale netwerk ook moontlik is, is daar vir die ontwikkelde anomalie-opsporingsmodel besluit dat dit nodig was om 'n meganisme te ontwikkel om vals positiewe te minimaliseer. Hierdie meganisme is gebaseer op 'n sjabloonbasis wat die administrateur kategoriseer.

Tydlyn Dinamiese Transformasie Algoritme (DTW-algoritme, van die Engelse dinamiese tydverdraaiing) laat jou toe om die optimale passing tussen tydreekse te vind. Eerste gebruik in spraakherkenning: gebruik om te bepaal hoe twee spraakseine dieselfde oorspronklike gesproke frase verteenwoordig. Daarna is gevind dat dit in ander gebiede gebruik word.

Die basiese beginsel van die minimalisering van vals positiewe is om 'n databasis van standaarde te versamel met die hulp van 'n operateur wat verdagte gevalle klassifiseer wat met neurale netwerke opgespoor is. Vervolgens word die geklassifiseerde standaard vergelyk met die geval wat die stelsel opgespoor het, en 'n gevolgtrekking word gemaak of die saak aan 'n vals behoort of tot mislukking lei. Net om twee tydreekse te vergelyk, word die DTW-algoritme gebruik. Die belangrikste minimaliseringsinstrument is steeds klassifikasie. Daar word aanvaar dat na die versameling van 'n groot aantal verwysingsgevalle, die stelsel die operateur minder sal begin vra as gevolg van die ooreenkoms van die meeste gevalle en die voorkoms van soortgelyke gevalle.

As gevolg hiervan, gebaseer op die bogenoemde metodes van neurale netwerke, is 'n eksperimentele program gebou om die mislukkings van die Web-konsolidasiestelsel te voorspel. Die doel van hierdie program was, met behulp van die bestaande argief van monitering van data en inligting oor die mislukkings wat reeds voorgekom het, om die bevoegdheid van hierdie benadering vir ons sagtewarestelsels te assesseer. Die skema van die program word hieronder in Figuur 7 getoon.

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 7. Skema van mislukkingsvoorspelling gebaseer op die ontleding van die ruimte van metrieke

Twee hoofblokke kan op die diagram onderskei word: die soeke na afwykende tydperke in die moniteringsdatastroom (metrieke) en die meganisme om vals positiewes te minimaliseer. Let wel: Vir eksperimentele doeleindes word die data verkry via 'n JDBC-verbinding vanaf die databasis waarin grafiet dit sal stoor.
Die volgende is die koppelvlak van die gevolglike moniteringstelsel (Figuur 8).

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 8. Koppelvlak van die eksperimentele moniteringstelsel

Die koppelvlak vertoon die persentasie anomalie volgens die ontvangde statistieke. In ons geval word die verkryging gesimuleer. Ons het reeds al die data vir 'n paar weke en laai dit geleidelik om die saak te toets met 'n anomalie wat tot mislukking lei. Die onderste statusbalk vertoon die totale persentasie data-afwykings op 'n gegewe tydstip, wat met die outo-enkodeerder bepaal word. 'n Aparte persentasie word ook vir voorspellende statistieke vertoon, wat deur RNN LSTM bereken word.

'n Voorbeeld van anomalie-opsporing deur SVE-aanwysers met behulp van die RNN LSTM neurale netwerk (Figuur 9).

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 9. LSTM RNN-opsporing

'n Taamlik eenvoudige geval, in wese 'n normale uitskieter, maar wat tot 'n stelselfout lei, is suksesvol met behulp van RNN LSTM bereken. Die aanwyser van anomalie in hierdie tydperk is 85 - 95%, alles bo 80% (die drempel word eksperimenteel bepaal) word as 'n anomalie beskou.
'n Voorbeeld van 'n anomalie-opsporing waar die stelsel nie kon selflaai na 'n opdatering nie. Hierdie situasie word deur die outo-enkodeerder opgespoor (Figuur 10).

Ons soek afwykings en voorspel mislukkings deur neurale netwerke te gebruik

Figuur 10. Outo-enkodeerder opsporing voorbeeld

Soos u uit die figuur kan sien, is PermGen op een vlak vas. Die outo-enkodeerder het gedink dit is vreemd omdat dit nog nie so iets gesien het nie. Hier hou die anomalie alles 100% totdat die stelsel terugkeer na 'n werkende toestand. Anomalie word vir alle maatstawwe vertoon. Soos vroeër genoem, weet die outo-enkodeerder nie hoe om anomalieë te lokaliseer nie. Die operateur word versoek om hierdie funksie in hierdie situasies uit te voer.

Gevolgtrekking

PC "Web-Consolidation" is ontwikkel vir meer as 'n jaar. Die stelsel is in 'n redelik stabiele toestand, en die aantal aangetekende voorvalle is laag. Dit was egter moontlik om afwykings te vind wat tot 'n mislukking gelei het 5 tot 10 minute voor die mislukking plaasgevind het. In 'n aantal gevalle sal vooraf kennisgewing van 'n mislukking help om die geskeduleerde tyd te bespaar wat vir "herstelwerk" toegewys word.

Op grond van die eksperimente wat uitgevoer is, is dit te vroeg om finale gevolgtrekkings te maak. Tot dusver is die resultate inkonsekwent. Aan die een kant is dit duidelik dat algoritmes gebaseer op neurale netwerke in staat is om "nuttige" anomalieë te vind. Aan die ander kant bly 'n groot persentasie vals positiewes oor, en nie alle afwykings wat deur 'n gekwalifiseerde spesialis in 'n neurale netwerk opgespoor word, kan opgespoor word nie. Die nadele sluit in die feit dat die neurale netwerk nou opleiding met 'n onderwyser benodig vir normale werking.

Vir verdere ontwikkeling van die stelsel om mislukkings te voorspel en dit tot 'n bevredigende toestand te bring, kan verskeie maniere in die vooruitsig gestel word. Dit is 'n meer gedetailleerde ontleding van gevalle met afwykings wat lei tot 'n mislukking, as gevolg van hierdie byvoeging tot die lys van belangrike maatstawwe wat die toestand van die stelsel grootliks beïnvloed, en die weggooi van onnodiges wat dit nie beïnvloed nie. Ook, as ons in hierdie rigting beweeg, kan ons probeer om die algoritmes spesifiek vir ons gevalle te spesialiseer met anomalieë wat tot mislukkings lei. Daar is 'n ander manier. Dit is 'n verbetering in die argitekture van neurale netwerke en, as gevolg hiervan, 'n toename in die akkuraatheid van opsporings met 'n vermindering in opleidingstyd.

Ek spreek my dank uit teenoor die kollegas wat my gehelp het met die skryf en handhawing van die relevansie van hierdie artikel: Viktor Verbitsky en Sergei Finogenov.

Bron: will.com

Voeg 'n opmerking