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:

  • Apparnas UI: Klicka 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.

Loggposterna är grupperade efter källa. I fliken Loggar , använd Källfilter för att visa eller dölja poster från varje källa:

  • App: Standardutdata från din app.
  • System: Plattformsmeddelanden om appens livscykel, såsom distribution och uppstart.
  • Bygg: Resultat från att installera beroenden och bygga din app.
  • HTTP: HTTP-åtkomstloggar för förfrågningar som hanteras av din app. Se HTTP-åtkomstloggar.

HTTP-åtkomstloggar

Databricks Apps registrerar en HTTP-åtkomstloggpost för varje begäran som din app hanterar. Dessa poster visas under källan HTTP på fliken Loggar och på webbadressen /logz, tillsammans med appens standardutdata och standardfel.

Åtkomstloggar fångar både autentiserade och icke-autentiserade förfrågningar, inklusive förfrågningar som avvisas innan de når din app, såsom förfrågningar som misslyckas med auktorisation. Eftersom avvisade förfrågningar loggas kan du granska misslyckade auktorisationsförsök som säkerhetshändelser.

Följande begränsningar gäller för vad som loggas:

  • För att skydda känslig data tas frågesträngar bort från begäransökvägen, så tokens eller andra känsliga värden som skickas som frågeparametrar loggas inte.
  • För att minska brus utesluts plattformsinterna förfrågningar, såsom autentiseringsåteranrop och hälsokontroller.

Under tung belastning kan Azure Databricks ta bort vissa åtkomstloggposter. När poster tas bort innehåller loggen ett inbyggt meddelande som rapporterar antalet borttagna poster.

Loggpostformat: Varje post använder Apache Combined Log Format. Följande är ett exempel:

203.0.113.10 - jane.doe@example.com [23/Jul/2026:15:04:05 +0000] "GET /api/data HTTP/1.1" 200 1234 "https://apps.example.com/" "Mozilla/5.0"

Varje post innehåller följande fält, i ordning. Tomma fält visas som bindestreck (-).

Fält Example Description
Klient-IP 203.0.113.10 IP-adressen för klienten som gjorde begäran.
User jane.doe@example.com Autentiserad användare, eller - för en icke-autentiserad förfrågan.
Tidsstämpel [23/Jul/2026:15:04:05 +0000] Datum och tid för mottagningen av förfrågan.
Förfråganlinje "GET /api/data HTTP/1.1" HTTP-metoden, begäransökväg med frågesträngen borttagen, och protokoll.
Statuskod 200 Statuskod för HTTP-svar.
Svarsstorlek 1234 Storleken på responskroppen, i bytes.
Hänvisare "https://apps.example.com/" Värdet av begäransökningshuvudet Referer .
Användaragent "Mozilla/5.0" Värdet av begäransökningshuvudet User-Agent .

Integrera med externa loggningstjänster

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

  • App-telemetri (Beta): Samla spår, loggar och mätvärden direkt till Unity-katalogtabeller. Se Konfigurera telemetri för Databricks-appar.

  • Verktyg för applikationsprestandaövervakning (APM): Använd New Relic, Datadog eller liknande verktyg för övervakning av applikationsprestanda för att samla in och analysera loggar, mätvärden och spårningar.

  • Anpassad loggpersistens: Skriv loggar periodiskt till Unity Catalog-volymer eller tabeller för långtidslagring 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:

  • API-endast å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 registrerar granskningsloggar för apprelaterade aktiviteter i tabellen system.access.audit. 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 stöder användningsprinciper för att spåra kostnader. Information om hur du konfigurerar användningsprinciper finns i Attributanvändning med serverlösa användningsprinciper.

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

  • App service health: Huruvida den Azure Databricks infrastruktur 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.