Köra notebook-filer på Microsoft Sentinel datasjö

Jupyter Notebooks ger en interaktiv miljö för att utforska, analysera och visualisera data i Microsoft Sentinel datasjö och federerade tabeller. Med notebook-filer kan du skriva och köra kod, dokumentera arbetsflödet och visa resultat – allt på ett och samma ställe. Detta gör det enkelt att utföra datautforskning, skapa avancerade analyslösningar och dela insikter med andra. Genom att använda Python och Apache Spark i Visual Studio Code hjälper notebook-filer dig att omvandla rådata till användbar intelligens.

Den här artikeln visar hur du utforskar och interagerar med Data Lake-data med Hjälp av Jupyter Notebooks i Visual Studio Code.

Förhandskrav

Registrera till Microsoft Sentinel datasjö

Om du vill använda notebook-filer i Microsoft Sentinel datasjö måste du först registrera dig för datasjön. Om du inte har registrerat dig för den Sentinel datasjön kan du läsa Onboarding to Microsoft Sentinel data lake (Registrering till Microsoft Sentinel datasjö). Om du nyligen har registrerat till datasjön kan det ta lite tid innan tillräckligt med data matas in innan du kan skapa meningsfulla analyser med hjälp av notebook-filer.

Behörigheter

Microsoft Entra ID roller ger bred åtkomst till alla arbetsytor i datasjön. Du kan också bevilja åtkomst till enskilda arbetsytor med hjälp av Azure RBAC-roller. Användare med Azure RBAC-behörighet att Microsoft Sentinel arbetsytor kan köra notebook-filer mot dessa arbetsytor på datasjönivån. Mer information finns i Roller och behörigheter i Microsoft Sentinel.

Om du vill kan Microsoft Sentinel omfångs- eller radnivå-RBAC konfigureras för att ytterligare begränsa dataåtkomsten på en arbetsyta. När detta är aktiverat begränsar radnivåomfånget de data som returneras av frågor baserat på användarens tilldelade omfång. Om omfånget på radnivå inte har konfigurerats gäller den befintliga behörighetsmodellen på arbetsytenivå oförändrad. Mer information finns i Konfigurera Microsoft Sentinel omfång (RBAC på radnivå) (förhandsversion).

Om du vill skapa nya anpassade tabeller på analysnivån måste den datasjöhanterade identiteten tilldelas rollen Log Analytics-deltagare på Log Analytics-arbetsytan.

Följ stegen nedan för att tilldela rollen:

  1. I Azure Portal navigerar du till den Log Analytics-arbetsyta som du vill tilldela rollen till.
  2. Välj Åtkomstkontroll (IAM) i det vänstra navigeringsfönstret.
  3. Välj Lägg till rolltilldelning.
  4. I tabellen Roll väljer du Log Analytics-deltagare och sedan Nästa
  5. Välj Hanterad identitet och välj sedan Välj medlemmar.
  6. Din hanterade datasjöidentitet är en systemtilldelad hanterad identitet med namnet msg-resources-<guid>. Välj den hanterade identiteten och välj sedan Välj.
  7. Välj Granska och tilldela.

Mer information om hur du tilldelar roller till hanterade identiteter finns i Tilldela Azure roller med hjälp av Azure Portal.

Installera Visual Studio Code och Microsoft Sentinel-tillägget

Om du inte redan har Visual Studio Code laddar du ned och installerar Visual Studio Code för Mac, Linux eller Windows.

Microsoft Sentinel-tillägget för Visual Studio Code (VS Code) installeras från marknadsplatsen för tillägg. Följ dessa steg för att installera tillägget:

  1. Välj Marknadsplats för tillägg i det vänstra verktygsfältet.
  2. Sök efter Sentinel.
  3. Välj tillägget Microsoft Sentinel och välj Installera.
  4. När tillägget har installerats visas Microsoft Sentinel ikonen sentinel-ikonen i det vänstra verktygsfältet.

En skärmbild som visar marknadsplatsen för tillägget.

Installera GitHub Copilot-tillägget för Visual Studio Code för att aktivera kodkomplettering och förslag i notebook-filer.

  1. Sök efter GitHub Copilot på Extensions Marketplace och installera den.
  2. Efter installationen loggar du in på GitHub Copilot med ditt GitHub-konto.

Utforska tabeller på datasjönivå

När du har installerat Microsoft Sentinel-tillägget kan du börja utforska tabeller på datasjönivå och skapa Jupyter Notebooks för att analysera data.

Logga in på tillägget Microsoft Sentinel

  1. Välj ikonen Microsoft Sentinel sentinel-ikonen i det vänstra verktygsfältet.

  2. En dialogruta visas med följande text Tillägget "Microsoft Sentinel" vill logga in med Microsoft. Välj Tillåt.

    En skärmbild som visar inloggningsdialogrutan.

  3. Välj ditt kontonamn för att slutföra inloggningen.

    En skärmbild som visar listan över val av konto överst på sidan.

    Om du har flera gästkonton som är associerade med din inloggning kan du smidigt växla mellan konton. Om du vill växla mellan konton väljer du kontonamnet längst ned till vänster i Visual Studio Code-fönstret. Endast ett konto kan väljas i taget.

    En skärmbild som visar hur du växlar konton i Visual Studio Code.

    Viktigt

    Om du växlar mellan konton kopplas alla aktiva pyspark-sessioner bort.

Visa datasjötabeller och jobb

När du loggar in visar Sentinel-tillägget en lista över Lake-tabeller och Jobb i det vänstra fönstret. Tabellerna grupperas efter databas och kategori. Federerade tabeller visas under kategorin Federerade tabeller under Systemtabeller. Välj en tabell för att se kolumndefinitionerna.

Information om jobb finns i Jobb och schemaläggning. Mer information om federerade tabeller finns i Använda federerade tabeller i Microsoft Sentinel datasjö.

En skärmbild som visar listan över tabeller, jobb och den valda tabellens metadata.

Skapa en ny notebook-fil

  1. Om du vill skapa en ny notebook-fil använder du någon av följande metoder.

  2. Ange > i sökrutan eller tryck på Ctrl+Skift+P och ange sedan Skapa ny Jupyter Notebook. En skärmbild som visar hur du skapar en ny anteckningsbok från sökfältet.

  3. Välj Arkiv > Ny fil och välj sedan Jupyter Notebook i listrutan.
    En skärmbild som visar hur du skapar en ny anteckningsbok från filmenyn.

  4. I den nya notebook-filen klistrar du in följande kod i den första cellen.

    from sentinel_lake.providers import MicrosoftSentinelProvider
    data_provider = MicrosoftSentinelProvider(spark)
    
    table_name = "EntraGroups"  
    df = data_provider.read_table(table_name)  
    df_filtered = df.select("displayName", "groupTypes", "mail", "mailNickname", "description", "tenantId").show(100,   truncate=False)  
    
    # Transform the dataframe
    df_transformed = df.filter(df.mail.isNotNull()).select("displayName", "groupTypes", "mail", "mailNickname", "description", "tenantId")
    
    write_options = {
         'mode': 'overwrite'
     }
    # Save to a new table
    data_provider.save_as_table(df_transformed, "EntraGroups_Processed_SPRK", write_options=write_options)
    

Redigeraren tillhandahåller intellisense-kodkomplettering för både MicrosoftSentinelProvider klassen och tabellnamnen i datasjön.

  1. Välj triangeln Kör för att köra koden i notebook-filen. Resultaten visas i utdatafönstret under kodcellen.
    En skärmbild som visar hur du kör en notebook-cell.

  2. Välj Microsoft Sentinel i listan för en lista över körningspooler. En skärmbild som visar körningsväljaren.

  3. Välj Medel för att köra notebook-filen i den medelstora körningspoolen. Mer information om de olika körningarna finns i Välja lämplig Microsoft Sentinel körning. En skärmbild som visar väljaren för körningspoolens storlek.

Obs!

Om du väljer kerneln startas Spark-sessionen och koden körs i notebook-filen. När du har valt poolen kan det ta 3–5 minuter för sessionen att starta. Efterföljande körningar snabbare eftersom sessionen redan är aktiv.

När sessionen har startats körs koden i notebook-filen och resultatet visas i utdatafönstret under kodcellen, till exempel: En skärmbild som visar resultatet från att köra en notebook-cell.

Exempel på notebook-filer som visar hur du interagerar med Microsoft Sentinel datasjö finns i Exempel på notebook-filer för Microsoft Sentinel datasjö.

Statusfältet

Statusfältet längst ned i notebook-filen innehåller information om anteckningsbokens aktuella tillstånd och Spark-sessionen. Statusfältet innehåller följande information:

  • Användningsprocent för virtuell kärna för den valda Spark-poolen. Hovra över procentandelen för att se antalet virtuella kärnor som används och det totala antalet virtuella kärnor som är tillgängliga i poolen. Procentandelarna representerar den aktuella användningen för interaktiva arbetsbelastningar och jobbarbetsbelastningar för det inloggade kontot.

  • Anslutningsstatus för Spark-sessionen, till exempel Connecting, Connectedeller Not Connected.

En skärmbild som visar statusfältet längst ned i anteckningsboken.

Ange tidsgränser för sessioner

Du kan ange timeout- och timeout-varningar för interaktiva anteckningsböcker. De här inställningarna sparas i tilläggsinställningarna så att de bevaras mellan sessioner.

Om du vill ändra tidsgränsen väljer du anslutningsstatusen i statusfältet längst ned i anteckningsboken. Välj bland följande alternativ:

  • Ange tidsgräns för sessionen: Anger tiden i minuter innan sessionen överskrider tidsgränsen. Standardvärdet är 30 minuter.

  • Återställa tidsgränsen för sessionen: Återställer tidsgränsen för sessionen till standardvärdet 30 minuter.

  • Ange tidsgräns för sessionens varningsperiod: Anger tiden i minuter före tidsgränsen som en varning visas om att sessionen håller på att överskrida tidsgränsen. Standardvärdet är 5 minuter.

  • Varningsperiod för tidsgräns för återställningssession: Återställer tidsgränsvarningen för sessionen till standardvärdet 5 minuter.

    En skärmbild som visar tidsgränsinställningen för sessionen.

Använda GitHub Copilot i notebook-filer

Använd GitHub Copilot för att skriva kod i notebook-filer. GitHub Copilot innehåller kodförslag och automatisk komplettering baserat på kodens kontext. Om du vill använda GitHub Copilot kontrollerar du att du har GitHub Copilot-tillägget installerat i Visual Studio Code.

Kopiera kod från exempelanteckningsböcker för Microsoft Sentinel datasjö och spara den i notebook-mappen för att ange kontext för GitHub Copilot. GitHub Copilot kan sedan föreslå kodslutningar baserat på kontexten för din notebook-fil.

I följande exempel visas GitHub Copilot som genererar en kodgranskning.

En skärmbild som visar GitHub Copilot som genererar en kodgranskning.

Microsoft Sentinel providerklass

Om du vill ansluta till Microsoft Sentinel datasjö använder du SentinelLakeProvider klassen . Den här klassen är en del av modulen access_module.data_loader och innehåller metoder för att interagera med datasjön. Om du vill använda den här klassen importerar du den och skapar en instans av klassen med hjälp av en spark session.

from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)

Mer information om tillgängliga metoder finns i Microsoft Sentinel-providerklassreferens.

Välj lämplig körningspool

Det finns tre körningspooler tillgängliga för att köra dina Jupyter-notebook-filer i Microsoft Sentinel-tillägget. Varje pool är utformad för olika arbetsbelastningar och prestandakrav. Valet av körningspool påverkar prestanda, kostnad och körningstid för dina Spark-jobb.

Körningspool Rekommenderade användningsfall Egenskaper
MINSTA Utveckling, testning och enkel undersökande analys.
Små arbetsbelastningar med enkla transformeringar.
Prioriterad kostnadseffektivitet.
Lämplig för små arbetsbelastningar
Enkla transformeringar.
Lägre kostnad, längre körningstid.
Medel ETL-jobb med kopplingar, sammansättningar och ML-modellträning.
Moderera arbetsbelastningar med komplexa omvandlingar.
Bättre prestanda jämfört med Liten.
Hanterar parallellitet och måttlig minnesintensiva åtgärder.
STÖRSTA Djupinlärning och ML-arbetsbelastningar.
Omfattande datablandning, stora kopplingar eller bearbetning i realtid.
Kritisk körningstid.
Hög minnes- och beräkningskraft.
Minimala fördröjningar.
Bäst för stora, komplexa eller tidskänsliga arbetsbelastningar.

Obs!

När du först använder kernelalternativ kan det ta cirka 30 sekunder att läsa in.
När du har valt en körningspool kan det ta 3–5 minuter innan sessionen startas.

Visa meddelanden, loggar och fel

Meddelandeloggar och felmeddelanden visas i tre områden i Visual Studio Code.

  1. Fönstret Utdata .

    1. I fönstret Utdata väljer du Microsoft Sentinel i listrutan.
    2. Välj Felsök för att inkludera detaljerade loggposter.

    En skärmbild som visar utdatafönstret.

  2. Infogade meddelanden i notebook-filen ger feedback och information om körningen av kodceller. Dessa meddelanden innehåller uppdateringar av körningsstatus, förloppsindikatorer och felmeddelanden relaterade till koden i föregående cell

  3. Ett popup-meddelande i det nedre högra hörnet av Visual Studio Code, som även kallas popup-meddelande, ger aviseringar och uppdateringar i realtid om status för åtgärder i notebook-filen och Spark-sessionen. Dessa meddelanden omfattar meddelanden, varningar och felaviseringar, till exempel lyckad anslutning till en Spark-session och timeout-varningar.

    En skärmbild som visar ett popup-meddelande och ett felmeddelande på rad.

Jobb och schemaläggning

Du kan schemalägga jobb som ska köras vid specifika tidpunkter eller intervall med hjälp av Microsoft Sentinel-tillägget för Visual Studio Code. Med jobb kan du automatisera databearbetningsuppgifter för att sammanfatta, transformera eller analysera data i Microsoft Sentinel datasjö. Jobb används också för att bearbeta data och skriva resultat till anpassade tabeller på datasjönivån eller analysnivån. Mer information om hur du skapar och hanterar jobb finns i Skapa och hantera Jupyter Notebook-jobb.

Tjänstparametrar och gränser för VS Code Notebooks

I följande avsnitt visas tjänstparametrar och gränser för Microsoft Sentinel datasjö när du använder VS Code Notebooks.

Kategori Parameter/gräns
Anpassad tabell på analysnivån Anpassade tabeller på analysnivå kan inte tas bort från en notebook-fil. Använd Log Analytics för att ta bort dessa tabeller. Mer information finns i Lägga till eller ta bort tabeller och kolumner i Azure Övervaka loggar
Tidsgräns för gatewaywebbsocket 2 timmar
Tidsgräns för interaktiv fråga 2 timmar
Tidsgräns för interaktiv sessionsinaktivitet 20 minuter
Språk Python
Tidsgräns för Graph-fråga 7,5 minuter
Tidsgräns för notebook-jobb 8 timmar
Maximalt antal samtidiga notebook-jobb 3, efterföljande jobb placeras i kö
Maximalt antal samtidiga användare vid interaktiva frågor 8–10 i stor pool
Starttid för session Spark-beräkningssessionen tar cirka 5–6 minuter att starta. Du kan visa status för sessionen längst ned i VS Code Notebook.
Bibliotek som stöds Endast Azure Synapse bibliotek 3.4 och Microsoft Sentinel-providerbiblioteket för abstrakta funktioner stöds för att köra frågor mot datasjön. Pip-installationer eller anpassade bibliotek stöds inte.
VS Code UX-gräns för att visa poster 100 000 rader

Felsökning

Vanliga fel och lösningar när du arbetar med notebook-filer finns i Felsöka notebook-filer på Microsoft Sentinel datasjö.