Megosztás:


Databricks-alkalmazások naplózása és monitorozása

A hatékony naplózás és figyelés segít észlelni és reagálni a Databricks Apps biztonsági eseményeire. Az alkalmazások alkalmazásszintű naplókat és platformnaplókat is létrehoznak, amelyeket diagnosztikához, teljesítménykövetéshez és biztonsági elemzésekhez használhat.

Alkalmazásnaplók

Ha elérhetővé szeretné tenni a naplókat a Databricks Apps felhasználói felületén vagy az alkalmazás URL-címén keresztül, az alkalmazásnak kimenetet kell írnia a következőre stdout : és stderr.

Az alkalmazásnaplók elérése a következő módokon:

  • Alkalmazások felhasználói felülete: Az alkalmazás részletei lapon kattintson a Naplók fülre a szabványos kimenet és hiba megtekintéséhez. További információ : Databricks-alkalmazások részleteinek megtekintése.
  • Közvetlen URL-cím: Fűzze /logz hozzá az alkalmazás URL-címét. Ha például az alkalmazás URL-címe https://my-app-1234567890.my-instance.databricksapps.com, a naplók itt érhetők el: https://my-app-1234567890.my-instance.databricksapps.com/logz.

Megjegyzés:

Az Azure Databricks nem őriz meg naplókat az alkalmazásszámítás leállásakor. Állandó naplózás esetén integrálható külső naplózási szolgáltatásokkal, vagy naplókat írhat a Unity Catalog köteteibe vagy tábláiba.

Integráció külső naplózási szolgáltatásokkal

Az állandó naplózáshoz és a speciális monitorozási képességekhez használja a következőket:

  • Alkalmazásteljesítmény-monitorozási (APM-) eszközök: A New Relic, a Datadog vagy hasonló alkalmazásteljesítmény-monitorozási eszközök használatával naplókat, metrikákat és nyomkövetéseket gyűjthet és elemezhet.
  • Egyéni naplómegőrzés: Naplókat rendszeresen írhat a Unity Catalog köteteibe vagy tábláiba hosszú távú tárolás és elemzés céljából.

A naplóformázással és -tartalommal kapcsolatos útmutatásért tekintse meg az ajánlott naplózási eljárásokat .

Integrálható külső monitorozási és valós idejű riasztási rendszerekkel:

  • Naplók formázása JSON- vagy más, géppel elemezhető formátumban.
  • Biztonsággal kapcsolatos események naplózása környezeti információkkal:
    • Hitelesítési és engedélyezési események, beleértve a felhasználói identitást és az eredményt
    • Adathozzáférési adatok, például katalógus, séma és táblanevek
    • Biztonsággal kapcsolatos hibák, például érvénytelen jogkivonatok, engedélymegtagadások és gyanús tevékenységek
  • Naplók továbbítása külső rendszerekre. Integrálható az APM- vagy naplóösszesítő eszközökkel a valós idejű riasztások, a biztonsági incidensek válasza, a használat és a teljesítményelemzés, valamint az Azure Databricks rendszernaplóival való korreláció támogatása érdekében.

A naplózás biztonsági szempontjai

A Databricks-alkalmazások az alábbi beépített vezérlőkkel vannak kialakítva az adatkiszivárgás megakadályozása érdekében:

  • Csak API-hozzáférés: Az alkalmazások csak nyilvános Azure Databricks API-kon keresztül férhetnek hozzá az Azure Databricks-erőforrásokhoz. Ezek az API-k rendszertáblanaplókon keresztül naplózhatók.
  • Titkosított kommunikáció: Minden API-forgalom TLS 1.2 vagy újabb használatával van titkosítva a biztonságos adatátvitel biztosítása érdekében.

Biztonsági monitorozás rendszertáblákkal

Az Azure Databricks ellenőrzési naplókat rögzít az alkalmazással kapcsolatos tevékenységekhez a system.access.audit táblázatban. Ezeket a naplókat lekérdezheti a felhasználói műveletek, az alkalmazáskonfiguráció változásai és a biztonsági események nyomon követéséhez.

Az alábbi lekérdezésekkel figyelheti a biztonsággal kapcsolatos tevékenységeket, és észlelheti az alkalmazásokkal kapcsolatos lehetséges problémákat.

Alkalmazásengedély-módosítások figyelése

Ezzel a lekérdezésrel észlelheti az alkalmazásengedélyek módosításait:

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

Alkalmazások azonosítása felhasználói API-hatókörökkel

Ezzel a lekérdezéssel megkeresheti a felhasználói API-hatókörökkel konfigurált alkalmazásokat:

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

Felhasználói engedélyezési műveletek nyomon követése

Ezzel a lekérdezéssel listázhatja a felhasználói engedélyezéssel végrehajtott alkalmazásműveleteket:

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

Működési monitorozás

Rendszertáblák használatával figyelheti az alkalmazások működési szempontjait, például a költségeket és az erőforrás-használatot.

Alkalmazásköltségek monitorozása

A Databricks Apps költségeinek monitorozása a system.billing.usage táblázat használatával. Az alábbi lekérdezés használatával pontos költségadatokat kaphat az alkalmazások napi vagy havi költségadatairól:

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

A Databricks Apps támogatja a költségkövetést segítő költségvetési szabályzatokat. A költségvetési szabályzatok konfigurálásával kapcsolatos információkért lásd: Attribútumhasználat kiszolgáló nélküli költségvetési szabályzatokkal.

Alkalmazásadatok figyelése

Fontos

Az Elemzések lap bétaverzióban érhető el.

Az Alkalmazás részletei lap Elemzések lapja a felhasználói előjegyzést és az alkalmazás rendelkezésre állását mutatja.

Nyomon követése a megtekintőknek

A Viewers tábla nyomon követi, hogy mely felhasználók férnek hozzá az alkalmazáshoz.

Az Azure Databricks egy megtekintési eseményt rögzít, amikor egy felhasználó az alkalmazás URL-címén vagy API-hozzáférésen keresztül fér hozzá az alkalmazáshoz. Az adatokat felhasználónként, alkalmazásonként egyediként tárolja. Ugyanazon felhasználó későbbi látogatásai felülírják az előző rekordjukat, nem pedig új sort hoznak létre.

Az utolsó megtekintett időbélyeg egy 30 perces OAuth-munkamenet frissítési ciklusát követi. A munkamenetablakban több látogatás megtartja a kezdeti látogatási időt, de a munkamenet lejárta utáni első hozzáférés felülírja az időbélyeget az új látogatási idővel.

Megjegyzés:

A bétaverzióban az utoljára megtekintett idő csak az egyezményes világidőt (UTC) jeleníti meg.

Üzemidő és állapot

Monitorozza az alábbi állapotjeleket az alkalmazás rendelkezésre állásának hibaelhárításához.

  • App service health: Elérhető-e az alkalmazást támogató Azure Databricks-infrastruktúra. Ha nem érhető el, szolgáltatásszintű probléma merült fel a platformmal kapcsolatban. Lépjen kapcsolatba a Databricks ügyfélszolgálatával.
  • Alkalmazás rendelkezésre állása: Az adott alkalmazás kiszolgálja-e a kéréseket. Ha nem érhető el, ellenőrizze az üzembehelyezési hibákat vagy összeomlásokat a kódban.