Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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ě:
- Na webu Azure Portal přejděte do pracovního prostoru služby Log Analytics, ke kterému chcete roli přiřadit.
- V levém navigačním podokně vyberte Řízení přístupu (IAM ).
- Vyberte Přidat přiřazení rolí.
- V tabulce role vyberte Přispěvatel Log Analytics a pak vyberte Další.
- Vyberte Spravovanou identitu a pak vyberte Vybrat členy.
- 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. - 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:
- Na levém panelu nástrojů vyberte trh s rozšířeními.
- Vyhledejte Sentinel.
- Vyberte rozšíření Microsoft Sentinel a vyberte Nainstalovat.
- Po instalaci rozšíření se na levém panelu nástrojů zobrazí ikona štítu Microsoft Sentinelu.
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.
- Vyhledejte GitHub Copilot na Marketplace rozšíření a nainstalujte ho.
- 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
Na levém panelu nástrojů vyberte ikonu štítu Microsoft Sentinelu.
Zobrazí se dialogové okno s následujícím textem : Rozšíření Microsoft Sentinel se chce přihlásit pomocí Microsoftu. Vyberte Povolit.
Výběrem názvu účtu dokončete přihlášení.
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í.
Vytvoření nového poznámkového bloku
Pokud chcete vytvořit nový poznámkový blok, použijte jednu z následujících metod.
Zadejte > do vyhledávacího pole nebo stiskněte Ctrl+Shift+P a pak zadejte Vytvořit nový poznámkový blok Jupyter.
V rozevíracím seznamu vyberte Soubor > Nový soubor a pak v rozevíracím seznamu vyberte Jupyter Notebook .
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.
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.
V seznamu vyberte Microsoft Sentinel, abyste zobrazili seznam fondů prostředí runtime.
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.
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:
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,ConnectedneboNot Connected.
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.
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.
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.
Podokno Výstup
- V podokně Výstup vyberte v rozevíracím seznamu Microsoft Sentinel .
- Výběrem možnosti Ladit zahrňte podrobné položky protokolu.
Řá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.
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.
Ú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. |