Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Notatniki Jupyter zapewniają interaktywne środowisko do eksplorowania, analizowania i wizualizowania danych w jeziorze danych Microsoft Sentinel i tabelach federacyjnych. Notesy umożliwiają pisanie i wykonywanie kodu, dokumentowanie przepływu pracy i wyświetlanie wyników — wszystko w jednym miejscu. To kompleksowe środowisko notatników ułatwia eksplorację danych, budowanie zaawansowanych rozwiązań analitycznych oraz dzielenie się spostrzeżeniami z innymi. Dzięki wykorzystaniu języka Python i platformy Apache Spark w programie Visual Studio Code notatniki pomagają przekształcać surowe dane dotyczące zabezpieczeń w użyteczne informacje operacyjne.
W tym artykule przedstawiono sposób eksplorowania danych usługi Data Lake i interakcji z nimi przy użyciu notesów Jupyter w Visual Studio Code.
Wymagania wstępne
Dołączanie do Microsoft Sentinel data lake
Aby korzystać z notesów w Microsoft Sentinel data lake, należy najpierw dołączyć do usługi Data Lake. Jeśli nie dołączono do usługi Sentinel data lake, zobacz Dołączanie do usługi Microsoft Sentinel data lake. Jeśli niedawno rozpoczęto korzystanie z data lake, może upłynąć trochę czasu, zanim zostanie zaimportowana wystarczająca ilość danych, aby można było tworzyć wartościowe analizy przy użyciu notebooków.
Wymagane uprawnienia dla notebooków z jeziorami danych
Role Microsoft Entra ID zapewniają szeroki dostęp do wszystkich obszarów roboczych w jeziorze danych. Alternatywnie można nadać dostęp do poszczególnych obszarów roboczych za pomocą ról RBAC platformy Azure. Użytkownicy mający uprawnienia Azure RBAC do obszarów roboczych Microsoft Sentinel mogą uruchamiać notesniki w tych obszarach roboczych w warstwie Data Lake. Aby uzyskać więcej informacji, zobacz Role i uprawnienia w Microsoft Sentinel.
Opcjonalnie można skonfigurować ograniczenie zakresu w usłudze Microsoft Sentinel lub kontrolę dostępu opartą na rolach (RBAC) na poziomie wiersza, aby dodatkowo ograniczyć dostęp do danych w obszarze roboczym. Po włączeniu określanie zakresu na poziomie wiersza ogranicza dane zwracane przez zapytania na podstawie przypisanego zakresu użytkownika. Jeśli określanie zakresu na poziomie wiersza nie jest skonfigurowane, istniejący model uprawnień na poziomie obszaru roboczego ma zastosowanie bez zmian. Aby uzyskać więcej informacji, zobacz temat Konfigurowanie określania zakresu Microsoft Sentinel (RBAC na poziomie wierszy) (wersja zapoznawcza).
Aby utworzyć nowe tabele niestandardowe w warstwie analitycznej, tożsamość zarządzana usługi Data Lake musi mieć przypisaną rolę Współautor usługi Log Analytics w obszarze roboczym usługi Log Analytics.
Aby przypisać rolę, wykonaj poniższe kroki:
- W witrynie Azure Portal przejdź do obszaru roboczego usługi Log Analytics, któremu chcesz przypisać rolę.
- Wybierz pozycję Kontrola dostępu (IAM) w okienku nawigacji po lewej stronie.
- Wybierz pozycję Dodaj przypisanie roli.
- W tabeli Rola wybierz pozycję Współautor usługi Log Analytics, a następnie wybierz pozycję Dalej
- Wybierz pozycję Tożsamość zarządzana, a następnie wybierz pozycję Wybierz członków.
- Tożsamość zarządzana usługi Data Lake to tożsamość zarządzana przypisana przez system o nazwie
msg-resources-<guid>. Wybierz tożsamość zarządzaną, a następnie wybierz Wybierz. - Wybierz Przejrzyj i przypisz.
Aby uzyskać więcej informacji na temat przypisywania ról do tożsamości zarządzanych, zobacz Przypisywanie ról Azure przy użyciu Azure Portal.
Instalowanie Visual Studio Code i rozszerzenia Microsoft Sentinel
Jeśli nie masz jeszcze Visual Studio Code, pobierz i zainstaluj Visual Studio Code dla komputerów Mac, Linux lub Windows.
Rozszerzenie Microsoft Sentinel dla programu Visual Studio Code (VS Code) jest instalowane z poziomu platformy handlowej rozszerzeń. Aby zainstalować rozszerzenie, wykonaj następujące kroki:
- Wybierz witrynę Extensions Marketplace na lewym pasku narzędzi.
- Wyszukaj Sentinel.
- Wybierz rozszerzenie Microsoft Sentinel i wybierz pozycję Zainstaluj.
- Po zainstalowaniu rozszerzenia obraz Microsoft
pojawia się na lewym pasku narzędzi.
Zainstaluj rozszerzenie GitHub Copilot dla Visual Studio Code, aby włączyć uzupełnianie kodu i sugestie w notesach.
- Wyszukaj GitHub Copilot w witrynie Extensions Marketplace i zainstaluj ją.
- Po instalacji zaloguj się do GitHub Copilot przy użyciu konta usługi GitHub.
Eksplorowanie tabel warstwy usługi Data Lake
Po zainstalowaniu rozszerzenia Microsoft Sentinel możesz rozpocząć eksplorowanie tabel warstwy usługi Data Lake i tworzenie notesów Jupyter w celu analizowania danych.
Zaloguj się do rozszerzenia Microsoft Sentinel
Aby zalogować się do rozszerzenia Microsoft Sentinel, wykonaj następujące kroki:
Wybierz obraz Microsoft Sentinel
, ikonę na lewym pasku narzędzi.Zostanie wyświetlone okno dialogowe z następującym tekstem Rozszerzenie "Microsoft Sentinel" chce się zalogować przy użyciu firmy Microsoft. Wybierz pozycję Zezwalaj.
Wybierz nazwę konta, aby ukończyć logowanie.
Jeśli masz wiele kont gości skojarzonych z logowaniem, możesz bezproblemowo przełączać się między kontami. Aby przełączać się między kontami, wybierz nazwę konta w lewym dolnym rogu okna Visual Studio Code. Jednocześnie można wybrać tylko jedno konto.
Ważna
Przełączanie między kontami powoduje rozłączenie wszystkich aktywnych sesji PySpark.
Wyświetlanie tabel i zadań usługi Data Lake
Po zalogowaniu się rozszerzenie Sentinel wyświetla w lewym panelu listę tabel Lake i zadań. Tabele są pogrupowane według bazy danych i kategorii. Tabele federacyjne są wyświetlane w kategorii Tabele federacyjne w obszarze Tabele systemowe. Wybierz tabelę, aby wyświetlić definicje kolumn.
Aby uzyskać informacje o planowaniu zadań w notesie, zobacz Tworzenie i zarządzanie zadaniami oraz harmonogramami notatników w tym artykule. Aby uzyskać więcej informacji na temat tabel federacyjnych, zobacz Using federated tables in the Microsoft Sentinel data lake (Używanie tabel federacyjnych w Microsoft Sentinel data lake).
Utwórz nowy notatnik
Aby stworzyć nowy notes Jupyter w Visual Studio Code, należy postępować zgodnie z tymi krokami:
Aby utworzyć nowy notes, użyj jednej z następujących metod.
Wpisz > w polu wyszukiwania lub naciśnij Ctrl+Shift+P, a następnie wpisz Utwórz nowy notes Jupyter.
Wybierz pozycję Plik > nowy plik, a następnie wybierz pozycję Jupyter Notebook z listy rozwijanej.
W nowym notesie wklej następujący kod do pierwszej komórki.
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)Edytor zapewnia funkcję uzupełniania kodu IntelliSense zarówno dla klasy
MicrosoftSentinelProvider, jak i dla nazw tabel w jeziorze danych.Wybierz trójkąt Uruchom , aby wykonać kod w notesie. Wyniki są wyświetlane w okienku danych wyjściowych poniżej komórki kodu.
Wybierz pozycję Microsoft Sentinel z listy, aby wyświetlić listę pul środowiska uruchomieniowego.
Wybierz opcję Średni, aby uruchomić notatnik w puli środowiska uruchomieniowego o średnim rozmiarze. Aby uzyskać więcej informacji na temat różnych środowisk uruchomieniowych, zobacz Wybieranie odpowiedniej puli środowiska uruchomieniowego.
Uwaga
Wybranie jądra powoduje uruchomienie sesji platformy Spark i uruchomienie kodu w notesie. Po wybraniu puli uruchomienie sesji może potrwać od 3 do 5 minut. Kolejne uruchomienia są szybsze, ponieważ sesja jest już aktywna.
Po rozpoczęciu sesji kod w notesie zostanie uruchomiony, a wyniki zostaną wyświetlone w okienku danych wyjściowych poniżej komórki kodu, na przykład:
Przykładowe notatniki pokazujące, jak wchodzić w interakcje z jeziorem danych Microsoft Sentinel, można znaleźć w artykule Przykładowe notatniki dla jeziora danych Microsoft Sentinel.
Monitorowanie stanu notesu na pasku stanu
Pasek stanu w dolnej części notesu zawiera informacje o bieżącym stanie notesu i sesji platformy Spark. Pasek stanu zawiera następujące informacje:
Procent wykorzystania rdzeni wirtualnych dla wybranej puli platformy Spark. Umieść kursor na wartości procentowej, aby wyświetlić liczbę używanych rdzeni wirtualnych i łączną liczbę rdzeni wirtualnych dostępnych w puli. Wartości procentowe reprezentują bieżące użycie obciążeń interaktywnych i zadań dla zalogowanego konta.
Stan połączenia sesji platformy Spark, na przykład
Connecting,ConnectedlubNot Connected.
Ustawianie limitów czasu sesji
Możesz ustawić limit czasu sesji i ostrzeżenia dotyczące limitu czasu dla notesów interakcyjnych. Te ustawienia są utrwalane w ustawieniach rozszerzenia, dzięki czemu są zachowywane w sesjach.
Aby zmienić limit czasu, wybierz stan połączenia na pasku stanu w dolnej części notesu. Wybierz jedną z następujących opcji:
Ustaw limit czasu sesji: ustawia czas w minutach przed przekroczeniem limitu czasu sesji. Wartość domyślna to 30 minut.
Resetowanie limitu czasu sesji: resetuje limit czasu sesji do domyślnej wartości 30 minut.
Ustaw okres wyświetlania ostrzeżenia o limicie czasu sesji: Określa czas w minutach przed upływem limitu czasu sesji, po którym wyświetlane jest ostrzeżenie, że sesja wkrótce wygaśnie. Wartość domyślna to 5 minut.
Resetowanie okresu ostrzeżenia o przekroczeniu limitu czasu sesji: Resetuje okres ostrzeżenia o przekroczeniu limitu czasu sesji do domyślnej wartości 5 minut.
Używanie GitHub Copilot w notesach
Użyj GitHub Copilot, aby ułatwić pisanie kodu w notesach. GitHub Copilot udostępnia sugestie dotyczące kodu i autouzupełnianie na podstawie kontekstu kodu. Aby użyć GitHub Copilot, upewnij się, że masz zainstalowane rozszerzenie GitHub Copilot w Visual Studio Code.
Skopiuj kod z przykładowych notesów Microsoft Sentinel data lake i zapisz go w folderze notesów, aby zapewnić kontekst dla GitHub Copilot. GitHub Copilot będzie mógł następnie sugerować uzupełnienia kodu na podstawie kontekstu notatnika.
Poniższy przykład pokazuje, jak GitHub Copilot generuje przegląd kodu.
Użyj klasy Microsoft Sentinel Provider
Aby nawiązać połączenie z Microsoft Sentinel data lake, użyj MicrosoftSentinelProvider klasy .
Klasa MicrosoftSentinelProvider jest częścią modułu sentinel_lake.providers i udostępnia metody interakcji z usługą Data Lake. Aby połączyć swój notes Spark z tabelami Microsoft Sentinel data lake, zaimportuj klasę i stwórz instancję w spark sesji. Poniższy kod inicjalizuje dostawcę danych Sentinel Lake, aby notebook mógł zapytać tabele Microsoft Sentinel ze Sparka:
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
Aby uzyskać więcej informacji na temat dostępnych metod, zobacz dokumentację klasy dostawcy Microsoft Sentinel.
Wybierz odpowiednią pulę środowiska uruchomieniowego
Dostępne są trzy pule środowiska uruchomieniowego do uruchamiania notesów Jupyter w rozszerzeniu Microsoft Sentinel. Każda pula jest przeznaczona dla różnych obciążeń i wymagań dotyczących wydajności. Wybór puli środowiska uruchomieniowego ma wpływ na wydajność, koszt i czas wykonywania zadań platformy Spark.
| Pula środowiska uruchomieniowego | Zalecane przypadki użycia | Cechy |
|---|---|---|
| Mały | Opracowywanie, testowanie i uproszczona analiza eksploracyjna. Małe obciążenia z prostymi przekształceniami. Efektywność kosztowa została określona priorytetowo. |
Nadaje się do małych obciążeń Proste przekształcenia. Niższy koszt, dłuższy czas wykonywania. |
| Średnie | Zadania ETL z sprzężeniami, agregacjami i trenowaniem modelu uczenia maszynowego. Umiarkowane obciążenia ze złożonymi przekształceniami. |
Lepsza wydajność niż w przypadku Small. Obsługuje równoległość i umiarkowane operacje intensywnie korzystające z pamięci. |
| Duży | Obciążenia uczenia głębokiego i uczenia maszynowego. Rozległe tasowanie danych, duże sprzężenia lub przetwarzanie w czasie rzeczywistym. Krytyczny czas wykonania. |
Duża ilość pamięci i mocy obliczeniowej. Minimalne opóźnienia. Najlepiej w przypadku dużych, złożonych lub zależnych od czasu obciążeń. |
Uwaga
Po pierwszym uzyskaniu dostępu ładowanie opcji jądra może potrwać około 30 sekund.
Po wybraniu puli środowiska uruchomieniowego rozpoczęcie sesji może potrwać od 3 do 5 minut.
Wyświetlanie komunikatów, dzienników i błędów
Dzienniki komunikatów i komunikaty o błędach są wyświetlane w trzech obszarach w Visual Studio Code.
Okienko Dane wyjściowe .
- W okienku Dane wyjściowe wybierz pozycję Microsoft Sentinel z listy rozwijanej.
- Wybierz pozycję Debuguj, aby uwzględnić szczegółowe wpisy dziennika.
Komunikaty wbudowane w notatniku zapewniają informacje zwrotne i informacje o wykonywaniu komórek kodu. Komunikaty te obejmują aktualizacje stanu wykonywania, wskaźniki postępu oraz powiadomienia o błędach dotyczące kodu z poprzedniej komórki
Wyskakujące powiadomienie w prawym dolnym rogu programu Visual Studio Code, znane również jako komunikat typu toast, wyświetla alerty i aktualizacje w czasie rzeczywistym dotyczące stanu operacji w notesie i sesji Spark. Powiadomienia te obejmują komunikaty, ostrzeżenia i alerty o błędach, takie jak pomyślne połączenie z sesją platformy Spark i ostrzeżenia o przekroczeniu limitu czasu.
Twórz zadania i harmonogramy notatnika oraz zarządzaj nimi
Zadania można zaplanować w określonych godzinach lub interwałach przy użyciu rozszerzenia Microsoft Sentinel dla Visual Studio Code. Zadania umożliwiają automatyzację procesów przetwarzania danych do podsumowywania, przekształcania lub analizowania danych w jeziorze danych Microsoft Sentinel. Zadania są również używane do przetwarzania danych i zapisywania wyników w tabelach niestandardowych w warstwie usługi Data Lake lub warstwie analizy. Aby uzyskać więcej informacji na temat tworzenia zadań i zarządzania nimi, zobacz Tworzenie zadań notesu Jupyter i zarządzanie nimi.
Parametry i limity usługi dla notatników VS Code
W poniższej sekcji wymieniono parametry usługi i limity dla usługi Microsoft Sentinel data lake podczas korzystania z notesów w programie VS Code.
| Kategoria | Parametr/ograniczenie |
|---|---|
| Tabela niestandardowa w warstwie analizy | Nie można usunąć tabel niestandardowych w warstwie analizy z notesu. Użyj usługi Log Analytics, aby usunąć te tabele. Aby uzyskać więcej informacji, zobacz Dodawanie lub usuwanie tabel i kolumn w dziennikach usługi Azure Monitor |
| Limit czasu bramy WebSocket | 2 godziny |
| Przekroczenie limitu czasu zapytania interakcyjnego | 2 godziny |
| Limit czasu bezczynności sesji interakcyjnej | 20 minut |
| Język | Python |
| Przekroczenie limitu czasu zapytania grafu | 7,5 minuty |
| Limit czasu zadania notebooka | 8 godzin |
| Maksymalna liczba współbieżnych zadań notatnika | 3. Kolejne zadania są umieszczane w kolejce |
| Maksymalna liczba równoczesnych użytkowników podczas interakcyjnego wykonywania zapytań | 8–10 dla dużej puli |
| Czas rozpoczęcia sesji | Rozpoczęcie sesji obliczeniowej platformy Spark trwa około 5–6 minut. Stan sesji można wyświetlić w dolnej części notesu programu VS Code. |
| Obsługiwane biblioteki | Tylko biblioteki Azure Synapse 3.4 i biblioteka dostawcy Microsoft Sentinel dla funkcji abstrakcyjnych są obsługiwane do wykonywania zapytań w usłudze data lake. Instalowanie za pomocą pip lub biblioteki niestandardowe nie są obsługiwane. |
| Limit wyświetlania rekordów w interfejsie użytkownika VS Code | 100 000 wierszy |
Rozwiązywanie problemów
Informacje o typowych błędach i sposobach ich rozwiązywania podczas pracy z notesnikami można znaleźć w artykule Rozwiązywanie problemów z notesnikami w jeziorze danych Microsoft Sentinel.
Zawartość pokrewna
- Rozwiązywanie problemów z notesnikami w jeziorze danych Microsoft Sentinel
- Twórz zadania notatnika i zarządzaj nimi
- Przykładowe notatniki dla jeziora danych Microsoft Sentinel
- Dokumentacja klasy Microsoft Sentinel Provider
- omówienie usługi data lake Microsoft Sentinel
- Role i uprawnienia usługi Data Lake usługi Microsoft Sentinel