Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Jupyter-notesbøger giver et interaktivt miljø til udforskning, analyse og visualisering af data i Microsoft Sentinel datasø- og organisationstabeller. Med notesbøger kan du skrive og udføre kode, dokumentere din arbejdsproces og få vist resultaterne – alt sammen på ét sted. Det gør det nemt at udforske data, bygge avancerede analyseløsninger og dele indsigt med andre. Ved at udnytte Python og Apache Spark i Visual Studio Code hjælper notesbøger dig med at transformere rå sikkerhedsdata til handlingsbaseret intelligens.
I denne artikel kan du se, hvordan du udforsker og interagerer med datasødata ved hjælp af Jupyter-notesbøger i Visual Studio Code.
Forudsætninger
Onboard til Microsoft Sentinel datasø
Hvis du vil bruge notesbøger i Microsoft Sentinel datasø, skal du først onboarde til datasøen. Hvis du ikke har onboardet til Sentinel datasø, kan du se Onboarding to Microsoft Sentinel data lake. Hvis du for nylig er onboardet til datasøen, kan det tage et stykke tid, indtil der indtages tilstrækkelig mængde data, før du kan oprette meningsfulde analyser ved hjælp af notesbøger.
Tilladelser
Microsoft Entra ID roller giver bred adgang på tværs af alle arbejdsområder i datasøen. Du kan også give adgang til individuelle arbejdsområder ved hjælp af Azure RBAC-roller. Brugere med Azure RBAC-tilladelser til Microsoft Sentinel arbejdsområder kan køre notesbøger mod disse arbejdsområder på data lake-niveauet. Du kan få flere oplysninger under Roller og tilladelser i Microsoft Sentinel.
Du kan også konfigurere Microsoft Sentinel omfang eller RBAC på rækkeniveau for yderligere at begrænse adgangen til data i et arbejdsområde. Når indstillingen er aktiveret, begrænser området på rækkeniveau de data, der returneres af forespørgsler, på baggrund af brugerens tildelte område. Hvis området på rækkeniveau ikke er konfigureret, anvendes den eksisterende tilladelsesmodel på arbejdsområdeniveau uændret. Du kan få flere oplysninger under Konfigurer Microsoft Sentinel område (RBAC på rækkeniveau) (prøveversion).
Hvis du vil oprette nye brugerdefinerede tabeller på analyseniveauet, skal den administrerede identitet for datasøen tildeles rollen Log Analytics Contributor i Log Analytics-arbejdsområdet.
Hvis du vil tildele rollen, skal du følge nedenstående trin:
- I Azure Portal skal du navigere til det Log Analytics-arbejdsområde, du vil tildele rollen til.
- Vælg Adgangskontrol (IAM) i venstre navigationsrude.
- Vælg Tilføj rolletildeling.
- I rolletabellen skal du vælge Log Analytics Contributor og derefter vælge Næste
- Vælg Administreret identitet, og vælg derefter Vælg medlemmer.
- Den administrerede identitet for datasøen er en systemtildeling af en administreret identitet med navnet
msg-resources-<guid>. Vælg den administrerede identitet, og vælg derefter Vælg. - Vælg Gennemse og tildel.
Du kan få flere oplysninger om tildeling af roller til administrerede identiteter under Tildel Azure roller ved hjælp af Azure Portal.
Installér Visual Studio Code og udvidelsen Microsoft Sentinel
Hvis du ikke allerede har Visual Studio Code, kan du downloade og installere Visual Studio Code til Mac, Linux eller Windows.
Den Microsoft Sentinel udvidelse til Visual Studio Code (VS Code) installeres fra markedspladsen for udvidelser. Hvis du vil installere udvidelsen, skal du følge disse trin:
- Vælg Markedsplads for udvidelser på værktøjslinjen til venstre.
- Søg efter Sentinel.
- Vælg filtypenavnet Microsoft Sentinel, og vælg Installér.
- Når udvidelsen er installeret, vises ikonet Microsoft Sentinel skjold på værktøjslinjen til venstre.
Installér GitHub Copilot-udvidelsen til Visual Studio Code for at aktivere kodefuldførelse og forslag i notesbøger.
- Søg efter GitHub Copilot på Marketplace for udvidelser, og installér det.
- Efter installationen skal du logge på GitHub Copilot ved hjælp af din GitHub-konto.
Udforsk data lake tier-tabeller
Når du har installeret udvidelsen Microsoft Sentinel, kan du begynde at udforske tabeller på datasøniveau og oprette Jupyter-notesbøger for at analysere dataene.
Log på udvidelsen Microsoft Sentinel
Vælg ikonet Microsoft Sentinel skjold på venstre værktøjslinje.
Der vises en dialogboks med følgende tekst Filtypenavnet "Microsoft Sentinel" vil logge på med Microsoft. Vælg Tillad.
Vælg dit kontonavn for at fuldføre logon.
Hvis du har flere gæstekonti tilknyttet dit logon, kan du uden problemer skifte mellem konti. Hvis du vil skifte mellem konti, skal du vælge kontonavnet nederst til venstre i vinduet Visual Studio Code. Der kan kun vælges én konto ad gangen.
Vigtigt!
Hvis du skifter mellem konti, afbrydes alle aktive pysparksessioner.
Få vist tabeller og job i datasøer
Når du logger på, viser udvidelsen Sentinel en liste over laketabeller og job i venstre rude. Tabellerne er grupperet efter databasen og kategorien. Tabeller i organisationsnetværket vises under kategorien Sammenkædede tabeller under Systemtabeller. Vælg en tabel for at se kolonnedefinitionerne.
Du kan få oplysninger om job under Job og planlægning. Du kan få flere oplysninger om tabeller i organisationsnetværket under Brug af organisationsnetværkstabeller i den Microsoft Sentinel datasø.
Opret en ny notesbog
Hvis du vil oprette en ny notesbog, skal du bruge en af følgende metoder.
Angiv > i søgefeltet, eller tryk på Ctrl+Skift+P , og angiv derefter Opret ny Jupyter-notesbog.
Vælg Fil > ny fil, og vælg derefter Jupyter-notesbog på rullelisten.
I den nye notesbog skal du indsætte følgende kode i den første celle.
from sentinel_lake.providers import MicrosoftSentinelProvider data_provider = MicrosoftSentinelProvider(spark) table_name = "EntraGroups" df = data_provider.read_table(table_name) df.select("displayName", "groupTypes", "mail", "mailNickname", "description", "tenantId").show(100, truncate=False)
Editoren leverer fuldførelse af intellisense-kode for både MicrosoftSentinelProvider klasse- og tabelnavnene i datasøen.
Vælg trekanten Kør for at udføre koden i notesbogen. Resultaterne vises i outputruden under kodecellen.
Vælg Microsoft Sentinel på listen for at få vist en liste over kørselspuljer.
Vælg Mellem for at køre notesbogen i den mellemstore kørselspulje. Du kan finde flere oplysninger om de forskellige kørsler under Valg af den relevante Microsoft Sentinel kørsel.
Bemærk!
Hvis du vælger kernen, startes Spark-sessionen, og koden køres i notesbogen. Når du har valgt puljen, kan det tage 3-5 minutter, før sessionen starter. Efterfølgende kører hurtigere, da sessionen allerede er aktiv.
Når sessionen startes, køres koden i notesbogen, og resultaterne vises i outputruden under kodecellen, f.eks.:
Hvis du vil se eksempler på notesbøger, der viser, hvordan du interagerer med Microsoft Sentinel datasø, skal du se Eksempelnotesbøger til Microsoft Sentinel datasø.
Statuslinjen
Statuslinjen nederst i notesbogen indeholder oplysninger om notesbogens aktuelle tilstand og Spark-sessionen. Statuslinjen indeholder følgende oplysninger:
Procentdelen af vCore-udnyttelse for den valgte Spark-pulje. Hold markøren over procentdelen for at se antallet af anvendte vCores og det samlede antal vCores, der er tilgængelige i gruppen. Procenterne repræsenterer det aktuelle forbrug på tværs af interaktive arbejdsbelastninger og jobarbejdsbelastninger for den konto, der er logget på.
Forbindelsesstatus for Spark-sessionen, f.eks.
Connecting,ConnectedellerNot Connected.
Angiv timeout for session
Du kan angive timeout for sessionen og timeoutadvarsler for interaktive notesbøger. Hvis du vil ændre timeout, skal du vælge forbindelsesstatussen på statuslinjen nederst i notesbogen. Vælg mellem følgende indstillinger:
Angiv timeoutperiode for session: Angiver tiden i minutter, før sessionen udløber. Standarden er 30 minutter.
Timeoutperiode for nulstilling af session: Nulstiller timeout for sessionen til standardværdien på 30 minutter.
Angiv timeoutperiode for session: Angiver tiden i minutter før timeout for, at der vises en advarsel om, at sessionen er ved at få timeout. Standarden er 5 minutter.
Advarselsperiode for timeout for nulstilling af session: Nulstiller timeoutadvarslen for sessionen til standardværdien på 5 minutter.
Brug GitHub Copilot i notesbøger
Brug GitHub Copilot til at hjælpe dig med at skrive kode i notesbøger. GitHub Copilot indeholder kodeforslag og automatisk fuldførelse baseret på kodens kontekst. Hvis du vil bruge GitHub Copilot, skal du sørge for, at GitHub Copilot-udvidelsen er installeret i Visual Studio Code.
Kopiér kode fra eksempelnotesbøgerne til Microsoft Sentinel datasø, og gem den i mappen med notesbøger for at angive kontekst for GitHub Copilot. GitHub Copilot kan derefter foreslå kodefuldførelser baseret på konteksten af din notesbog.
I følgende eksempel vises GitHub Copilot, der genererer en kodegennemgang.
klasse Microsoft Sentinel udbyder
Hvis du vil oprette forbindelse til den Microsoft Sentinel datasø, skal du bruge SentinelLakeProvider klassen .
Denne klasse er en del af access_module.data_loader modulet og indeholder metoder til at interagere med datasøen. Hvis du vil bruge denne klasse, skal du importere den og oprette en forekomst af klassen ved hjælp af en spark session.
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
Du kan få flere oplysninger om de tilgængelige metoder under Microsoft Sentinel Udbyderklassereference.
Vælg den relevante kørselspulje
Der er tre tilgængelige kørselspuljer til at køre dine Jupyter-notesbøger i udvidelsen Microsoft Sentinel. Hver pulje er designet til forskellige arbejdsbelastninger og ydeevnekrav. Valget af kørselspulje påvirker ydeevnen, omkostningerne og udførelsestiden for dine Spark-job.
| Kørselspulje | Anbefalede use cases | Karakteristik |
|---|---|---|
| Lille | Udvikling, test og let udforskningsanalyse. Små arbejdsbelastninger med enkle transformationer. Omkostningseffektivitet prioriteres. |
Egnet til små arbejdsbelastninger Enkle transformationer. Lavere omkostninger, længere udførelsestid. |
| Middel | ETL-job med joinforbindelser, sammenlægninger og oplæring af ML-modeller. Moderate arbejdsbelastninger med komplekse transformationer. |
Forbedret ydeevne i forhold til Lille. Håndterer parallelitet og moderat hukommelseskrævende handlinger. |
| Store | Arbejdsbelastninger i forbindelse med dyb læring og MACHINE. Omfattende datablanding, store joinforbindelser eller behandling i realtid. Kritisk udførelsestid. |
Høj hukommelse og beregningskraft. Minimale forsinkelser. Bedst til store, komplekse eller tidsfølsomme arbejdsbelastninger. |
Bemærk!
Når kerneindstillingerne først åbnes, kan det tage ca. 30 sekunder at indlæse dem.
Når du har valgt en kørselspulje, kan det tage 3-5 minutter, før sessionen starter.
Få vist meddelelser, logge og fejl
Meddelelseslogge og fejlmeddelelser vises i tre områder i Visual Studio Code.
Ruden Output .
- Vælg Microsoft Sentinel på rullelisten i ruden Output.
- Vælg Fejlfinding for at inkludere detaljerede logposter.
Indbyggede meddelelser i notesbogen giver feedback og oplysninger om udførelsen af kodeceller. Disse meddelelser omfatter opdateringer af udførelsesstatus, statusindikatorer og fejlmeddelelser, der er relateret til koden i den foregående celle
En pop op-meddelelse i nederste højre hjørne af Visual Studio Code, der også kaldes en toastmeddelelse, giver beskeder i realtid og opdateringer om status for handlinger i notesbogen og spark-sessionen. Disse meddelelser omfatter meddelelser, advarsler og fejlbeskeder, f.eks. vellykket forbindelse til en Spark-session og timeoutadvarsler.
Job og planlægning
Du kan planlægge job, der skal køre på bestemte tidspunkter eller intervaller, ved hjælp af udvidelsen Microsoft Sentinel for Visual Studio Code. Job giver dig mulighed for at automatisere databehandlingsopgaver for at opsummere, transformere eller analysere data i den Microsoft Sentinel datasø. Job bruges også til at behandle data og skrive resultater til brugerdefinerede tabeller på data lake-niveauet eller analyseniveauet. Du kan få flere oplysninger om oprettelse og administration af job under Opret og administrer Jupyter-notesbogjob.
Tjenesteparametre og -grænser for VS Code-notesbøger
I følgende afsnit vises tjenesteparametrene og grænserne for Microsoft Sentinel datasø, når du bruger VS Code Notebooks.
| Kategori | Parameter/grænse |
|---|---|
| Brugerdefineret tabel på analyseniveau | Brugerdefinerede tabeller på analyseniveau kan ikke slettes fra en notesbog. Brug Log Analytics til at slette disse tabeller. Du kan finde flere oplysninger under Tilføj eller slet tabeller og kolonner i Azure Overvåg logge |
| Timeout for gatewaywebsokkel | 2 timer |
| Timeout for interaktiv forespørgsel | 2 timer |
| Timeout for interaktiv session inaktivitet | 20 minutter |
| Sprog | Python |
| Timeout for notesbogjob | 8 timer |
| Maks. antal samtidige notesbogjob | 3, efterfølgende job sættes i kø |
| Maks. antal samtidige brugere ved interaktiv forespørgsel | 8-10 på stor pool |
| Starttid for session | Spark-beregningssessionen tager ca. 5-6 minutter at starte. Du kan få vist status for sessionen nederst i din VS Code-notesbog. |
| Understøttede biblioteker | Det er kun Azure Synapse biblioteker 3.4 og biblioteket Microsoft Sentinel provider for abstrakte funktioner, der understøttes til forespørgsler i datasøen. Pip-installationer eller brugerdefinerede biblioteker understøttes ikke. |
| UX-grænse for VS Code til visning af poster | 100.000 rækker |
Fejlfinding
I følgende tabel vises almindelige fejl, du kan støde på, når du arbejder med notesbøger, deres rodårsager og foreslåede handlinger til at løse dem.
| Fejlkategori | Fejlnavn | Fejlkode | Fejlmeddelelse | Foreslået handling |
|---|---|---|---|---|
| Databasefejl | DatabaseNotFound | 2001 | Databasen {DatabaseName} blev ikke fundet. | Kontrollér, at databasen findes. Hvis databasen er ny, skal du vente på en opdatering af metadata. |
| Databasefejl | FlertydigeDatabaseName | 2002 | Flere databaser (id'er: {DatabaseID1}, {DatabaseID2}, ...) deler navnet {DatabaseName}. Angiv et bestemt database-id. | Angiv et database-id, når flere databaser har det samme navn. |
| Databasefejl | DatabaseIdMismatch | 2003 | Databasen ({DatabaseName}, id'et {DatabaseID}) blev ikke fundet. | Kontrollér både databasenavnet og id'et. Hvis du vil hente database-id'er, skal du angive en liste over alle databaser. |
| Databasefejl | ListDatabasesFailure | 2004 | Databaser kan ikke hentes. Genstart sessionen, og prøv igen. | Genstart sessionen, og prøv handlingen igen efter et par minutter. |
| TableError | TableDoesNotExist | 2100 | Tabellen {TableName} blev ikke fundet i databasen {DatabaseName}. | Kontrollér, at tabellen findes i databasen. Hvis tabellen eller databasen er ny, skal du vente et par minutter og prøve igen. |
| TableError | Klargørincomplete | 2101 | Tabellen {TableName} er ikke klar. Vent et par minutter, før du prøver igen. | Tabellen klargøres. Vent et par minutter, før du prøver igen. |
| TableError | DeltaTableMissing | 2102 | Tabellen {TableName} er tom. Det kan tage op til et par timer, før nye tabeller er klar. | Det kan tage et par timer at synkronisere en analysetabel fuldt ud i datasøen. For tabeller, der kun findes i datasøen, skal du kontrollere, om dataene skal indlæses eller gendannes. |
| TableError | TableDoesNotExistForDelete | 2103 | Tabellen kan ikke slettes. Tabellen {TableName} blev ikke fundet. | Kontrollér, at tabellen findes i databasen. Hvis tabellen eller databasen er ny, skal du vente et par minutter og prøve igen. |
| Godkendelse mislykkedes | MissingSASToken | 2201 | Der er ikke adgang til tabellen. Genstart sessionen, og prøv igen. | Godkendelsen mislykkedes under forsøg på at hente adgangstokenet til tabellen. Genstart sessionen, og prøv igen. |
| Godkendelse mislykkedes | UgyldigTASToken | 2202 | Der er ikke adgang til tabellen. Genstart sessionen, og prøv igen. | Godkendelsen mislykkedes under forsøg på at hente adgangstokenet til tabellen. Genstart sessionen, og prøv igen. |
| Godkendelse mislykkedes | Tokenudløb | 2203 | Der er ikke adgang til tabellen. Genstart sessionen, og prøv igen. | Godkendelsen mislykkedes under forsøg på at hente adgangstokenet til tabellen. Genstart sessionen, og prøv igen. |
| Godkendelse mislykkedes | TableInsufficientPermissions | 2204 | Der kræves adgang til tabellen {TableName} i databasen {DatabaseName}. | Kontakt en administrator for at anmode om adgang til tabellen eller databasen (arbejdsområdet). |
| Godkendelse mislykkedes | InternalTableAccessDenied | 2205 | Adgangen til tabellen {TableName} er begrænset. | Du kan kun få adgang til systemtabeller eller brugerdefinerede tabeller fra en notesbog. |
| Godkendelse mislykkedes | TableAuthFailure | 2206 | Data kan ikke gemmes i tabellen. Genstart sessionen, og prøv igen. | Autorisationen mislykkedes under forsøg på at gemme data i tabellen. Genstart sessionen, og prøv igen. |
| ConfigurationError | HadoopConfigFailure | 2301 | Sessionens konfiguration kan ikke opdateres. Genstart sessionen, og prøv igen. | Dette problem er midlertidigt og kan løses ved at genstarte sessionen og prøve igen. Kontakt support, hvis problemet fortsætter. |
| DataError | JsonParsingFailure | 2302 | Tabelmetadata er blevet beskadiget. Kontakt support for at få hjælp. | Kontakt support for at få hjælp. Angiv dit lejer-id, tabelnavnet og databasenavnet. |
| TableSchemaError | TableSchemaMismatch | 2401 | Kolonnen blev ikke fundet i destinationstabellen. Juster DataFrame-skemaet og destinationstabellen, eller brug overskrivningstilstand. | Opdater DataFrame-skemaet, så det stemmer overens med tabellen i destinationsdatabasen. Du kan også erstatte tabellen helt i overskrivningstilstand. |
| TableSchemaError | MissingRequiredColumns | 2402 | Kolonnen {ColumnName} mangler i datarammen. Kontrollér DataFrame-skemaet, og juster det i forhold til destinationstabellen. | Opdater DataFrame-skemaet, så det stemmer overens med tabellen i destinationsdatabasen. Du kan også erstatte tabellen helt i overskrivningstilstand. |
| TableSchemaError | ColumnTypeChangeNotAllowed | 2403 | Datatypen for kolonnen {ColumnName} kan ikke ændres. | En ændring af datatypen er ikke tilladt for kolonnen. Kontrollér eksisterende kolonner i destinationstabellen, og juster alle datatyper i DataFrame. |
| TableSchemaError | ColumnNullabilityChangeNotAllowed | 2404 | Kolonnen {ColumnName} kan ikke ændres. | Indstillingerne for null-muligheden for kolonnen kan ikke opdateres. Kontrollér destinationstabellen, og juster indstillingerne i forhold til DataFrame. |
| IngestionError | FolderCreationFailure | 2501 | Der kan ikke oprettes lagerplads til tabellen {TableName}. | Dette problem er midlertidigt og kan løses ved at genstarte sessionen og prøve igen. Kontakt support, hvis problemet fortsætter. |
| IngestionError | SubJobRequestFailure | 2502 | Der kan ikke oprettes et indtagelsesjob for tabellen {TableName}. | Dette problem er midlertidigt og kan løses ved at genstarte sessionen og prøve igen. Kontakt support, hvis problemet fortsætter. |
| IngestionError | SubJobCreationFailure | 2503 | Der kan ikke oprettes et indtagelsesjob for tabellen {TableName}. | Dette problem er midlertidigt og kan løses ved at genstarte sessionen og prøve igen. Kontakt support, hvis problemet fortsætter. |
| InputFejl | InvalidWriteMode | 2601 | Skrivetilstanden er ugyldig. Brug tilføj eller overskriv. | Angiv en gyldig skrivetilstand (tilføj eller overskriv), før du gemmer DataFrame. |
| InputFejl | PartitioningNotAllowed | 2602 | Analysetabeller kan ikke partitioneres. | Fjern eventuelle partitioner for alle kolonner i analysetabeller. |
| InputFejl | MissingTableSuffixLake | 2603 | Ugyldigt brugerdefineret tabelnavn. Alle navne på brugerdefinerede tabeller i datasøen skal slutte med _SPRK. | Føj _SPRK som et suffiks til tabelnavnet, før du skriver det i datasøen. |
| InputFejl | MissingTableSuffixLA | 2604 | Ugyldigt brugerdefineret tabelnavn. Alle navne på brugerdefinerede analysetabeller skal slutte med _SPRK_CL. | Føj _SPRK_CL som et suffiks til tabelnavnet, før du skriver det til analyselageret. |
| Ukendt fejl | InternalServerError | 2901 | Noget gik galt. Genstart sessionen, og prøv igen. | Dette problem er midlertidigt og kan løses ved at genstarte sessionen og prøve igen. Kontakt support, hvis problemet fortsætter. |
Bemærk!
Forespørgsler om ældre tabeller, f.eks. AzureDiagnostics, understøttes ikke.