Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La registrazione e il monitoraggio efficaci consentono di rilevare e rispondere agli eventi di sicurezza nelle app Databricks. Le app generano log a livello di applicazione e log di controllo della piattaforma, che è possibile usare per la diagnostica, il rilevamento delle prestazioni e l'analisi della sicurezza.
Registri applicazioni
Per rendere disponibili i log nell'interfaccia utente di Databricks Apps o tramite l'URL dell'app, l'app deve scrivere l'output in stdout e stderr.
Accedere ai log delle applicazioni nei modi seguenti:
- Interfaccia utente delle app: Nella pagina dei dettagli dell'app fare clic sulla scheda Log per visualizzare l'output e l'errore standard. Per informazioni dettagliate, vedere Visualizzare i dettagli per un'app Databricks.
-
URL diretto: Aggiungere
/logzall'URL dell'app. Ad esempio, se l'URL dell'app èhttps://my-app-1234567890.my-instance.databricksapps.com, i log sono disponibili inhttps://my-app-1234567890.my-instance.databricksapps.com/logz.
Annotazioni
Azure Databricks non rende persistenti i log quando il calcolo dell'app si arresta. Per la registrazione permanente, eseguire l'integrazione con servizi di registrazione esterni o scrivere log in volumi o tabelle del catalogo Unity.
Eseguire l'integrazione con i servizi di registrazione esterni
Per la registrazione permanente e le funzionalità di monitoraggio avanzate, usare quanto segue:
- Strumenti di Application Performance Monitoring (APM): Usare New Relic, Datadog o strumenti di monitoraggio delle prestazioni dell'applicazione simili per raccogliere e analizzare log, metriche e tracce.
- Persistenza log personalizzata: Scrivere periodicamente log in volumi o tabelle del catalogo Unity per l'archiviazione e l'analisi a lungo termine.
Per indicazioni sulla formattazione e sul contenuto dei log, vedere Procedure di registrazione consigliate .
Procedure consigliate per la registrazione
Per l'integrazione con sistemi di monitoraggio esterno e avvisi in tempo reale:
- Formattare i log in FORMATO JSON o in altri formati analizzabili dal computer.
- Registrare gli eventi rilevanti per la sicurezza con il contesto:
- Eventi di autenticazione e autorizzazione, inclusi l'identità e il risultato dell'utente
- Dettagli di accesso ai dati, ad esempio catalogo, schema e nomi di tabella
- Errori correlati alla sicurezza, ad esempio token non validi, negazioni delle autorizzazioni e attività sospette
- Inoltrare i log ai sistemi esterni. Eseguire l'integrazione con strumenti di aggregazione log o APM per supportare avvisi in tempo reale, risposta agli eventi imprevisti di sicurezza, analisi delle prestazioni e utilizzo e correlazione con i log di sistema di Azure Databricks.
Considerazioni sulla sicurezza per la registrazione
Le app Databricks sono progettate con i controlli predefiniti seguenti per impedire l'esfiltrazione dei dati:
- Accesso solo API: le app possono accedere solo alle risorse di Azure Databricks tramite API di Azure Databricks pubbliche. Queste API sono controllabili tramite i log delle tabelle di sistema.
- Comunicazione crittografata: tutto il traffico DELL'API viene crittografato con TLS 1.2 o versione successiva per garantire il trasferimento sicuro dei dati.
Monitoraggio della sicurezza con tabelle di sistema
Azure Databricks acquisisce i log di controllo per le attività correlate all'app nella system.access.audit tabella. È possibile eseguire query su questi log per tenere traccia delle azioni dell'utente, delle modifiche alla configurazione delle app e degli eventi di sicurezza.
Usare le query seguenti per monitorare le attività correlate alla sicurezza e rilevare potenziali problemi con le app.
Monitorare le modifiche alle autorizzazioni dell'app
Usare questa query per rilevare le modifiche alle autorizzazioni dell'app:
-- 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
Identificare le app con ambiti API utente
Usare questa query per trovare le app con ambiti api utente configurati:
-- 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
Tenere traccia delle azioni di autorizzazione utente
Usare questa query per elencare le azioni dell'app eseguite con l'autorizzazione utente:
-- 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;
Monitoraggio operativo
Usare le tabelle di sistema per monitorare gli aspetti operativi delle app, ad esempio i costi e l'utilizzo delle risorse.
Monitorare i costi delle app
Monitorare i costi di Databricks Apps usando la system.billing.usage tabella . Usare la query seguente per ottenere informazioni accurate sui costi per le app al giorno o al mese:
-- 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 supporta i criteri di budget per tenere traccia dei costi. Per informazioni sulla configurazione delle politiche di budget, consultare Utilizzo degli attributi con le politiche di budget serverless.
Monitorare le informazioni dettagliate sulle app
Importante
La scheda Insights è in versione beta.
La scheda Insights nella pagina dei dettagli dell'app mostra l'engagement degli utenti e la disponibilità delle app.
Rilevamento del visualizzatore
La tabella Visualizzatori tiene traccia degli utenti che accedono all'applicazione.
Azure Databricks registra un evento di visualizzazione quando un utente accede all'app tramite l'URL dell'app o tramite l'accesso all'API. Archivia i dati come univoci per utente, per app. Le visite successive dello stesso utente sovrascrivono il record precedente anziché creare una nuova riga.
L'ultimo timestamp visualizzato segue un ciclo di aggiornamento della sessione OAuth di 30 minuti. Più visite all'interno della finestra della sessione mantengono il tempo di visita iniziale, ma il primo accesso dopo la scadenza della sessione sovrascrive il timestamp con il nuovo tempo di visita.
Annotazioni
In versione Beta, l'orario dell'ultima visualizzazione mostra solo l'ora universale coordinata (UTC, Coordinated Universal Time).
Tempo di operatività e stato di salute
Monitorare i seguenti segnali di stato per risolvere problemi di disponibilità delle app.
- Stato di salute del servizio app: indica se l'infrastruttura di Azure Databricks che supporta l'app è disponibile. Se non è disponibile, si verifica un problema a livello di servizio con la piattaforma. Contattare il supporto tecnico di Databricks.
- Disponibilità dell'app: indica se l'applicazione specifica gestisce le richieste. Se non è disponibile, verificare la presenza di errori di distribuzione o arresti anomali nel codice.