Artikel top billede

Big data på arbejde: Sådan ved Fullrate på sekundet, når din router fejler

Klumme: Hvordan kan trivielle data i store mængder give ny indsigt? Fullrate har bygget sit eget værktøj til netværksanalyse, og det giver lynhurtig, præcis og nyttig information. Kom med en tur i maskinrummet.

Hvad er det egentlig, vi går og roder med i netværksafdelingen hos en ISP?

Det kan være svært at forklare for de uindviede. En bygningsingeniør kan pege og sige "den bro", men det er noget mere 'fluffy,' når man dimser med data.

Når folk spørger, hvad jeg laver, plejer jeg derfor at bruge den lette forklaring: "Jeg sikrer at danskerne kan streame pr0n, uden at det hakker!".

Stabilitet er derfor en vigtig parameter, og som jeg har beskrevet tidligere her, er netop stabilitet en udfordring, når vi snakker internet over telefonkabler.

Men last-mile er kun en lille del af det samlede billede: Selv en perfekt DSL-, koaks- eller fiberlinje kan jo også rammes af større fejl i netværket.

Kabler graves over, switche og så videre på centralerne brænder sammen, XFP'er fejler, softwarenedbrud opstår i core-routere og BRAS og hvad der ellers regelmæssigt sker af sjove ting og sager i ethvert netværk, uanset accessteknologi.

Vi overvåger, naturligvis

Vi arbejder professionelt, og derfor har vi naturligvis etableret overvågning af vores netværkselementer.

Hvis en fiber eksempelvis graves over, vil tabet af link på de pågældende fiberporte resultere i en alarm, og vi har en vagtordning, så der kan reageres døgnet rundt, året rundt.

Vi har i Fullrate i omegnen af 500 aktive fiberporte, der binder vores corenet og centraler sammen i Danmark. Nogle netværkselementer har hundreder af kunder under sig. Andre har titusindevis af kunder.

Hvordan vurderer man omfanget af et nedbrud?

Men hvordan vurderer man omfanget af et nedbrud? Hvor mange og hvilke kunder er berørt?

Disse spørgsmål skal besvares, og det er absolut vigtigt at få svarene hurtigst muligt. Grunden til dette er flerfold.

For det første er det vigtigt, at vi har en retvisende og prompte opdatering af vores driftinformation, så de berørte kunder kan få bedst mulig indsigt i hvad der foregår.

For det andet er det vigtigt, at supporterne ved det hurtigst muligt, når et område er omfattet af et større nedbrud.

Når en kunde fra det pågældende område ringer, ved supporteren allerede, at denne kunde sandsynligvis er omfattet af det pågældende problem. Derved sparer vi tid og minimerer for eksempel unødvendige ombytninger af udstyr.

Midt om natten

Men hvordan kan man vide, hvilke kunder der er berørt af for eksempel en linkfejl et sted i corenettet? Vel at mærke på en hurtig, nem og intuitiv måde?

Hvis nu min telefon ringer klokken lort om natten, og jeg i en kæmpebrandert skal overskue omfanget af et link-down event på mr1-ar,xe-5/3/0, hvordan gør jeg så lige det?

Det krævede normalt et indgående kendskab til netværkstopologien og en søgen rundt i diverse databaser at besvare et spørgsmål som: "Er en kunde i Høsterkøb en del af Birkerød eller Hørsholm central?"

Og hvad nu, hvis det er en stakkels supporter, som kun har været i biksen i fire måneder, der lige skal finde ud af det i en håndevending med en sur kunde i røret?

Vi har udviklet et værktøj

Til det har vi udviklet et værktøj, vi kalder CPEmap, som i realtime viser online-status for samtlige routere (på nær nogle ældre modeller) i vores netværk.

Vejen frem til dette værktøj er ret sjov, så den vil jeg lige beskrive for jer.

Det er i realiteten en sideeffekt af et andet værktøj, som vi i forbindelse med vores big-data tilgang til problemløsning udviklede til indsamling af statistikker om linkhastighed og -kvalitet samt system-stats for vores routere, CPEmon.

CPEmon består af noget kode, som vi deployer ud på den enkelte router. Denne kode vågner regelmæssigt, samler en række informationer ind om, hvordan routeren og linket har det, og sender dem til en server i vores datacenter og falder så i søvn igen.

Denne proaktive tilgang betyder, at vi har historiske data for alle vores routere, hvilket gør det langt nemmere at foretage en korrekt diagnose af et problem - som i mange tilfælde når vi snakker accesslaget er af periodisk/sporadisk natur - og giver os mulighed for at detektere problemer, før kunden ringer og klager.

Værdifulde informationer

Da CPEmon blev lanceret, viste det sig hurtigt at være et værdifuldt værktøj, som blandt andre supporterne benytter i hverdagen med de deraf følgende krav til oppetid og driftsstabilitet.

Derfor introducerede vi overvågning af tilstanden for CPEmon på de enkelte routere. Er CPEmon deployet på router X, hvornår så vi sidst data fra CPE Y?, og så videre.

Grafer for deployment-status viste sig at være et værdifuldt værktøj for netværksingeniørerne i coreafdelingen. For eksempel bruges det ved natarbejde/netværksomlægninger til at vurdere, om alle kunder er kommet online igen, efter en ændring er foretaget.

Det foregik traditionelt ved tilfældigt at udvælge nogle kunder i hvert segment/VLAN og prøve at pinge routerne på de forskellige interfaces. Men det er en manuel process, og dermed er den både tidskrævende og indeholder risiko for, at et VLAN glemmes eller overses.

Men med en CPEmon deployment-graf er det særdeles let med et enkelt øjekast at se, om alle de linjer, der var online før ændringer, er kommet online igen.

Det fremgår af dette eksempel. Kl. 03.15 foretages ændringen, hvorved omkring 8.000 kunder går offline. Kl. 05.15 er de alle online igen.

Bemærk, at her benytter vi ikke selve "payload-data" fra CPEmon men metadata om systemet CPEmon's deployment til at konkludere på tilstanden af netværket.

Det viste sig, at vi på samme måde kunne benytte CPEmon-metadata til at vurdere omfanget af et netværksnedbrud.

Her er et eksempel, hvor vi oplevede et kortvarigt udfald i BGP (den centrale routingprotokol i corenetværket). Dette påvirkede omkring 14.000 kunder, og varigheden kan også let fastslås til cirka 30 minutter.

En aha-oplevelse

Det var lidt en aha-oplevelse for os, og vi begyndte at lege med data for at se, om vi kunne se andre ting.

Det blev hurtigt klart for os, at det ville forøge værdien af værktøjet tusindfold, hvis vi kunne forædle data med geografiske informationer.

I eksemplet med BGP-udfaldet kan vi så ikke bare se, hvor mange kunder der blev ramt, men også hvilke geografiske områder der var berørt (Fyn, Sjælland og Bornholm).

Hvor mange ER ramt, er det vigtige spørgsmål

Alt dette var fint nok, men det var en manuel proces der krævede en del fiflen rundt med data helt nede i mavsen på systemerne.

Det er fint nok, når vi nørder i net-afdelingen og sidder og leger. Men det er ikke proaktivt, og det tager tid at foretage en analyse.

"Hvor mange BLEV ramt" er absolut relevant, men det er et spørgsmål til en retrospektiv betragtning efter et nedbrud.

"Hvor mange ER ramt" er spørgsmålet, vi løbende vil have besvaret, og derfor satte vi os for at udvikle et interaktivt kort, som kunne vise disse data i realtime: CPEmap.

Kortet vises på tv-skærme i net- og supportafdelingerne i Fullrate, og det er meningen, at man i hastig forbigang med et enkelt øjekast skal kunne se, om der er noget usædvanligt.

Derfor er det mørke tema bevidst valgt for at fremhæve den relevante information.

En blå prik er en router, som er online, mens en rød prik er en router, der er offline. Få sekunder efter, en router går offline, vil det kunne ses på kortet.

Her kan I se et eksempel på CPEmap 'in action'. Øjet drages lynhurtigt mod den røde plamage sydvest for Aalborg.

Zoomer vi lidt ind, kan vi se, at samtlige linjer i Farsø er gået offline:

Her ses styrken i denne måde at vise data på virkelig!

I dette tilfælde er omfanget af udfaldet på cirka 130 linjer. Det er en promille af det samlede antal linjer under CPEmon-monitorering, og derfor ville diskrepansen være tæt på umulig at spotte på en graf, der blot viser online CPE'er, som for eksempel denne:

Vi ved præcis, hvem der er ramt af netværksudfald

Her kan man også se, at udsving i antal online-CPE'er er helt normalt.

Folk slukker deres router, eller et eller andet støjer og fremprovokerer en reinitialisering af linket og så videre.

Dette resulterer i et støjgulv, som betyder, at ret mange linjer skal gå offline samtidig, før det tydeligt kan ses på en en-dimensionel online-graf.

I samme øjeblik, vi introducerer en geografisk dimension på data, springer udfald med så lidt som 20-30 kunder tydeligt i øjnene.

Dette system muliggør, at vi bogstavelig talt sekunder efter, et netværksudfald er sket, ved præcist, hvem der er ramt.

Strømafbrydelser er for eksempel særdeles nemme at spotte, og vi har adskillige gange hygget os over, at vi har set det, før elselskabets driftinformation bliver opdateret.

Her er et lidt mere spektakulært eksempel, hvor en større del af Sjælland kortvarigt flippes i forbindelse med noget planlagt natarbejde:

Kan bruges til meget

At mappe datapunkterne ned på et kort kan i øvrigt bruges i andre sammenhænge.

Her er et eksempel, hvor hvert datapunkt farves efter om der har været CRC fejl på linket i den foregående måleperiode. Denne timelapse foregår hen over et større tordenvejr der gik over Danmark tilbage i juni.

Det gav 12.245 lyn. De voldsomme elektriske udladninger som lyn består af kan give forstyrrelser på telefonkablerne, og det kan udmønte sig i midlertidige transmissionsfejl på DSL linjerne.

Hvis der er tale om en direkte lyn-træffer i telefonkablet, er du ikke i tvivl: Din router dør en dramatisk død (sammen med de fleste andre elektriske apparater i hjemmet).

Det er dog forholdsvist sjældent, at det sker i Danmark, da telefonkablerne her er gravet ned.

Men selv, hvis lynnedslaget er langt væk fra telefonkablet, sker der en kobling af det stærke elektromagnetiske felt til telefonkablerne.

Det betyder, at en stor overspænding (som sagtens kan være mange tusinde volt) løber ind ad telefonkablet til din router.

Routerne har indbygget beskyttelse mod overspænding, og derfor vil det for langt de fleste routere blot betyde, at der opstår nogle kortvarige fejl i data, og så kører linjen ellers videre uden problemer.

Videoen viser tordenvejret, som det blev oplevet af Fullrate's routere.

Røde prikker er routere, som har haft mindst et fejlbehæftet sekund i det pågældende tidsinterval. Tidsserien begynder om morgenen, så tordenvejret ses i slutningen af videoen.

Jeg håber, du nød dette lille indblik i et par eksempler på, hvordan vi forsøger at vride nye indsigter ud ved at lege med data her hos Fullrate.

Husk, I kan følge mig på Facebook, hvor jeg skriver løst og fast om teknologi, og hvor I kan komme med forslag til emner som jeg kan tage op i klummen: https://www.facebook.com/en.noerds.bekendelser/

Min lille private teknologiske losseplads finder I på http://www.nørdoteket.dk/ hvor jeg dumper de artikler jeg har skrevet og diverse andet snask - alt sammen med primær fokus på GDS og teknologi.

Klummer er læsernes platform på Computerworld til at fortælle de bedste historier, og samtidig er det vores meget populære og meget læste forum for videndeling. 

Har du en god historie eller har du specialviden, som du synes trænger til at blive delt? 

Læs vores klumme-guidelines og send os noget tekst, så kontakter vi dig - måske bliver du en del af vores hurtigt voksende korps af klummeskribenter.