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!
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.
- 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.
- 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.
- 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.
- 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.
- 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 = "<blob-storage-URI>/<container>/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.

Written by
Markus Lundberg
Read more about Data & Integrations

Azure Integration Services, nyckeln till moderna integrationer
Många företag står med ena benet i äldre system och det andra i moln- och AI-världen. Hur bygger man en sömlös bro mellan dessa två utan att fastna i komplexa integrationsprojekt? I denna artikeln om Azure Integration Services visar vi hur Microsofts integrerade verktygslåda ger dig kraften att automatisera processer, exponera API:er och skapa eventstyrda flöden med robust säkerhet och skalbarhet.
Read more
Azure Events, hur man tar kontroll över sin Azure-miljö.
Vill du ha bättre koll på vad som händer i din Azure-miljö, i realtid? Läs om hur du kan få bättre kontroll på ändringar i din miljö. Vem skapar nya resurser? Finns det något certifikat som snart är expired, etc? Med Azure Events kan du dessutom automatiskt ta actions på när saker händer!
Read more
Nyheterna i C# 14 och .NET 10
I november släpps .NET 10 tillsammans med C# 14. En LTS release som kommer med en del roliga nyheter. I denna artikeln går vi igenom vad som är nytt och bra att veta.
Read more