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 Sentinel. 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í Python a Apache Sparku v rámci Visual Studio Code vám poznámkové bloky pomáhají transformovat nezpracovaná data zabezpečení na užitečné inteligentní funkce.
V tomto článku se dozvíte, jak prozkoumat data Data Lake a pracovat s nimi pomocí poznámkových bloků Jupyter v Visual Studio Code.
Požadavky
Proces onboardingu do datového jezera Microsoft Sentinel
Pokud chcete používat poznámkové bloky v datovém jezeře Microsoft Sentinel, musíte se nejprve připojit k datovému jezeru. Pokud jste se nepřipošli k datovému jezeru Sentinel, přečtěte si téma Onboarding to Microsoft Sentinel Data Lake. 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í
Microsoft Entra ID role 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í Azure rolí RBAC. Uživatelé s oprávněními Azure RBAC pro pracovní prostory Microsoft Sentinel můžou spouštět poznámkové bloky v těchto pracovních prostorech v úrovni Data Lake. Další informace najdete v tématu Roles and permissions in 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ěvatele Log Analytics v pracovním prostoru Log Analytics.
Pokud chcete přiřadit roli, postupujte následovně:
- Na portálu Azure přejděte do pracovního prostoru 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 Log Analytics Přispěvatel a pak vyberte Dalši
- 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 Assignování rolí Azure pomocí portálu Azure.
Instalace Visual Studio Code a rozšíření Microsoft Sentinel
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 Install.
- Po instalaci rozšíření se na levém panelu nástrojů zobrazí ikona štítu Microsoft Sentinel.
Nainstalujte rozšíření GitHub Copilot pro Visual Studio Code, abyste v poznámkových blocích povolili dokončování kódu a návrhy.
- Na marketplace rozšíření vyhledejte GitHub Copilot a nainstalujte ho.
- Po instalaci se přihlaste k GitHub Copilot 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 Sentinel.
Zobrazí se dialogové okno s následujícím textem Nástavba "Microsoft Sentinel" se chce přihlásit pomocí Microsoftu. Vyberte Povolit.
Výběrem názvu účtu dokončete přihlášení.
Pokud máte k vašemu přihlášení přidružených více účtů hostů, můžete bez problémů přepínat mezi účty. Pokud chcete přepínat mezi účty, vyberte název účtu v levém dolním rohu okna Visual Studio Code. Najednou je možné vybrat jenom jeden účet.
Snímek obrazovky ukazuje, jak přepnout účty ve Visual Studio Code.
Důležité
Přepínání mezi účty odpojí jakékoliv aktivní relace pyspark.
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.
Do vyhledávacího pole zadejte > nebo stiskněte Ctrl+Shift+P a pak zadejte Vytvořit nový Jupyter Notebook.
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ý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 Vybídání příslušného modulu runtime 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 tématu Vzorkovací poznámkové bloky pro Microsoft Sentinel data lake.
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 Copilot v poznámkových blocích
Pomocí GitHub Copilot můžete psát kód v poznámkových blocích. GitHub Copilot poskytuje 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 Visual Studio Code.
Zkopírujte kód z poznámkových bloků Sample pro Microsoft Sentinel data lake a uložte ho do složky poznámkových bloků, abyste mohli poskytnout kontext pro GitHub Copilot. GitHub Copilot pak bude moct navrhovat dokončení kódu na základě kontextu vašeho notebooku.
Následující příklad ukazuje, jak GitHub Copilot projektuje kontrolu kódu.
Microsoft Sentinel Provider – třída
Pokud se chcete připojit k datovému jezeře Microsoft Sentinel, použijte třídu SentinelLakeProvider.
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 tématu Reference třídy Microsoft Sentinel Provider.
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 modulů 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í. |
| Medium | Ú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 zobrazují ve třech oblastech v Visual Studio Code.
Podokno Výstup
- V podokně Output 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.
Vyskakovací okno upozornění v pravém dolním rohu Visual Studio Code, známé také jako notifikační zpráva, poskytuje okamžitá upozornění a aktualizace o stavu operací v poznámkovém bloku a Spark relaci. 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í
Úlohy můžete naplánovat tak, aby se spouštěly v určitých časech nebo intervalech, a to pomocí rozšíření Microsoft Sentinel pro Visual Studio Code. Úlohy umožňují automatizovat úlohy zpracování dat za účelem shrnutí, transformace nebo analýzy dat v datovém jezeře Microsoft Sentinel. Ú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 uvádí parametry a omezení služby pro Microsoft Sentinel data lake 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. Pro více informací viz Přidání nebo odstranění tabulek a sloupců v logech 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 v prostředí notebooku | 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 poskytovatelů Microsoft Sentinel pro abstrahované 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 ingestování | 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 ingestování | 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 ingestování | 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. |
Poznámka:
Dotazování starších tabulek, jako je AzureDiagnostics, se nepodporuje.
Související obsah
- Vytváření a správa úloh poznámkového bloku
- Ukázkové poznámkové bloky pro datové jezero Microsoft Sentinel
- Referenční informace ke třídě poskytovatele Microsoft Sentinel
- Přehled datového jezera Microsoft Sentinel
- Role a oprávnění pro Microsoft Sentinel a data lake