Aracılığıyla paylaş


Databricks Uygulamaları için Günlüğe Kaydetme ve İzleme

Etkin günlüğe kaydetme ve izleme, Databricks Uygulamalarında güvenlik olaylarını algılamanıza ve yanıtlamanıza yardımcı olur. Uygulamalar hem uygulama düzeyinde günlükler hem de tanılama, performans izleme ve güvenlik analizi için kullanabileceğiniz platform denetim günlükleri oluşturur.

Uygulama günlükleri

Günlükleri Databricks Uygulamaları kullanıcı arabiriminde veya uygulamanızın URL'si aracılığıyla kullanılabilir hale getirmek için stdout , uygulamanızın ve stderröğesine çıkış yazması gerekir.

Uygulama günlüklerine aşağıdaki yollarla erişin:

  • Uygulamalar kullanıcı arabirimi: Uygulama ayrıntıları sayfasında, standart çıkışı ve hatayı görüntülemek için Günlükler sekmesine tıklayın. Ayrıntılar için bkz. Databricks uygulamasının ayrıntılarını görüntüleme.
  • Doğrudan URL: Uygulama URL'nize ekleyin /logz . Örneğin, uygulamanızın URL'si https://my-app-1234567890.my-instance.databricksapps.com ise, günlükler https://my-app-1234567890.my-instance.databricksapps.com/logz adresinde kullanılabilir.

Uyarı

Azure Databricks, uygulama hesaplama işlemleri kapandığında günlükleri kalıcı hale getirmez. Kalıcı günlük kaydı için dış günlük hizmetleriyle tümleştirin veya Unity Kataloğu birimlerine veya tablolarına günlükler yazın.

Dış log tutma hizmetleriyle entegrasyon

Kalıcı günlük kaydı ve gelişmiş izleme özellikleri için aşağıdakileri kullanın:

  • Uygulama Performansı İzleme (APM) araçları: Günlükleri, ölçümleri ve izlemeleri toplamak ve analiz etmek için New Relic, Datadog veya benzer uygulama performansı izleme araçlarını kullanın.
  • Özel günlük kalıcılığı: Uzun süreli depolama ve analiz için günlükleri düzenli aralıklarla Unity Kataloğu birimlerine veya tablolarına yazın.

Günlük biçimlendirmesi ve içeriği hakkında yönergeler için bkz. Önerilen günlük uygulamaları .

Dış izleme ve gerçek zamanlı uyarı sistemleriyle tümleştirmek için:

  • Günlükleri JSON veya diğer makine ayrıştırılabilir biçimlerde biçimlendirin.
  • Güvenlikle ilgili olayları bağlamla günlüğe kaydetme:
    • Kullanıcı kimliği ve sonucu da dahil olmak üzere kimlik doğrulaması ve yetkilendirme olayları
    • Katalog, şema ve tablo adları gibi veri erişim ayrıntıları
    • Geçersiz belirteçler, izin reddi ve şüpheli etkinlik gibi güvenlikle ilgili hatalar
  • Günlükleri dış sistemlere iletin. Gerçek zamanlı uyarıları, güvenlik olayı yanıtlarını, kullanım ve performans analizini ve Azure Databricks sistem günlükleriyle bağıntıyı desteklemek için APM veya günlük toplama araçlarıyla tümleştirin.

Günlüğe kaydetmeyle ilgili güvenlik konuları

Databricks uygulamaları, veri sızdırmayı önlemek için aşağıdaki yerleşik denetimlerle tasarlanmıştır:

  • Yalnızca API erişimi: Uygulamalar Azure Databricks kaynaklarına yalnızca genel Azure Databricks API'leri aracılığıyla erişebilir. Bu API'ler sistem tablo günlükleri aracılığıyla denetlenebilir.
  • Şifrelenmiş iletişim: Güvenli veri aktarımı sağlamak için tüm API trafiği TLS 1.2 veya üzeri kullanılarak şifrelenir.

Sistem tablolarıyla güvenlik izleme

Azure Databricks, tablodaki system.access.audit uygulamayla ilgili etkinlikler için denetim günlüklerini yakalar. Kullanıcı eylemlerini, uygulama yapılandırma değişikliklerini ve güvenlik olaylarını izlemek için bu günlükleri sorgulayabilirsiniz.

Güvenlikle ilgili etkinlikleri izlemek ve uygulamalarınızla ilgili olası sorunları algılamak için aşağıdaki sorguları kullanın.

Uygulama izin değişikliklerini izleme

Uygulama izni değişikliklerini algılamak için bu sorguyu kullanın:

-- Monitor all app permission modifications in the last 30 days
WITH permission_changes AS (
  SELECT
    event_date,
    workspace_id,
    request_params.request_object_id AS app_name,
    user_identity.email AS modified_by,
    explode(from_json(
      request_params.access_control_list,
      'array<struct<user_name:string,group_name:string,permission_level:string>>'
    )) AS permission
  FROM system.access.audit
  WHERE action_name = 'changeAppsAcl'
    AND event_date >= current_date() - 30
)
SELECT
  event_date,
  app_name,
  modified_by,
  permission.user_name,
  permission.group_name,
  permission.permission_level
FROM permission_changes
ORDER BY event_date DESC

Kullanıcı API'si kapsamlarına sahip uygulamaları tanımlama

Kullanıcı API kapsamları yapılandırılmış uygulamaları bulmak için bu sorguyu kullanın:

-- Find apps created or updated in the last 30 days with user API scopes configured
SELECT
  event_date,
  get_json_object(request_params.app, '$.name') AS app_name,
  user_identity.email AS creator_email,
  get_json_object(request_params.app, '$.user_api_scopes') AS user_api_scopes
FROM system.access.audit
WHERE
  action_name IN ('createApp', 'updateApp')
  AND get_json_object(request_params.app, '$.user_api_scopes') IS NOT NULL
  AND event_date >= current_date() - INTERVAL 30 DAYS

Kullanıcı yetkilendirme eylemlerini izleme

Kullanıcı yetkilendirmesi ile gerçekleştirilen uygulama eylemlerini listelemek için bu sorguyu kullanın:

-- List app actions performed on behalf of users in the last 30 days
WITH obo_events AS (
  SELECT
    event_date,
    workspace_id,
    audit_level,
    identity_metadata.acting_resource AS app_id,   -- OAuth App ID or name
    user_identity.email AS user_email,             -- Logged-in user
    service_name,
    action_name
  FROM system.access.audit
  WHERE event_date >= current_date() - 30
    AND identity_metadata.acting_resource IS NOT NULL
)
SELECT
  event_date,
  app_id,
  user_email,
  service_name,
  action_name,
  audit_level,
  COUNT(*) AS event_count
FROM obo_events
GROUP BY
  event_date, app_id, user_email, service_name, action_name, audit_level
ORDER BY event_date DESC;

İşletimsel izleme

Maliyet ve kaynak kullanımı gibi uygulamalarınızın işletimsel yönlerini izlemek için sistem tablolarını kullanın.

Uygulama maliyetlerini izleme

Tabloyu kullanarak system.billing.usage Databricks Apps maliyetlerini izleyin. Uygulamalar için günlük veya ay başına doğru maliyet bilgilerini almak için aşağıdaki sorguyu kullanın:

-- Get Databricks Apps cost by app per day for the last 30 days
SELECT
  us.usage_date,
  us.usage_metadata.app_id,
  us.usage_metadata.app_name,
  SUM(us.usage_quantity) AS dbus,
  SUM(us.usage_quantity * lp.pricing.effective_list.default) AS dollars
FROM
  system.billing.usage us
LEFT JOIN system.billing.list_prices lp
  ON lp.sku_name = us.sku_name
  AND us.usage_start_time BETWEEN lp.price_start_time AND COALESCE(lp.price_end_time, NOW())
WHERE
  billing_origin_product = 'APPS'
  AND us.usage_unit = 'DBU'
  AND us.usage_date >= DATE_SUB(NOW(), 30)
GROUP BY ALL

Databricks Apps, maliyetleri izlemeye yardımcı olmak için bütçe ilkelerini destekler. Bütçe ilkelerini yapılandırma hakkında bilgi için bkz . Sunucusuz bütçe ilkeleriyle öznitelik kullanımı.

Uygulama içgörülerini izleme

Önemli

İçgörüler sekmesi Beta sürümündedir.

Uygulama ayrıntıları sayfasındaki İçgörüler sekmesinde kullanıcı etkileşimi ve uygulama kullanılabilirliği gösterilir.

İzleyici takibi

Görüntüleyiciler tablosu, uygulamanıza erişen kullanıcıları izler.

Azure Databricks, kullanıcı uygulamaya uygulama URL'si veya API erişimi aracılığıyla eriştiğinde bir görünüm olayı kaydeder. Verileri kullanıcı başına, uygulama başına benzersiz olarak depolar. Aynı kullanıcı tarafından yapılan sonraki ziyaretler, yeni bir satır oluşturmak yerine önceki kaydın üzerine yazılır.

Son görüntülenen zaman damgası, 30 dakikalık OAuth oturumu yenileme döngüsünü izler. Oturum penceresindeki birden çok ziyaret, ilk ziyaret süresini korur, ancak oturum sona erdikten sonraki ilk erişim, yeni ziyaret saatiyle zaman damgasının üzerine yazar.

Uyarı

Beta sürümünde, son görüntülenen saat yalnızca Eşgüdümlü Evrensel Saati (UTC) gösterir.

Çalışma süresi ve sağlık durumu

Uygulama kullanılabilirliği sorunlarını gidermek için aşağıdaki sistem durumu sinyallerini izleyin.

  • Uygulama hizmeti durumu: Uygulamayı destekleyen Azure Databricks altyapısının kullanılabilir olup olmadığı. Kullanılamıyorsa, platformda hizmet düzeyinde bir sorun vardır. Databricks Desteği'ne başvurun.
  • Uygulama kullanılabilirliği: Belirli bir uygulamanın isteklere hizmet verip vermediği. Kullanılamıyorsa, kodunuzda hata veya çökme olup olmadığını kontrol edin.