Gå på opdagelse i logfilernes skatkamre

Hvordan får man overblik over kørende systemers helbredstilstand, og hvordan zoomer man hurtigt ind på den djævelske detalje, der får et system til at skrante?

Logfiler. Det er ikke den mest hypede eller avancerede teknologi i 2018, men ikke desto mindre noget af det vigtigste, hvis du gerne vil have en fornemmelse af, hvordan dine systemer har det. Hvis du er udvikler, systemoperatør eller den nyere tids hybrid devop, så har du garanteret kigget i en eller flere logs for at finde ud af, hvorfor virksomhedens website pludselig har lange svartider eller – Date forbyde det - hvorfor databasen løb tør for tablespace.

Find guldet

Med dagens systemer er logfilerne for et system ofte spredt ud på forskellige servere – nogle i virksomheden, andre i skyen hos Amazon eller Microsoft og atter andre hos diverse samarbejdspartnere, der leverer forskellige (mikro-)services til vores system  – og det kan være svært at få et overblik over den ofte meget værdifulde information, der er drysset ud som guldstøv i diverse logfiler. Der findes eksisterende log-managementsystemer, som lover at gøre informationen fra logfiler lettilgængelig, men danske Humio mener, at løsningerne ofte ikke er gode nok eller er for dyre at anvende. Derfor har de skabt deres egen løsning, som konsoliderer logfilerne ét sted og samtidig stiller et forespørgselssprog til rådighed, så udviklere og devops kan gå på opdagelse i logfilerne, ligesom der er mulighed for at skabe et dashboard med de mest relevante oplysninger om et systems helbredstilstand. 

Erfaringsbaseret design

Humio er etableret af en række folk fra det danske udviklingshus Trifork, deriblandt Kresten Krab Thorup, som er CTO i Humio.

– Der er et hul i markedet. Der er ikke noget rigtigt godt på markedet, som er forholdsvist billigt og kan installeres on-premise sammen med ens systemer, siger Kresten Krab, som sammen med sine kollegaer har udviklet Humio på baggrund af erfaringer med andre log-managementsystemer.

– I Trifork har vi mange små og mellemstore projekter, hvor vi på nogle af projekterne har brugt  Splunk, som egentlig er et udmærket produkt, det er blot hundedyrt, siger han.

Andre log-managementsystemer baserer sig på Elasticsearch, eksempelvis Logstash, men her er erfaringen, at Elastic ikke er så god til at importere de store mængder data, som logfiler producerer, selvom søgemulighederne med Elastic er gode.

Derfor har Humio vendt det traditionelle database-paradigme på hovedet og gjort det relativt omkostningsfrit i maskinressourcer at indsætte data i Humio, mens søgninger kræver lidt flere ressourcer end normalt. Da det kun er et lille antal devops, der går på opdagelse i logfilernes gigabyte af information, er det en holdbar tradeoff, mener Humio.

Et af de større projekter, som anvender Humio, er Fælles Medicinkort i regi af Region Syddanmark, hvor der loades omkring 20TB data ind i systemet hver dag. Her er der tre devops, som har anvendt Humio i et års tid, hvor det især har været anvendt til netværksovervågning. Humio udstyrer logdata med et enkelt tidsindeks og deler dem op i 10GB-datafiler, som komprimeres til kun at fylde 1GB. Det gør det muligt at gemme rigtigt mange logdata, hvilket er vigtigt for Kresten Krab, som er ked af at høre om projekter, hvor adgang til logdata eller mængden af logdata reduceres grundet omkostninger, kvoter eller virksomhedspolitik.

Værdien af logdata er simpelthen for stor til at smide dem bort af den ene eller anden grund. Derfor sælger Humio sit produkt med en site-licens og ikke efter, hvor meget storage der anvendes.

– Det er selvmodsigende, at man gerne vil logge så meget, men samtidig skal man betale pr. volumen, siger Kresten Krab.

Humio-løsningen kommer som en Docker-container og installeres ofte hos kunden selv, men kan også hostes hos Humio eller i skyen.

Elastisk logfil-beat

Indsamlingen af logfiler fra forskellige servere sker ved hjælp af eksisterende open source-værktøjer.

– De fleste af vores kunder bruger noget fra Elastic, som hedder Filebeat, der er en logshipper. Til nogle orkestreringsplatforme som Kubernetes har vi lavet adaptere, så vi kan suge alle logs ned til Humio, forklarer Kresten Krab.

Når logfilerne er hentet ind i Humio, kan devops anvende et forespørgselssprog, som minder om Unix pipeline med mulighed for at anvende regulære udtryk og filtre. Man kan selvfølgelig også komme langt med en Unix-konsol samt kommandoer som tail -f, grep og så videre, men ved at gøre adgangen til logfilerne mere enkel begynder devops at bruge logfiler på en meget mere interaktiv måde i deres daglige arbejde.

– Der opstår et interessant feedback-loop. Via deres søgninger får de idéer til at gøre log-informationen bedre, så de får mere indsigt i systemerne, og måske laver de en visuel oversigt i form af grafer eller lignende, siger Kresten Krab.

Devops forfiner deres forespørgsler og definerer løbende forskellige målepunkter, som indikerer sundhedstilstanden for systemet. Resultaterne af de forespørgsler indgår som metrikker på et dashboard, hvor systemets overordnede sundhedstilstand kan aflæses.

Lyt til skyen

Kresten Krab og holdet bag Humio ønsker at give devops en konkret fornemmelse af, hvordan et system har det. For Kresten Krab er det minder fra hans egen tidlige udviklererfaring på datalogi-studiet, hvor et system kørte på en desktop-pc, og han havde systemet tæt på sig i fysisk form. En smule ændring i systemets lyde, som udgjordes af harddiskens læsning og skrivning, blæserens summen samt interferens mellem netværkskort og lydkort kunne indikere, at noget gik galt.

– Nu er det fuldstændigt uoverskueligt, hvad dit system laver, men hvis du sætter alle logs sammen på en tidslinje, så kan du få en idé om, hvad der er normalt, og hvad der foregår, siger han.

Det får Prosabladets skribent til at spørge – halvt i spøg – om der ikke skal laves et lyd-interface, som kan simulere systemets helbredstilstand? Kresten Krab har gjort sig de samme tanker, men ved ikke, om det er realiserbart.

– Jo, men det er svært at finde noget, der ikke forstyrrer for meget. Men jeg vil gerne have noget, der eksempelvis lyder som en skibsmotor for at give samme fornemmelse, som når man sidder på en færge til Oslo. Det er først, når maskinen stopper, at man lægger mærke til det, siger han.

AI, ML og anden hype

Vi kravler ned fra bønnestagen, men bliver stadig lidt i fantasiens verden. Med de massive mængder logdata, som Humio indsamler, er det vel oplagt at udbygge Humio med noget, som er en del mere hypet end logfiler. Hvad med noget AI i form af machine learning, som lærer om systemers helbred på baggrund af logdata?

– Hæ, ja, vi bliver nok nødt til at have noget hype om ML og AI, det gør alle andre. Men jo, vi arbejder med data analytics sammen med nogle specialestuderende, der er i gang med anomali-detektion, siger Kresten Krab.

Selvom lyd-interface og AI-logfile-aware-overlords altså endnu ikke er del af Humio, så er der god grund til at se nærmere på det og dine logfiler. Jo bedre du lærer dem at kende, jo bedre kender du dit system.

Find IP-adresserne bag de uautoriserede loginforsøg

Humio kan anvendes til at holde øje med uautoriserede adgangsforsøg. Forespørgslen finder de IP-adresser, der oftest forgæves har forsøgt at logge på via SSH.

botMessage_toctoc_comments_9210