Dela via


Loggning och övervakning för Databricks-appar

Effektiv loggning och övervakning hjälper dig att identifiera och svara på säkerhetshändelser i Databricks-appar. Appar genererar både loggar på programnivå och plattformsgranskningsloggar, som du kan använda för diagnostik, prestandaspårning och säkerhetsanalys.

Programloggar

För att göra loggar tillgängliga i användargränssnittet för Databricks-appar eller via appens URL måste appen skriva utdata till stdout och stderr.

Få åtkomst till programloggar på följande sätt:

  • Användargränssnitt för appar: På sidan appinformation klickar du på fliken Loggar för att visa standardutdata och -fel. Mer information finns i Visa information för en Databricks-app.
  • Direkt-URL: Lägg till i appens /logz URL. Om din app-URL till exempel är https://my-app-1234567890.my-instance.databricksapps.comär loggarna tillgängliga på https://my-app-1234567890.my-instance.databricksapps.com/logz.

Anmärkning

Azure Databricks bevarar inte loggar när appberäkningen stängs av. För beständig loggning kan du integrera med externa loggningstjänster eller skrivloggar till Unity Catalog-volymer eller -tabeller.

Integrera med externa loggningstjänster

Använd följande för beständiga loggnings- och avancerade övervakningsfunktioner:

  • APM-verktyg (Application Performance Monitoring): Använd nya verktyg för prestandaövervakning av Relic, Datadog eller liknande program för att samla in och analysera loggar, mått och spårningar.
  • Anpassad loggbeständighet: Skriv loggar periodvis till Unity Catalog-volymer eller -tabeller för långsiktig lagring och analys.

Se Rekommenderade loggningsmetoder för vägledning om loggformatering och innehåll.

Så här integrerar du med externa övervaknings- och realtidsaviseringssystem:

  • Formatera loggar i JSON eller andra datorparserbara format.
  • Logga säkerhetsreleventa händelser med kontext:
    • Autentiserings- och auktoriseringshändelser, inklusive användaridentitet och utfall
    • Information om dataåtkomst, till exempel katalog-, schema- och tabellnamn
    • Säkerhetsrelaterade fel, till exempel ogiltiga token, behörighetsnekanden och misstänkt aktivitet
  • Vidarebefordra loggar till externa system. Integrera med APM- eller loggaggregeringsverktyg för att stödja realtidsaviseringar, svar på säkerhetsincidenter, användning och prestandaanalys samt korrelation med Azure Databricks-systemloggar.

Säkerhetsöverväganden för loggning

Databricks-appar är utformade med följande inbyggda kontroller för att förhindra dataexfiltrering:

  • Endast API-åtkomst: Appar kan bara komma åt Azure Databricks-resurser via offentliga Azure Databricks-API:er. Dessa API:er kan granskas via systemtabellloggar.
  • Krypterad kommunikation: All API-trafik krypteras med TLS 1.2 eller senare för att säkerställa säker dataöverföring.

Säkerhetsövervakning med systemtabeller

Azure Databricks samlar in granskningsloggar för apprelaterade aktiviteter i system.access.audit tabellen. Du kan köra frågor mot loggarna för att spåra användaråtgärder, appkonfigurationsändringar och säkerhetshändelser.

Använd följande frågor för att övervaka säkerhetsrelaterade aktiviteter och identifiera potentiella problem med dina appar.

Övervaka ändringar av appbehörigheter

Använd den här frågan för att identifiera ändringar av appbehörighet:

-- 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

Identifiera appar med användar-API-omfång

Använd den här frågan för att hitta appar med användar-API-omfång konfigurerade:

-- 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

Spåra åtgärder för användarauktorisering

Använd den här frågan om du vill visa en lista över appåtgärder som utförs med användarauktorisering:

-- 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;

Driftövervakning

Använd systemtabeller för att övervaka driftsaspekter av dina appar, till exempel kostnad och resursanvändning.

Övervaka appkostnader

Övervaka Kostnader för Databricks-appar med hjälp av system.billing.usage tabellen. Använd följande fråga för att få korrekt kostnadsinformation för appar per dag eller månad:

-- 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 har stöd för budgetprinciper för att spåra kostnader. Information om hur du konfigurerar budgetprinciper finns i Attributanvändning med serverlösa budgetprinciper.

Övervaka appinsikter

Viktigt!

Fliken Insikter finns i Beta.

Fliken Insikter på sidan med appinformation visar användarengagemang och apptillgänglighet.

Visningsspårning

Tabellen Tittare spårar vilka användare som har åtkomst till ditt program.

Azure Databricks registrerar en vyhändelse när en användare kommer åt appen via appens URL eller via API-åtkomst. Den lagrar data som unika per användare och per app. Efterföljande besök av samma användare skriver över deras tidigare post i stället för att skapa en ny rad.

Den senast visade tidsstämpeln följer en uppdateringscykel för OAuth-sessionen på 30 minuter. Flera besök i sessionsfönstret behåller den första besökstiden, men den första åtkomsten efter att sessionen upphör att gälla skriver över tidsstämpeln med den nya besökstiden.

Anmärkning

I Beta visar den senaste visade tiden endast UTC (Coordinated Universal Time).

Drifttid och hälsostatus

Övervaka följande hälsosignaler för att felsöka apptillgänglighet.

  • Apptjänsthälsa: Om Azure Databricks-infrastrukturen som stöder appen är tillgänglig. Om det inte är tillgängligt finns det ett problem på tjänstnivå med plattformen. Kontakta Databricks Support.
  • Apptillgänglighet: Om det specifika programmet hanterar begäranden. Om den inte är tillgänglig kontrollerar du om det finns distributionsfel eller krascher i koden.