Microsoft Sentinel veri gölünde not defterlerini çalıştırma

Jupyter not defterleri, Microsoft Sentinel veri gölündeki ve federasyon tablolarındaki verileri keşfetmek, çözümlemek ve görselleştirmek için etkileşimli bir ortam sağlar. Not defterleriyle kod yazıp yürütebilir, iş akışınızı belgeleyebilir ve sonuçları tek bir yerden görüntüleyebilirsiniz. Bu hepsi bir arada dizüstü bilgisayar ortamı, veri keşfini kolaylaştırıyor, gelişmiş analitik çözümler geliştiriyor ve başkalarıyla içgörüler paylaşıyor. Not defterleri, Visual Studio Code içinde Python ve Apache Spark'ı kullanarak ham güvenlik verilerini eyleme dönüştürülebilir zekaya dönüştürmenize yardımcı olur.

Bu makalede, Visual Studio Code jupyter not defterlerini kullanarak data lake verilerini keşfetme ve bunlarla etkileşim kurma işlemleri gösterilmektedir.

Önkoşullar

Microsoft Sentinel veri gölüne dahil etme

Microsoft Sentinel veri gölünde notebook'ları kullanabilmek için önce veri gölüne kaydolmanız gerekir. Sentinel veri gölüne geçiş yapmadıysanız bkz. Microsoft Sentinel veri gölüne geçiş yapma. Veri gölünü kullanmaya kısa süre önce başladıysanız, not defterlerini kullanarak anlamlı analizler oluşturabilmeniz için yeterli miktarda veri içe aktarılana kadar biraz zaman geçmesi gerekebilir.

Veri gölü notebookları için gerekli izinler

Microsoft Entra ID rolleri, veri gölündeki tüm çalışma alanları arasında geniş erişim sağlar. Alternatif olarak, Azure RBAC rollerini kullanarak tek tek çalışma alanlarına erişim vekleyebilirsiniz. Microsoft Sentinel çalışma alanları için Azure RBAC izinlerine sahip kullanıcılar, not defterlerini data lake katmanındaki bu çalışma alanlarında çalıştırabilir. Daha fazla bilgi için bkz. Microsoft Sentinel'de roller ve izinler.

İsteğe bağlı olarak, Microsoft Sentinel kapsam belirleme veya satır düzeyi RBAC, çalışma alanı içinde veri erişimini daha fazla kısıtlamak için yapılandırılabilir. Etkinleştirildiğinde, satır düzeyi kapsam belirleme sorgular tarafından döndürülen verileri kullanıcının atanan kapsamına göre sınırlar. Satır düzeyi kapsam belirleme yapılandırılmamışsa, mevcut çalışma alanı düzeyi izin modeli değişmeden uygulanır. Daha fazla bilgi için bkz. Microsoft Sentinel kapsamını yapılandırma (satır düzeyi RBAC) (önizleme).

Analiz katmanında yeni özel tablolar oluşturmak için veri gölü yönetilen kimliğine Log Analytics çalışma alanında Log Analytics Contributor rolü atanmalıdır.

Rolü atamak için aşağıdaki adımları izleyin:

  1. Azure portal, rolü atamak istediğiniz Log Analytics çalışma alanına gidin.
  2. Sol gezinti bölmesinde Erişim denetimi (IAM) öğesini seçin.
  3. Rol ataması ekle'yi seçin.
  4. Rol tablosunda Log Analytics Contributor öğesini seçin, ardından İleri öğesini seçin
  5. Yönetilen kimlik'i ve ardından Üye seç'i seçin.
  6. Veri gölünüzün yönetilen kimliği, adı msg-resources-<guid> olan sistem tarafından atanan bir yönetilen kimliktir. Yönetilen kimliği ve ardından Seç'i seçin.
  7. Gözden geçir ve ata seçin.

Yönetilen kimliklere rol atama hakkında daha fazla bilgi için bkz. Azure portal kullanarak Azure rolleri atama.

Visual Studio Code ve Microsoft Sentinel uzantısını yükleme

Henüz Visual Studio Code yoksa Mac, Linux veya Windows için Visual Studio Code indirip yükleyin.

Visual Studio Code (VS Code) için Microsoft Sentinel uzantısı uzantı marketinden yüklenir. Uzantıyı yüklemek için şu adımları izleyin:

  1. Sol araç çubuğunda Uzantılar Marketi'ni seçin.
  2. Sentinel arayın.
  3. Microsoft Sentinel uzantısını ve ardından Yükle'yi seçin.
  4. Uzantı kurulduktan sonra, Microsoft Sentinel Imajı Microsoft Sentinel Imajı sol alet çubuğunda Visual Studio Code araç çubuğu simgesinde görünür.

Uzantı pazar yerini gösteren ekran görüntüsü.

Not defterlerinde kod tamamlama ve önerileri etkinleştirmek için Visual Studio Code için GitHub Copilot uzantısını yükleyin.

  1. Uzantılar Marketi'nde GitHub Copilot arayın ve yükleyin.
  2. Yüklemeden sonra GitHub hesabınızı kullanarak GitHub Copilot oturum açın.

Veri gölü katman tablolarını keşfedin

Microsoft Sentinel uzantısını yükledikten sonra data lake tier tablolarını keşfetmeye ve verileri analiz etmek için Jupyter not defterleri oluşturmaya başlayabilirsiniz.

Microsoft Sentinel uzantısında oturum açın

Microsoft Sentinel uzantısında oturum açmak için şu adımları izleyin:

  1. Sol araç çubuğundaki uzantı açmak için kullanılan Microsoft Sentinel uzantı simgesinin Microsoft Sentinel Görselini Visual Studio Code simgesini seçin.

  2. "Microsoft Sentinel" uzantısı Microsoft'u kullanarak oturum açmak istiyor metnini içeren bir iletişim kutusu görüntülenir. İzin Ver'i seçin.

    Oturum açma iletişim kutusunu gösteren ekran görüntüsü.

  3. Oturum açma işlemini tamamlamak için hesap adınızı seçin.

    Sayfanın en üstündeki hesap seçim listesini gösteren ekran görüntüsü.

    Oturum açma bilgilerinizle ilişkilendirilmiş birden çok konuk hesabınız varsa hesaplar arasında sorunsuz bir şekilde geçiş yapabilirsiniz. Hesaplar arasında geçiş yapmak için Visual Studio Code penceresinin sol alt kısmındaki hesap adını seçin. Aynı anda yalnızca bir hesap seçilebilir.

    Visual Studio Code hesap değiştirme işlemini gösteren ekran görüntüsü.

    Önemli

    Hesaplar arasında geçiş yapmak, etkin pyspark oturumlarının bağlantısını keser.

Data Lake tablolarını ve işlerini görüntüleme

Oturum açtığınızda, Sentinel uzantısı sol bölmede Lake tabloları ve İşler listesini görüntüler. Tablolar veritabanına ve kategoriye göre gruplandırılır. Federasyon tabloları, Sistemtabloları altındaki Federasyon tabloları kategorisi altında görüntülenir. Sütun tanımlarını görmek için bir tablo seçin.

Defter işleri planlama hakkında bilgi için, bu makaledeki defter işleri ve programlarını Oluştur ve yönet bölümüne bakabilirsiniz. Federasyon tabloları hakkında daha fazla bilgi için bkz. Microsoft Sentinel veri gölünde federasyon tablolarını kullanma.

Sol bölmede Lake tablolarını ve İşler’i, ayrıca seçili tablonun meta verilerini gösteren Sentinel uzantısının ekran görüntüsü.

Yeni not defteri oluşturma

Visual Studio Code'ta yeni bir Jupyter defteri oluşturmak için şu adımları izleyin:

  1. Yeni bir not defteri oluşturmak için aşağıdaki yöntemlerden birini kullanın.

  2. Arama kutusuna girin > veya Ctrl+Shift+P tuşlarına basın ve ardından Yeni Jupyter Notebook Oluştur yazın. Arama çubuğundan yeni not defterinin nasıl oluşturulacağını gösteren ekran görüntüsü.

  3. Dosya > Yeni Dosya'yı seçin, ardından açılır listeden Jupyter Notebook'u seçin.
    Dosya menüsünde yeni bir not defterinin nasıl oluşturulacağını gösteren ekran görüntüsü.

  4. Yeni not defterinde aşağıdaki kodu ilk hücreye yapıştırın.

    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)
    

    Editör, hem MicrosoftSentinelProvider sınıfı hem de veri gölündeki tablo adları için IntelliSense kod tamamlama sağlar.

  5. Kodu not defterinde yürütmek için Çalıştır üçgenini seçin. Sonuçlar, kod hücresinin altındaki çıkış bölmesinde görüntülenir.
    Bir notebook hücresinin nasıl çalıştırılacağını gösteren ekran görüntüsü.

  6. Çalışma zamanı havuzları listesi için listeden Microsoft Sentinel seçin. Çalışma zamanı seçicisini gösteren ekran görüntüsü.

  7. Not defterini orta büyüklükteki çalışma zamanı havuzunda çalıştırmak için Orta'ya tıklayın. Farklı çalışma zamanları hakkında daha fazla bilgi için bkz. Uygun çalışma zamanı havuzunu seçme. Çalıştırma havuzu boyut seçicisini gösteren ekran görüntüsü.

Not

Çekirdeğin seçilmesi Spark oturumunu başlatır ve kodu not defterinde çalıştırır. Havuzu seçtikten sonra oturumun başlaması 3-5 dakika sürebilir. Oturum zaten etkin olduğundan, sonraki çalıştırmalar daha hızlıdır.

Oturum başlatıldığında, not defterindeki kod çalışır ve sonuçlar kod hücresinin altındaki çıkış bölmesinde görüntülenir; örneğin: Not defteri hücresi çalıştırmanın sonuçlarını gösteren ekran görüntüsü.

Microsoft Sentinel veri gölüyle nasıl etkileşim kurulduğunu gösteren örnek not defterleri için bkz. Microsoft Sentinel data lake için örnek not defterleri.

Durum çubuğundan not defteri durumunu izleme

Not defterinin altındaki durum çubuğu, not defterinin geçerli durumu ve Spark oturumu hakkında bilgi sağlar. Durum çubuğu aşağıdaki bilgileri içerir:

  • Seçili Spark havuzu için sanal çekirdek kullanım yüzdesi. Kullanılan vCore sayısını ve havuzda kullanılabilen toplam vCore sayısını görmek için yüzdenin üzerine gelin. Yüzdeler, oturum açılan hesap için etkileşimli ve toplu iş iş yüklerindeki mevcut kullanımı temsil eder.

  • Spark oturumunun bağlantı durumu, örneğin Connecting, Connectedveya Not Connected.

Not defterinin altındaki durum çubuğunu gösteren ekran görüntüsü.

Oturum zaman aşımlarını ayarlama

Etkileşimli not defterleri için oturum zaman aşımı ve zaman aşımı uyarılarını ayarlayabilirsiniz. Bu ayarlar, oturumlar arasında korunmaları için uzantı ayarlarında kalıcı hale gelir.

Zaman aşımını değiştirmek için not defterinin altındaki durum çubuğunda bağlantı durumunu seçin. Aşağıdaki seçeneklerden birini belirleyin:

  • Oturum zaman aşımı süresini ayarlama: Oturum zaman aşımına uğramadan önce dakika cinsinden süreyi ayarlar. Varsayılan değer 30 dakikadır.

  • Oturum zaman aşımı süresini sıfırla: Oturum zaman aşımını varsayılan değer olan 30 dakikaya sıfırlar.

  • Oturum zaman aşımı uyarı süresini ayarla: Zaman aşımından birkaç dakika önce oturumun zaman aşımına uğramak üzere olduğunu belirten bir uyarı görüntülenir. Varsayılan değer 5 dakikadır.

  • Oturum zaman aşımı uyarı süresini sıfırla: Oturum zaman aşımı uyarısını varsayılan 5 dakika değerine sıfırlar.

    Oturum zaman aşımı ayarını gösteren ekran görüntüsü.

Not defterlerinde GitHub Copilot kullanma

Not defterlerine kod yazmanıza yardımcı olması için GitHub Copilot kullanın. GitHub Copilot, kodunuzun bağlamını temel alan kod önerileri ve otomatik tamamlama sağlar. GitHub Copilot kullanmak için Visual Studio Code'da GitHub Copilot uzantısının yüklü olduğundan emin olun.

Microsoft Sentinel data lake için örnek not defterlerinden kod kopyalayın ve GitHub Copilot bağlamı sağlamak için not defterleri klasörünüzde kaydedin. GitHub Copilot daha sonra not defterinizin bağlamını temel alarak kod tamamlamaları önerebilir.

Aşağıdaki örnek, GitHub Copilot’un bir kod incelemesi oluşturduğunu gösterir.

GitHub Copilot'un bir kod incelemesi oluşturduğunu gösteren ekran görüntüsü.

Microsoft Sentinel Provider sınıfını kullanın

Microsoft Sentinel veri gölüne bağlanmak için sınıfını MicrosoftSentinelProvider kullanın. MicrosoftSentinelProvider sınıfı modülün sentinel_lake.providers bir parçasıdır ve veri gölüyle etkileşime geçmek için yöntemler sağlar. Spark notebookunuzu Microsoft Sentinel veri gölü tablolarına bağlamak için sınıfı içe aktarın ve bir spark oturum kullanarak bir örnek oluşturun. Aşağıdaki kod, Sentinel Lake veri sağlayıcısını başlatır ve böylece defter Spark'tan Microsoft Sentinel tablolarını sorgulayabilir:

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

Kullanılabilir yöntemler hakkında daha fazla bilgi için Microsoft Sentinel Sağlayıcı sınıfı başvurusuna bakın.

Uygun çalışma zamanı havuzunu seçin

Microsoft Sentinel uzantısında Jupyter not defterlerinizi çalıştırmak için kullanılabilecek üç çalışma zamanı havuzu vardır. Her havuz farklı iş yükleri ve performans gereksinimleri için tasarlanmıştır. Çalışma zamanı havuzu seçimi Spark işlerinizin performansını, maliyetini ve yürütme süresini etkiler.

Çalışma Zamanı Havuzu Önerilen Kullanım Örnekleri Özellikler
Küçük Geliştirme, test ve basit keşif analizi.
Basit dönüştürmelerle küçük iş yükleri.
Maliyet verimliliği önceliklendirildi.
Küçük iş yükleri için uygundur
Basit dönüştürmeler.
Daha düşük maliyet, daha uzun yürütme süresi.
Orta Birleştirmeler, toplamalar ve ML modeli eğitimi içeren ETL işleri.
Karmaşık dönüşümler içeren orta düzey iş yükleri.
Small'a göre geliştirilmiş performans.
Paralel işlemleri ve orta düzeyde bellek yoğun işlemleri işler.
Büyük Derin öğrenme ve ML iş yükleri.
Kapsamlı veri karıştırma, büyük birleştirmeler veya gerçek zamanlı işleme.
Kritik çalıştırma süresi.
Yüksek bellek ve işlem gücü.
Çok az gecikme.
Büyük, karmaşık veya zamana duyarlı iş yükleri için en iyi yöntemdir.

Not

İlk erişildiğinde çekirdek seçeneklerinin yüklenmesi yaklaşık 30 saniye sürebilir.
Çalışma zamanı havuzunu seçtikten sonra oturumun başlatılması 3-5 dakika sürebilir.

İletileri, günlükleri ve hataları görüntüleme

İleti günlükleri ve hata iletileri Visual Studio Code üç alanda görüntülenir.

  1. Çıkış bölmesi.

    1. Çıkış bölmesinde, açılan listeden Microsoft Sentinel seçin.
    2. Ayrıntılı günlük girdilerini eklemek için Hata Ayıklama seçeneğini seçin.

    Çıkış bölmesini gösteren ekran görüntüsü.

  2. Not defterindeki satır içi iletiler, kod hücrelerinin yürütülmesi hakkında geri bildirim ve bilgi sağlar. Bu iletiler yürütme durumu güncelleştirmelerini, ilerleme göstergelerini ve önceki hücredeki kodla ilgili hata bildirimlerini içerir

  3. Visual Studio Code’un sağ alt köşesinde bulunan ve bildirim iletisi olarak da bilinen bildirim açılır penceresi, not defteri ile Spark oturumundaki işlemlerin durumu hakkında gerçek zamanlı uyarılar ve güncellemeler sağlar. Bu bildirimler arasında iletiler, uyarılar ve spark oturumuna başarılı bağlantı gibi hata uyarıları ve zaman aşımı uyarıları yer alır.

    Toast bildirimi ve satır içi hata iletisini gösteren ekran görüntüsü.

Not defteri işlerini ve zamanlamalarını oluşturma ve yönetme

Visual Studio Code için Microsoft Sentinel uzantısını kullanarak işleri belirli zamanlarda veya aralıklarla çalışacak şekilde zamanlayabilirsiniz. İşler, Microsoft Sentinel veri gölündeki verileri özetlemek, dönüştürmek veya analiz etmek için veri işleme görevlerini otomatikleştirmenize olanak tanır. İşler ayrıca verileri işlemek ve sonuçları data lake katmanı veya analiz katmanındaki özel tablolara yazmak için de kullanılır. İşleri oluşturma ve yönetme hakkında daha fazla bilgi için bkz. Jupyter not defteri işlerini oluşturma ve yönetme.

VS Code Notebook'ları için hizmet parametreleri ve sınırları

Aşağıdaki bölümde, VS Code Not Defterleri kullanılırken Microsoft Sentinel veri gölü için hizmet parametreleri ve sınırları listelanmaktadır.

Kategori Parametre/sınır
Analiz katmanındaki özel tablo Analiz katmanındaki özel tablolar not defterinden silinemez; Bu tabloları silmek için Log Analytics'i kullanın. Daha fazla bilgi için bkz. Azure İzleyici Günlüklerinde tablo ve sütun ekleme veya silme
Ağ geçidi web yuvası zaman aşımı 2 saat
Etkileşimli sorgu zaman aşımı 2 saat
Etkileşimli oturum etkinlik dışı zaman aşımı 20 dakika
Dil Python
Graf sorgusu zaman aşımı 7,5 dakika
Notebook görevi zaman aşımı 8 saat
En fazla eşzamanlı not defteri görevi 3, izleyen işler kuyruğa alınır
Etkileşimli sorgulamada maksimum eşzamanlı kullanıcı sayısı Büyük havuzda 8-10
Oturum başlatma zamanı Spark işlem oturumlarının başlatılması yaklaşık 5-6 dakika sürer. Oturumun durumunu VS Code not defterinizin alt kısmında görüntüleyebilirsiniz.
Desteklenen kitaplıklar Data Lake'i sorgulamak için yalnızca 3.4 Azure Synapse kitaplıkları ve soyutlanmış işlevler için Microsoft Sentinel Sağlayıcısı kitaplığı desteklenir. Pip yüklemeleri veya özel kitaplıklar desteklenmez.
VS Code UX’te kayıt görüntüleme sınırı 100.000 satır

Sorun giderme

Not defterleriyle çalışırken sık karşılaşılan hatalar ve çözümler için bkz. Microsoft Sentinel veri gölündeki not defterlerinde sorun giderme.