Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Jupyter not defterleri, Microsoft Sentinel veri gölündeki verileri keşfetmek, çözümlemek ve görselleştirmek için etkileşimli bir ortam sağlar. Not defterleri ile kod yazıp yürütebilir, iş akışınızı belgeleyebilir ve sonuçları tek bir yerden görüntüleyebilirsiniz. Bu, veri keşfi gerçekleştirmeyi, gelişmiş analiz çözümleri oluşturmayı ve içgörüleri başkalarıyla paylaşmayı kolaylaştırır. Not defterleri, Visual Studio Code'da 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'da 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 ekleme
Microsoft Sentinel veri gölündeki not defterlerini kullanmak için önce veri gölüne eklemeniz gerekir. Eğer Sentinel veri gölüne kayıt yaptırmadıysanız, bkz. Microsoft Sentinel veri gölüne kaydolma. Kısa süre önce veri gölüne erişim sağladıysanız, notebook'ları kullanarak anlamlı analizler oluşturabilmeniz için yeterli miktarda veri alınması biraz zaman alabilir.
İzinler
Microsoft Entra ID rolleri, veri gölündeki tüm çalışma alanları genelinde 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ında Azure RBAC izinlerine sahip kullanıcılar, data lake katmanındaki bu çalışma alanlarında not defterlerini çalıştırabilir. Daha fazla bilgi için Microsoft Sentinel'deki roller ve izinler bölümüne bakın.
Analiz katmanında yeni özel tablolar oluşturmak için data lake yönetilen kimliğine Log Analytics çalışma alanında Log Analytics Katkıda Bulunanı rolü atanmalıdır.
Rolü atamak için aşağıdaki adımları izleyin:
- Azure portalında, rolü atamak istediğiniz Log Analytics çalışma alanına gidin.
- Sol gezinti bölmesinde Erişim denetimi (IAM) öğesini seçin.
- Rol ataması ekle’yi seçin.
- Rol tablosunda Log Analytics Katılımcısı'nı seçin, ardından Sonraki'yi seçin.
- Yönetilen kimlik'i ve ardından Üye seç'i seçin.
- Veri gölü yönetilen kimliğiniz,
msg-resources-<guid>adlı sistem tarafından atanan bir yönetilen kimliktir. Yönetilen kimliği ve ardından Seç'i seçin. - Gözden geçir ve ata seçin.
Yönetilen kimliklere rol atama hakkında daha fazla bilgi için bkz. Azure portalını kullanarak Azure rolleri atama.
Visual Studio Code'u ve Microsoft Sentinel uzantısını yükleme
Henüz Visual Studio Code'nuz yoksa Mac, Linux veya Windows için Visual Studio Code'u indirip yükleyin.
Visual Studio Code (VS Code) için Microsoft Sentinel uzantısı uzantılar marketinden yüklenir. Uzantıyı yüklemek için şu adımları izleyin:
- Sol araç çubuğunda Uzantılar Marketi'ni seçin.
- Sentinel'i arayın.
- Microsoft Sentinel uzantısını ve ardından Yükle'yi seçin.
- Uzantı yüklendikten sonra, sol araç çubuğunda Microsoft Sentinel kalkanı simgesi görünür.
Not defterlerinde kod tamamlama ve önerileri etkinleştirmek için Visual Studio Code için GitHub Copilot uzantısını yükleyin.
- Uzantılar Marketi'nde GitHub Copilot'ı arayın ve yükleyin.
- Yüklemeden sonra GitHub hesabınızı kullanarak GitHub Copilot'ta oturum açın.
Data Lake katmanı tablolarını keşfetme
Microsoft Sentinel uzantısını yükledikten sonra data lake katmanı 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
Sol araç çubuğunda Microsoft Sentinel kalkanı simgesini seçin.
"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 işlemini tamamlamak için hesap adınızı seçin.
Data Lake tablolarını ve işlerini görüntüleme
Oturum açtığınızda Sentinel uzantısı sol bölmede Lake tablolarının ve İşlerin listesini görüntüler. Tablolar veritabanına ve kategoriye göre gruplandırılır. Sütun tanımlarını görmek için bir tablo seçin.
İşler hakkında bilgi için bkz. İşler ve Zamanlama.
Yeni not defteri oluşturma
Yeni bir not defteri oluşturmak için aşağıdaki yöntemlerden birini kullanın.
Arama kutusuna yazın > veya Ctrl+Shift+P tuşlarına basın ve ardından Yeni Jupyter Not Defteri Oluştur yazın.
Yeni bir dosya oluşturmak için > Dosya menüsünden Yeni Dosya'yı seçin ve ardından açılan listeden Jupyter Not Defteri seçin.
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.select("displayName", "groupTypes", "mail", "mailNickname", "description", "tenantId").show(100, truncate=False)
Düzenleyici, hem MicrosoftSentinelProvider sınıfı hem de veri gölündeki tablo adları için IntelliSense kod tamamlama sağlar.
Kodu not defterinde yürütmek için Üçgen çalıştır'ı seçin. Sonuçlar, kod hücresinin altındaki çıkış bölmesinde görüntülenir.
Çalışma zamanı havuzlarının listesi için listeden Microsoft Sentinel'i seçin.
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 Microsoft Sentinel çalışma zamanını seçme.
Uyarı
Çekirdeğin seçilmesi Spark oturumunu başlatır ve kodu not defterinde çalıştırır. Havuzu seçtikten sonra oturumun başlatılması 3-5 dakika sürebilir. Oturum zaten etkin olduğundan sonrakiler daha hızlı gerçekleşir.
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:
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ğu
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. Sanal çekirdek sayısını ve havuzda mevcut toplam sanal çekirdek sayısını görmek için yüzde değerinin üzerine gelin. Yüzdeler, oturum açmış hesabın etkileşimli iş yükü ve iş yükü arasındaki mevcut kullanımı temsil eder.
Spark oturumunun bağlantı durumu, örneğin
Connecting,ConnectedveyaNot Connected.
Oturum zaman aşımlarını ayarlama
Etkileşimli not defterleri için oturum zaman aşımı ve zaman aşımı uyarılarını ayarlayabilirsiniz. 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 seçin:
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 30 dakika değerine sıfırlar.
Oturum zaman aşımı uyarı süresini ayarlama: Zaman aşımından önce oturumun zaman aşımına uğramak üzere olduğuna ilişkin bir uyarının görüntülendiği süreyi dakika cinsinden ayarlar. 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 değer olan 5 dakikaya sıfırlar.
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 kodu kopyalayın ve GitHub Copilot bağlamını 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 örnekte GitHub Copilot'ın kod incelemesi oluşturması gösterilmektedir.
Microsoft Sentinel Provider sınıfı
Microsoft Sentinel veri gölüne bağlanmak için sınıfını SentinelLakeProvider kullanın.
Bu sınıf modülün access_module.data_loader bir parçasıdır ve veri gölüyle etkileşime geçmek için yöntemler sağlar. Bu sınıfı kullanmak için, sınıfı içeri aktarın ve bir oturum kullanarak sınıfın bir spark örneğini oluşturun.
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
Kullanılabilir yöntemler hakkında daha fazla bilgi için bkz. Microsoft Sentinel Sağlayıcı sınıfı başvurusu.
Uygun çalışma zamanı havuzunu seçin
Jupyter not defterlerinizi Microsoft Sentinel uzantısında çalıştırmak için kullanabileceğiniz üç ç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ürmeleri olan küçük iş yükleri. Maliyet verimliliği önceliklendirildi. |
Küçük iş yükleri için uygundur Basit dönüşümler. 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üşümlerle iş yükleri hafiflet. |
Small'a göre geliştirilmiş performans. Paralellik ve orta düzeyde bellek yoğunluklu 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ışma süresi. |
Yüksek bellek ve işlem gücü. En az gecikme. Büyük, karmaşık veya zamana duyarlı iş yükleri için en iyi yöntemdir. |
Uyarı
İ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'da üç alanda görüntülenir.
Çıkış bölmesi.
- Çıkış bölmesinde, açılan listeden Microsoft Sentinel'i seçin.
- Ayrıntılı günlük girdilerini eklemek için Hata Ayıkla seçeneğini seçin.
Not defterindeki satır içi iletiler, kod hücrelerinin yürütülmesi hakkında geri bildirim ve bilgi sağlar. Bu iletiler, önceki hücredeki kodla ilgili yürütme durumu güncelleştirmelerini, ilerleme göstergelerini ve hata bildirimlerini içerir
Visual Studio Code'un sağ alt köşesindeki bildirim açılır penceresi, tost mesajı olarak da bilinir ve gerçek zamanlı olarak not defteri ve Spark oturumundaki işlemlerin durumu hakkında uyarılar ve güncellemeler sağlar. Bu bildirimler arasında spark oturumuna başarılı bağlantı ve zaman aşımı uyarıları gibi iletiler, uyarılar ve hata uyarıları yer alır.
İşler ve zamanlama
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ştirmenizi sağlar. Veri işleme görevleri ayrıca verileri işlemek ve sonuçları veri gölü katmanında 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 Not Defterleri için hizmet parametreleri ve sınırları
Aşağıdaki bölümde, VS Code Notebooks kullanılırken Microsoft Sentinel data lake 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 | Piton |
| Not defteri işi zaman aşımı | 8 saat |
| En fazla eşzamanlı not defteri görevleri | 3, izleyen işler kuyruğa alınır |
| Etkileşimli sorgulama üzerindeki en fazla 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. VS Code Not Defterinizin en altında oturumun durumunu görüntüleyebilirsiniz. |
| Desteklenen kitaplıklar | Data Lake'i sorgulamak için yalnızca Azure Synapse kitaplıkları 3.4 ve soyut işlevler için Microsoft Sentinel Sağlayıcı kitaplığı desteklenir. Pip yüklemeleri veya özel kitaplıklar desteklenmez. |
| Kayıtları görüntülemek için VS Code UX sınırı | 100.000 satır |
Sorun giderme
Aşağıdaki tabloda not defterleriyle çalışırken karşılaşabileceğiniz yaygın hatalar, bunların kök nedenleri ve bunları çözmek için önerilen eylemler listelenmektedir.
| Hata Kategorisi | Hata Adı | Hata Kodu | Hata mesajı | Önerilen Eylem |
|---|---|---|---|---|
| DatabaseError | VeritabanıBulunamadı | 2001 | {DatabaseName} veritabanı bulunamadı. | Veritabanının var olduğunu doğrulayın. Veritabanı yeniyse meta veri yenilemesini bekleyin. |
| DatabaseError | AmbiguousDatabaseName | 2002 | Çeşitli veritabanları (kimlikler: {DatabaseID1}, {DatabaseID2}, ...) {DatabaseName} adını paylaşır. Belirli bir veritabanı kimliği sağlayın. | Aynı ada sahip birden çok veritabanı olduğunda bir veritabanı kimliği belirtin. |
| DatabaseError | VeritabanıIdUyuşmazlığı | 2003 | Veritabanı ({DatabaseName}, Kimliği {DatabaseID}) bulunamadı. | Hem veritabanı adını hem de kimliğini denetleyin. Veritabanı kimliklerini almak için tüm veritabanlarını listeleyin. |
| DatabaseError | VeritabanlarınıListelemeHatası | 2004 | Veritabanları getirilemiyor. Oturumu yeniden başlatın ve yeniden deneyin. | Oturumu yeniden başlatın ve birkaç dakika sonra işlemi yeniden deneyin. |
| Tablo Hatası | TabloMevcutDeğil | 2100 | {TableName} tablosu {DatabaseName} veritabanında bulunamadı. | Tablonun veritabanında mevcut olduğunu doğrulayın. Tablo veya veritabanı yeniyse, birkaç dakika bekleyin ve yeniden deneyin. |
| Tablo Hatası | SağlamaTamamlanmamış | 2101 | {TableName} tablosu hazır değil. Yeniden denemeden önce birkaç dakika bekleyin. | Tablo yapılandırılıyor. Yeniden denemeden önce birkaç dakika bekleyin. |
| Tablo Hatası | DeltaTableMissing | 2102 | {TableName} tablosu boş. Yeni tabloların hazır olması birkaç saat kadar sürebilir. | Bir analiz tablosunun veri gölüne tam olarak eşitlenmesi birkaç saat sürebilir. Yalnızca veri gölündeki tablolar için verilerin yüklenmesi veya geri yüklenmesi gerekip gerekmediğini denetleyin. |
| Tablo Hatası | Silme için tablo mevcut değil | 2103 | Tablo silinemiyor. {TableName} tablosu bulunamadı. | Tablonun veritabanında mevcut olduğunu doğrulayın. Tablo veya veritabanı yeniyse, birkaç dakika bekleyin ve yeniden deneyin. |
| Yetkilendirme Hatası | SAS Token Eksik | 2201 | Tabloya erişilemiyor. Oturumu yeniden başlatın ve yeniden deneyin. | Tablo için erişim belirteci alınmaya çalışırken yetkilendirme hatası oluştu. Oturumu yeniden başlatın ve yeniden deneyin. |
| Yetkilendirme Hatası | InvalidSASToken | 2202 | Tabloya erişilemiyor. Oturumu yeniden başlatın ve yeniden deneyin. | Tablo için erişim belirteci alınmaya çalışırken yetkilendirme hatası oluştu. Oturumu yeniden başlatın ve yeniden deneyin. |
| Yetkilendirme Hatası | Token Süresi Doldu | 2203 | Tabloya erişilemiyor. Oturumu yeniden başlatın ve yeniden deneyin. | Tablo için erişim belirteci alınmaya çalışırken yetkilendirme hatası oluştu. Oturumu yeniden başlatın ve yeniden deneyin. |
| Yetkilendirme Hatası | TabloYetersizİzinler | 2204 | {DatabaseName} veritabanındaki {TableName} tablosu için erişim gerekiyor. | Tabloya veya veritabanına (çalışma alanı) erişim istemek için bir yöneticiye başvurun. |
| Yetkilendirme Hatası | DahiliTabloErişimEngellendi | 2205 | {TableName} tablosuna erişim kısıtlandı. | Not defterinden yalnızca sistem veya kullanıcı tanımlı tablolara erişilebilir. |
| Yetkilendirme Hatası | TabloDoğrulamaHatası | 2206 | Tabloya veri kaydedilemiyor. Oturumu yeniden başlatın ve yeniden deneyin. | Verileri tabloya kaydetmeye çalışırken yetkilendirme başarısız oldu. Oturumu yeniden başlatın ve yeniden deneyin. |
| Yapılandırma Hatası | Hadoop Yapılandırma Hatası | 2301 | Oturum yapılandırması güncelleştirilemiyor. Oturumu yeniden başlatın ve yeniden deneyin. | Bu sorun geçicidir ve oturumu yeniden başlatıp yeniden deneyerek çözülebilir. Bu sorun devam ederse desteğe başvurun. |
| DataError | JsonParseHatası | 2302 | Tablo meta verileri bozulmuş. Yardım için desteğe başvurun. | Yardım için desteğe başvurun. Kiracı kimliğinizi, tablo adını ve veritabanı adını belirtin. |
| TabloŞemasıHatası | Tablo Şeması Uyumsuzluğu | 2401 | Hedef tabloda sütun bulunamadı. DataFrame şemasını ve hedef tabloyu hizalayın veya üzerine yazma modunu kullanın. | DataFrame şemasını hedef veritabanınızdaki tabloyla eşleşecek şekilde güncelleştirin. Tabloyu tamamen üzerine yazma modunda da değiştirebilirsiniz. |
| TabloŞemasıHatası | EksikGerekliSütunlar | 2402 | {ColumnName} sütunu DataFrame'de yok. DataFrame şemasını denetleyin ve hedef tabloyla hizalayın. | DataFrame şemasını hedef veritabanınızdaki tabloyla eşleşecek şekilde güncelleştirin. Tabloyu tamamen üzerine yazma modunda da değiştirebilirsiniz. |
| TabloŞemasıHatası | SütunTürüDeğişikliğineİzinVerilmiyor | 2403 | {ColumnName} sütununun veri türü değiştirilemez. | Sütun için veri türü değişikliğine izin verilmez. Hedef tablodaki mevcut sütunları denetleyin ve DataFrame'deki tüm veri türlerini hizalayın. |
| TabloŞemasıHatası | SütunBoşlukDeğişikliğiİzinVerilmiyor | 2404 | {ColumnName} sütununun null atanabilirliği değiştirilemez. | Sütunun null durumu ayarları güncellenemiyor. Hedef tabloyu denetleyin ve ayarları DataFrame ile hizalayın. |
| YüklemeHatası | KlasörOluşturmaHatası | 2501 | {TableName} tablosu için depolama oluşturulamıyor. | Bu sorun geçicidir ve oturumu yeniden başlatıp yeniden deneyerek çözülebilir. Bu sorun devam ederse desteğe başvurun. |
| YüklemeHatası | Alt İş İsteği Hatası | 2502 | {TableName} tablosu için alım işi oluşturulamıyor. | Bu sorun geçicidir ve oturumu yeniden başlatıp yeniden deneyerek çözülebilir. Bu sorun devam ederse desteğe başvurun. |
| YüklemeHatası | AltİşOluşturmaHatası | 2503 | {TableName} tablosu için alım işi oluşturulamıyor. | Bu sorun geçicidir ve oturumu yeniden başlatıp yeniden deneyerek çözülebilir. Bu sorun devam ederse desteğe başvurun. |
| InputError | GeçersizYazmaModu | 2601 | Geçersiz yazma modu. Ekleme veya üzerine yazma kullanın. | DataFrame'i kaydetmeden önce geçerli bir yazma modu (ekleme veya üzerine yazma) belirtin. |
| InputError | BölümlemeİzinYok | 2602 | Analiz tabloları bölümlenemez. | Analiz tablolarındaki tüm sütunlar için tüm bölümlemeleri kaldırın. |
| InputError | MissingTableSuffixLake | 2603 | Geçersiz özel tablo adı. Veri gölündeki özel tabloların tüm adları _SPRK ile bitmelidir. | Veri gölüne yazmadan önce tablo adına sonek olarak _SPRK ekleyin. |
| InputError | MissingTableSuffixLA | 2604 | Geçersiz özel tablo adı. Özel analiz tablolarının tüm adları _SPRK_CL ile bitmelidir. | Analiz depolama alanına yazmadan önce tablo adına sonek olarak _SPRK_CL ekleyin. |
| Bilinmeyen Hata | İç Sunucu Hatası | 2901 | Bir sorun oluştu. Oturumu yeniden başlatın ve yeniden deneyin. | Bu sorun geçicidir ve oturumu yeniden başlatıp yeniden deneyerek çözülebilir. Bu sorun devam ederse desteğe başvurun. |