Hem/Insikter & Inspiration/Logga med Azure Data Explorer
Logga med Azure Data Explorer
/ Data & Integrations /

Logga med Azure Data Explorer

Många företag kämpar med att övervaka och analysera logg-data från olika källor, vilket kan leda till ökad reaktionstid på problem och minskad systemprestanda.

Azure Data Explorer (ADX) erbjuder lösningar för att enkelt konsolidera och analysera stora mängder av data från flertalet källor, vilket möjliggör snabbare upptäckt och hantering av kritiska fel i realtid. Att i kombination med att logga användarbeteende kan man få fram hur användare interagerar med ditt system, samt identifiera problemområden och möjligheter till förbättringar.

Har du flertalet olika applikationer där vissa loggar till fil på disk, andra loggar till databas eller helt enkelt inte sparar ner "exceptions" alls? Då kan det vara all idé att läsa vidare!

I den här artikeln utforskar vi hur företag kan dra nytta av ADX för att förbättra sin logg-hantering med fokus på konsolidering, analyser och notifiering.

Vad är Azure Data Explorer?

Jämfört med traditionella relationsdatabaser som SQL Server är ADX mer inriktad på analys av stora volymer av strukturerad, semistrukturerad och ostrukturerade data snabbt, utan att kräva omfattande schema-definitioner. Till skillnad från NoSQL-databaser erbjuder ADX kraftfullare analyser och kan hantera enorma dataströmmar i realtid.

Azure har en dedikerad app för ADX. Här hanterar man sina databas-kluster, injicerar data och skapar analyser. Genom att logga in med sitt Azure-konto har man åtkomst direkt till alla funktioner och det går snabbt att komma igång.

Steg 1: Injicering av data

För att kunna analysera sin logg-data bör loggarna först injiceras i tjänsten. Det går även att koppla externa datakällor direkt till ADX för att analysera data, men då går man miste om en del av ADX kraftfullhet.

Det finns egentligen inga begränsningar för vilka källor man kan injicera data ifrån.

  1. Event Hubs: Ett vanligt sätt att integrera realtidsloggar med ADX är genom Azure Event Hubs. Detta är effektivt för system som genererar stora mängder loggdata i realtid. Konfigurera en Event Hub för att samla loggar och använd sedan en Event Hub-anslutning i ADX för att kontinuerligt strömma loggdata.
  2. Azure Data Factory: Här kan man sätta upp pipelines som läser direkt från t.ex. logg-tabeller i en databas och skickar vidare till ADX. Här finns det även stöd för CDC (Change Data Capture) för att enkelt lyssna på databasförändringar.
  3. SDK: Det finns SDK's för en mängd programmeringsspråk för att kunna skicka exceptions och annan log-data direkt när det inträffar.
  4. Azure Functions: Kan med fördel användas om man vill transformera sin data genom att lägga till time stamps och metadata innan man injicerar den.
  5. Blob Storage: Har du loggfiler på disk så kan du injicera dessa genom att ladda upp dem på ett Blob Storage som i sin tur är uppsatt som en data connection i ADX.

Steg 2: Analysera data

När loggarna har injicerats i ADX, kan man utföra omfattande analyser med hjälp av Kusto Query Language (KQL). KQL är ett kraftfullt verktyg för att bearbeta och analysera logg-data på olika sätt.

I ADX-gränsnittet finns stöd både att skriva queries och gör dashboards med grafer och diagram.

Vill man lära sig KQL på ett roligt sätt så kan jag rekommendera Detective Kusto där man löser pussel genom KQL-kod.

Det finns även bra hjälpmedel och stöd för att konvertera SQL till KQL om man är en gammal SQL-räv som jag.

T.ex kan man direkt i query editorn exekvera SQL mot sina tabeller, alternativt konvertera SQL till KQL.

Ett exempel på en KQL-fråga för att hitta fel-loggar med hög prioritet:

Logs | where EventType == "Error" and Severity >= 4 | summarize Count() by bin(Timestamp, 1h), Source | order by Count desc


Steg 3: Notifieringar vid allvarliga fel

Att snabbt kunna reagera på allvarliga fel kan vara avgörande i vissa fall.

ADX tillåter t.ex. användare att skapa notifieringar baserade på resultaten av så kallade Continuous Export Queries. Dessa fungerar som ett jobb som körs i specificerade tidsintervall och utför en åtgärd.

En sådan åtgärd kan vara att exportera data till ett Blob Storage och genom att sätta upp en enkel Logic App som lyssnar på fil-förändringar, kan man i sin tur notifiera användare via email om ett visst fel inträffar.

Nedan är ett exempel på en Continuous Export som var 5:e minut skriver till ett Blob Storage ifall det finns några loggar med Severity >= 4.

.create-or-alter continuous-export ExportLogsToBlob to table Logs <| where Severity >= 4 with ( uri = "//Logs_{start}_{end}.csv", format = "csv", intervalBetweenRuns = 5m )

Sammanfattning

Azure Data Explorer är en kraftfull lösning för att få bättre koll på sin logg-data från olika källor. Förutom att snabbt kunna bearbeta och analysera stora datamängder, gör ADX det enklare att inte bara hålla koll på sin data, utan också att agera proaktivt för att förbättra prestanda och tillförlitlighet.

Author-image

Skrivet av:

Markus Lundberg
markus@wizardworks.se

Du kanske också gillar

Håll dig uppdaterad om våra spännande projekt och bli en del av vår resa mot en mer digital och magisk värld!

Wizardworks AB, 559444-4571, Redaregatan 48, 252 36 Helsingborg, Skåne