Sdílet prostřednictvím


Spouštění poznámkových bloků v datovém jezeře Microsoft Sentinelu

Poznámkové bloky Jupyter poskytují interaktivní prostředí pro zkoumání, analýzu a vizualizaci dat v datovém jezeře Microsoft Sentinelu. V poznámkových blocích můžete psát a spouštět kód, dokumentovat pracovní postup a zobrazovat výsledky – to vše na jednom místě. Díky tomu můžete snadno provádět zkoumání dat, vytvářet pokročilá analytická řešení a sdílet přehledy s ostatními. Díky využití Pythonu a Apache Sparku v editoru Visual Studio Code vám poznámkové bloky pomůžou transformovat nezpracovaná data zabezpečení na užitečné inteligentní funkce.

V tomto článku se dozvíte, jak zkoumat data Data Lake a pracovat s nimi pomocí poznámkových bloků Jupyter v editoru Visual Studio Code.

Požadavky

Připojení k datovému jezeře Microsoft Sentinelu

Aby bylo možné používat poznámkové bloky v datovém jezeře Microsoft Sentinel, musíte se nejprve zapojit do datového jezera. Pokud jste ještě nezačali používat datové jezero Microsoft Sentinel, podívejte se na Onboarding do datového jezera Microsoft Sentinel. Pokud jste nedávno nasedli do datového jezera, může to nějakou dobu trvat, než se ingestuje dostatečný objem dat, abyste mohli pomocí poznámkových bloků vytvořit smysluplné analýzy.

Povolení

Role ID Microsoft Entra poskytují široký přístup napříč všemi pracovními prostory v datovém jezeře. Případně můžete udělit přístup k jednotlivým pracovním prostorům pomocí rolí Azure RBAC. Uživatelé s oprávněními Azure RBAC k pracovním prostorům služby Microsoft Sentinel můžou spouštět poznámkové bloky na těchto pracovních prostorech v úrovni úložiště Data Lake. Další informace naleznete v části Role a oprávnění ve službě Microsoft Sentinel.

Pokud chcete vytvořit nové vlastní tabulky v analytické vrstvě, musí být spravovaná identita Data Lake přiřazena roli Přispěvatel Log Analytics v pracovním prostoru služby Log Analytics.

Pokud chcete přiřadit roli, postupujte následovně:

  1. Na webu Azure Portal přejděte do pracovního prostoru služby Log Analytics, ke kterému chcete roli přiřadit.
  2. V levém navigačním podokně vyberte Řízení přístupu (IAM ).
  3. Vyberte Přidat přiřazení rolí.
  4. V tabulce role vyberte Přispěvatel Log Analytics a pak vyberte Další.
  5. Vyberte Spravovanou identitu a pak vyberte Vybrat členy.
  6. Spravovaná identita datového jezera je systémem přiřazená spravovaná identita s názvem msg-resources-<guid>. Vyberte spravovanou identitu a pak vyberte Vybrat.
  7. Vyberte Zkontrolovat a přiřadit.

Další informace o přiřazování rolí spravovaným identitám najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.

Instalace nástroje Visual Studio Code a rozšíření Microsoft Sentinelu

Pokud ještě nemáte Visual Studio Code, stáhněte a nainstalujte Visual Studio Code pro Mac, Linux nebo Windows.

Rozšíření Microsoft Sentinel pro Visual Studio Code (VS Code) se instaluje z marketplace rozšíření. Chcete-li nainstalovat rozšíření, postupujte takto:

  1. Na levém panelu nástrojů vyberte trh s rozšířeními.
  2. Vyhledejte Sentinel.
  3. Vyberte rozšíření Microsoft Sentinel a vyberte Nainstalovat.
  4. Po instalaci rozšíření se na levém panelu nástrojů zobrazí ikona štítu Microsoft Sentinelu.

Snímek obrazovky znázorňující místo na trhu rozšíření

Nainstalujte rozšíření GitHub Copilot pro Visual Studio Code, které umožňuje dokončování kódu a návrhy v poznámkových blocích.

  1. Vyhledejte GitHub Copilot na Marketplace rozšíření a nainstalujte ho.
  2. Po instalaci se přihlaste k GitHub Copilotu pomocí svého účtu GitHub.

Prozkoumat tabulky vrstev Data Lake

Po instalaci rozšíření Microsoft Sentinel můžete začít zkoumat tabulky vrstev Data Lake a vytvářet poznámkové bloky Jupyter pro analýzu dat.

Přihlášení k rozšíření Microsoft Sentinel

  1. Na levém panelu nástrojů vyberte ikonu štítu Microsoft Sentinelu.

  2. Zobrazí se dialogové okno s následujícím textem : Rozšíření Microsoft Sentinel se chce přihlásit pomocí Microsoftu. Vyberte Povolit.

    Snímek obrazovky s dialogovým oknem pro přihlášení

  3. Výběrem názvu účtu dokončete přihlášení.

    Snímek obrazovky zobrazující seznam výběru účtu v horní části stránky

Zobrazení tabulek a úloh Data Lake

Po přihlášení se v rozšíření Sentinel zobrazí seznam tabulek Lake a úloh v levém podokně. Tabulky jsou seskupené podle databáze a kategorie. Výběrem tabulky zobrazíte definice sloupců.

Informace o úlohách naleznete v tématu Úlohy a plánování.

Snímek obrazovky se seznamem tabulek, úloh a metadat vybraných tabulek

Vytvoření nového poznámkového bloku

  1. Pokud chcete vytvořit nový poznámkový blok, použijte jednu z následujících metod.

  2. Zadejte > do vyhledávacího pole nebo stiskněte Ctrl+Shift+P a pak zadejte Vytvořit nový poznámkový blok Jupyter. Snímek obrazovky znázorňující, jak vytvořit nový poznámkový blok z panelu hledání

  3. V rozevíracím seznamu vyberte Soubor > Nový soubor a pak v rozevíracím seznamu vyberte Jupyter Notebook .
    Snímek obrazovky znázorňující, jak vytvořit nový poznámkový blok z nabídky soubor

  4. Do první buňky vložte do nového poznámkového bloku následující kód.

    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)  
    

Editor poskytuje dokončování kódu pomocí Intellisense pro MicrosoftSentinelProvider i názvy tabulek v datovém jezeře.

  1. Vyberte trojúhelník Spustit a spusťte kód v poznámkovém bloku. Výsledky se zobrazí v podokně výstupu pod buňkou kódu.
    Snímek obrazovky znázorňující, jak spustit buňku poznámkového bloku

  2. V seznamu vyberte Microsoft Sentinel, abyste zobrazili seznam fondů prostředí runtime. Snímek obrazovky znázorňující výběr modulu runtime

  3. Výběrem možnosti Střední spustíte poznámkový blok ve fondu modulu runtime střední velikosti. Další informace o různých modulech runtime najdete v tématu Výběr příslušného modulu runtime Služby Microsoft Sentinel. Snímek obrazovky znázorňující výběr velikosti fondu spuštění

Poznámka:

Výběrem jádra zahájíte relaci Sparku a provedete kód v poznámkovém bloku. Po výběru fondu může trvat 3 až 5 minut, než se relace spustí. Další spuštění proběhne rychleji, protože relace je již aktivní.

Po spuštění relace se kód v poznámkovém bloku spustí a výsledky se zobrazí v podokně výstupu pod buňkou kódu, například: Snímek obrazovky znázorňující výsledky spuštění buňky poznámkového bloku.

Ukázkové poznámkové bloky, které ukazují, jak pracovat s datovým jezerem Microsoft Sentinel, najdete v ukázkových poznámkových blocích pro datové jezero Microsoft Sentinel.

Stavový řádek

Stavový řádek v dolní části poznámkového bloku poskytuje informace o aktuálním stavu poznámkového bloku a relaci Spark. Stavový řádek obsahuje následující informace:

  • Procentuální využití virtuálních jader pro vybraný Spark pool. Najeďte myší na procento, abyste viděli počet použitých virtuálních jader a celkový počet virtuálních jader dostupných ve fondu. Procenta představují aktuální využití napříč interaktivními úlohami a pracovními zatíženími pro přihlášený účet.

  • Stav připojení relace Sparku, například Connecting, Connectednebo Not Connected.

Snímek obrazovky zobrazující stavový řádek v dolní části poznámkového bloku

Nastavení časových limitů relace

Můžete nastavit časový limit relace a upozornění časového limitu pro interaktivní poznámkové bloky. Pokud chcete časový limit změnit, vyberte stav připojení na stavovém řádku v dolní části poznámkového bloku. Vyberte si z následujících možností:

  • Nastavit období časového limitu relace: Nastaví čas v minutách před vypršením časového limitu relace. Výchozí hodnota je 30 minut.

  • Resetovat období časového limitu relace: Časový limit relace se resetuje na výchozí hodnotu 30 minut.

  • Nastavit období upozornění na vypršení časového limitu relace: Nastaví čas v minutách před vypršením časového limitu, kdy se zobrazí upozornění, že se relace blíží vypršení časového limitu. Výchozí hodnota je 5 minut.

  • Období upozornění na vypršení časového limitu relace resetuje: Obnoví upozornění časového limitu relace na výchozí hodnotu 5 minut.

    Snímek obrazovky s nastavením časového limitu relace

Použití GitHub Copilotu v noteboocích

Pomocí GitHub Copilotu můžete psát kód v poznámkových blocích. GitHub Copilot nabízí návrhy kódu a automatické dokončování na základě kontextu kódu. Pokud chcete použít GitHub Copilot, ujistěte se, že máte nainstalované rozšíření GitHub Copilot v editoru Visual Studio Code.

Zkopírujte kód z ukázkových poznámkových bloků pro datové jezero Microsoft Sentinel a uložte jej do složky s poznámkovými bloky, abyste poskytli kontext pro GitHub Copilot. GitHub Copilot pak bude moct navrhnout dokončování kódu na základě kontextu poznámkového bloku.

Následující příklad ukazuje, jak GitHub Copilot generuje kontrolu kódu.

Snímek obrazovky znázorňující GitHub Copilot vygenerující kontrolu kódu

Microsoft Sentinel Provider – třída

Pokud se chcete připojit k datovému jezeru Microsoft Sentinel, použijte SentinelLakeProvider třídu. Tato třída je součástí access_module.data_loader modulu a poskytuje metody pro interakci s datovým jezerem. Pokud chcete tuto třídu použít, naimportujte ji a vytvořte instanci třídy pomocí spark relace.

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

Další informace o dostupných metodách najdete v referenčních informacích ke třídě poskytovatele služby Microsoft Sentinel.

Vyberte příslušné běhové prostředí.

Pro spouštění poznámkových bloků Jupyter v rozšíření Microsoft Sentinel jsou k dispozici tři fondy modulu runtime. Každý fond je navržený pro různé úlohy a požadavky na výkon. Volba fondu modulu runtime ovlivňuje výkon, náklady a dobu provádění úloh Sparku.

Skupina runtime Doporučené případy použití Charakteristiky
Malý Vývoj, testování a jednoduchá průzkumná analýza
Malé úlohy s jednoduchými transformacemi
Nákladová efektivita se upřednostňuje.
Vhodné pro malé úlohy
Jednoduché transformace.
Nižší náklady, delší doba provádění.
střední Úlohy ETL s spojeními, agregacemi a trénováním modelu ML
Mírné pracovní zátěže s komplexními transformacemi
Zvýšený výkon oproti malé verzi.
Zpracovává paralelismus a střední operace náročné na paměť.
velké Úlohy hlubokého učení a strojového učení
Rozsáhlé prohazování dat, velké spojení nebo zpracování v reálném čase.
Kritická doba provádění.
Vysoký výkon paměti a výpočetního výkonu.
Minimální zpoždění.
Nejvhodnější pro velké, složité nebo časově citlivé úlohy.

Poznámka:

Při prvním přístupu může načtení možností jádra trvat přibližně 30 sekund.
Po výběru fondu modulu runtime může spuštění relace trvat 3–5 minut.

Zobrazení zpráv, protokolů a chyb

Protokoly zpráv a chybové zprávy se v editoru Visual Studio Code zobrazují ve třech oblastech.

  1. Podokno Výstup

    1. V podokně Výstup vyberte v rozevíracím seznamu Microsoft Sentinel .
    2. Výběrem možnosti Ladit zahrňte podrobné položky protokolu.

    Snímek obrazovky znázorňující podokno výstupu

  2. Řádkové zprávy v poznámkovém bloku poskytují zpětnou vazbu a informace o provádění buněk kódu. Mezi tyto zprávy patří aktualizace stavu spuštění, indikátory průběhu a oznámení o chybách související s kódem v předchozí buňce.

  3. Automaticky otevírané okno s oznámením v pravém dolním rohu editoru Visual Studio Code, které se také označuje jako informační zpráva, poskytuje výstrahy a aktualizace o stavu operací v poznámkovém bloku a relaci Sparku. Mezi tato oznámení patří zprávy, upozornění a chybové výstrahy, jako je úspěšné připojení k relaci Sparku, a upozornění časového limitu.

    Snímek obrazovky zobrazující vyskakovací zprávu a chybovou zprávu v řádku.

Úlohy a plánování

Pomocí rozšíření Microsoft Sentinel pro Visual Studio Code můžete naplánovat spouštění úloh v určitých časech nebo intervalech. Úlohy umožňují automatizovat úlohy zpracování dat za účelem shrnutí, transformace nebo analýzy dat v datovém jezeře Microsoft Sentinelu. Úlohy se také používají ke zpracování dat a zápisu výsledků do vlastních tabulek ve vrstvě Data Lake nebo analytické vrstvě. Další informace o vytváření a správě úloh najdete v tématu Vytváření a správa úloh poznámkového bloku Jupyter.

Parametry a limity služby pro VS Code Notebooks

Následující část obsahuje seznam parametrů a omezení služby pro datové jezero Microsoft Sentinel při použití poznámkových bloků VS Code.

Kategorie Parametr/omezení
Vlastní tabulka v analytické vrstvě Z poznámkového bloku nelze odstranit vlastní tabulky v úrovni analýzy; K odstranění těchto tabulek použijte Log Analytics. Další informace najdete v tématu Přidání nebo odstranění tabulek a sloupců v protokolech služby Azure Monitor.
Vypršení časového limitu webového soketu brány 2 hodiny
Časový limit interaktivního dotazu 2 hodiny
Časový limit nečinnosti interaktivní relace 20 minut
Jazyk Python
Časový limit úlohy poznámkového bloku 8 hodin
Maximální počet současných úloh poznámkového bloku 3, další úlohy se zařadí do fronty
Maximální počet souběžných uživatelů při interaktivním dotazování 8-10 na velkém bazénu
Čas spuštění relace Spuštění výpočetní relace Sparku trvá přibližně 5 až 6 minut. Stav relace můžete zobrazit v dolní části poznámkového bloku VS Code.
Podporované knihovny Pro dotazování na datové jezero se podporují pouze knihovny Azure Synapse 3.4 a knihovna Microsoft Sentinel Provider pro abstraktní funkce. Instalace pomocí pipu ani vlastní knihovny nejsou podporovány.
Omezení uživatelského rozhraní VS Code pro zobrazení záznamů 100 000 řádků

Řešení problémů

Následující tabulka uvádí běžné chyby, se kterými se můžete setkat při práci s poznámkovými bloky, jejich původní příčiny a navrhované akce k jejich vyřešení.

Kategorie chyby Název chyby Kód chyby Zpráva o chybě Navrhovaná akce
Chyba databáze DatabázeNenalezena 2001 Databáze {DatabaseName} nebyla nalezena. Ověřte, že databáze existuje. Pokud je databáze nová, počkejte na aktualizaci metadat.
Chyba databáze NejednoznačnýNázevDatabáze 2002 Několik databází (ID: {DatabaseID1}, {DatabaseID2}, ...) sdílí název {DatabaseName}. Zadejte konkrétní ID databáze. Zadejte ID databáze, pokud má více databází stejný název.
Chyba databáze DatabaseIdNevyhovující 2003 Databáze ({DatabaseName}, ID {DatabaseID}) nebyla nalezena. Zkontrolujte název databáze i ID. Pokud chcete získat ID databáze, uveďte seznam všech databází.
Chyba databáze ChybaSeznamuDatabází 2004 Nelze načíst databáze. Restartujte relaci a zkuste to znovu. Restartujte relaci a zkuste operaci zopakovat po několika minutách.
TableError TableDoesNotExist (TabulkaNeexistuje) 2100 Tabulka {TableName} nebyla v databázi {DatabaseName} nalezena. Ověřte, že tabulka v databázi existuje. Pokud je tabulka nebo databáze nová, počkejte několik minut a zkuste to znovu.
TableError Neúplné zřizování 2101 Tabulka {TableName} není připravená. Než to zkusíte znovu, počkejte několik minut. Tabulka se zřizuje. Než to zkusíte znovu, počkejte několik minut.
TableError DeltaTableMissing 2102 Tabulka {TableName} je prázdná. Příprava nových tabulek může trvat až několik hodin. Úplné synchronizace analytické tabulky do datového jezera může trvat několik hodin. U tabulek, které jsou pouze v datovém jezeře, zkontrolujte, jestli se data musí načíst nebo obnovit.
TableError TabulkaNeexistujeProSmazání 2103 Tabulku nejde odstranit. Tabulka {TableName} nebyla nalezena. Ověřte, že tabulka v databázi existuje. Pokud je tabulka nebo databáze nová, počkejte několik minut a zkuste to znovu.
ChybaAutorizace MissingSASToken (chybějící SAS token) 2201 Nelze získat přístup k tabulce. Restartujte relaci a zkuste to znovu. Autorizace se nezdařila při pokusu o načtení přístupového tokenu pro tabulku. Restartujte relaci a zkuste to znovu.
ChybaAutorizace InvalidSASToken 2202 Nelze získat přístup k tabulce. Restartujte relaci a zkuste to znovu. Autorizace se nezdařila při pokusu o načtení přístupového tokenu pro tabulku. Restartujte relaci a zkuste to znovu.
ChybaAutorizace Platnost tokenu vypršela 2203 Nelze získat přístup k tabulce. Restartujte relaci a zkuste to znovu. Autorizace se nezdařila při pokusu o načtení přístupového tokenu pro tabulku. Restartujte relaci a zkuste to znovu.
ChybaAutorizace NedostatečnáOprávněníTabulky 2204 Access potřebný pro tabulku {TableName} v databázi {DatabaseName}. Požádejte správce o přístup k tabulce nebo databázi (pracovnímu prostoru).
ChybaAutorizace Přístup ke vnitřní tabulce odepřen 2205 Přístup k tabulce {TableName} je omezený. K systémovým nebo uživatelem definovaným tabulkám je možné přistupovat z poznámkového bloku.
ChybaAutorizace TableAuthFailure 2206 Data nelze uložit do tabulky. Restartujte relaci a zkuste to znovu. Autorizace se nezdařila při pokusu o uložení dat do tabulky. Restartujte relaci a zkuste to znovu.
Chyba konfigurace HadoopConfigFailure 2301 Nejde aktualizovat konfiguraci relace. Restartujte relaci a zkuste to znovu. Tento problém je přechodný a lze ho vyřešit restartováním relace a opětovným pokusem. Pokud potíže potrvají, obraťte se na podporu.
ChybaDat JsonParsingFailure 2302 Metadata tabulky byla poškozena. Kontaktujte podporu a požádejte o pomoc. Kontaktujte podporu a požádejte o pomoc. Zadejte ID tenanta, název tabulky a název databáze.
TableSchemaError TableSchemaMismatch 2401 Sloupec nebyl v cílové tabulce nalezen. Zarovnejte schéma datového rámce a cílovou tabulku nebo použijte režim přepsání. Aktualizujte schéma datového rámce tak, aby odpovídalo tabulce v cílové databázi. Tabulku můžete také zcela nahradit v režimu přepsání.
TableSchemaError ChybějícíPovinnéSloupce 2402 V datovém rámci chybí sloupec {ColumnName}. Zkontrolujte schéma datového rámce a zarovnejte ho s cílovou tabulkou. Aktualizujte schéma datového rámce tak, aby odpovídalo tabulce v cílové databázi. Tabulku můžete také zcela nahradit v režimu přepsání.
TableSchemaError ZměnaTypuSloupceNeníPovolena 2403 Nelze změnit datový typ sloupce {ColumnName}. Změna datového typu není pro sloupec povolená. Zkontrolujte existující sloupce v cílové tabulce a zarovnejte všechny datové typy v datovém rámci.
TableSchemaError Změna nulovatelnosti sloupce není povolena 2404 Nelze změnit nulovatelnost sloupce {ColumnName}. Nelze aktualizovat nastavení nullability sloupce. Zkontrolujte cílovou tabulku a zarovnejte nastavení s datovým rámcem.
Chyba příjmu dat Selhání Vytvoření Složky 2501 Nelze vytvořit úložiště pro tabulku {TableName}. Tento problém je přechodný a lze ho vyřešit restartováním relace a opětovným pokusem. Pokud potíže potrvají, obraťte se na podporu.
Chyba příjmu dat SubJobRequestFailure 2502 Pro tabulku {TableName} nelze vytvořit úlohu příjmu dat. Tento problém je přechodný a lze ho vyřešit restartováním relace a opětovným pokusem. Pokud potíže potrvají, obraťte se na podporu.
Chyba příjmu dat SubJobCreationFailure (chyba při vytváření podúlohy) 2503 Pro tabulku {TableName} nelze vytvořit úlohu příjmu dat. Tento problém je přechodný a lze ho vyřešit restartováním relace a opětovným pokusem. Pokud potíže potrvají, obraťte se na podporu.
InputError Neplatný režim zápisu 2601 Neplatný režim zápisu Použijte přidat nebo přepsat. Před uložením datového rámce zadejte platný režim zápisu (připojení nebo přepsání).
InputError Rozdělení není povoleno 2602 Nelze rozdělit analytické tabulky. Odeberte particionování všech sloupců v analytických tabulkách.
InputError MissingTableSuffixLake 2603 Neplatný název vlastní tabulky Všechny názvy vlastních tabulek v datovém jezeře musí končit _SPRK. Před zápisem do datového jezera přidejte _SPRK jako příponu názvu tabulky.
InputError MissingTableSuffixLA 2604 Neplatný název vlastní tabulky Všechny názvy vlastních analytických tabulek musí končit _SPRK_CL. Před zápisem do analytického úložiště přidejte _SPRK_CL jako příponu názvu tabulky.
Neznámá chyba Vnitřní chyba serveru 2901 Něco se nepovedlo. Restartujte relaci a zkuste to znovu. Tento problém je přechodný a lze ho vyřešit restartováním relace a opětovným pokusem. Pokud potíže potrvají, obraťte se na podporu.