Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O registro em log e o monitoramento eficazes ajudam você a detectar e responder a eventos de segurança nos Aplicativos do Databricks. Os aplicativos geram logs no nível do aplicativo e logs de auditoria de plataforma, que você pode usar para diagnóstico, acompanhamento de desempenho e análise de segurança.
Logs de aplicação
Para disponibilizar logs na interface do usuário do Databricks Apps ou por meio da URL do aplicativo, seu aplicativo deve gravar a saída em stdout e stderr.
Acesse os logs de aplicativos das seguintes maneiras:
- Interface do usuário de aplicativos: Clique na guia Logs do aplicativo para exibir a saída padrão e o erro. Para obter detalhes, veja detalhes de um app do Databricks.
-
URL direta: Acrescente
/logzà URL do aplicativo. Por exemplo, se a URL do aplicativo estiverhttps://my-app-1234567890.my-instance.databricksapps.com, os logs estarão disponíveis emhttps://my-app-1234567890.my-instance.databricksapps.com/logz.
Observação
Azure Databricks não persiste os logs quando a computação do aplicativo é desligada. Para registro em log persistente, integre-se a serviços de log externos ou escreva os logs em volumes ou tabelas do Unity Catalog.
Integrar com serviços de log externos
Para logging persistente e monitoramento avançado, use o seguinte:
- Telemetria do App (Beta): Colete rastreamentos, logs e métricas diretamente nas tabelas do Unity Catalog. Consulte Configuração de telemetria para Aplicativos do Databricks.
- Ferramentas de Monitoramento de Desempenho do Aplicativo (APM): Use novas ferramentas de monitoramento de desempenho do aplicativo Relic, Datadog ou similares para coletar e analisar logs, métricas e rastreamentos.
- Persistência de log personalizada: Escreva logs periodicamente em volumes ou tabelas do Catálogo do Unity para armazenamento e análise de longo prazo.
Consulte as práticas de registro em log recomendadas para obter diretrizes sobre formatação de log e conteúdo.
Práticas recomendadas de registro em log
Para integrar com o monitoramento externo e sistemas de alerta em tempo real:
- Formatar logs em JSON ou em outros formatos analisáveis por computador.
- Registrar eventos relevantes à segurança com contexto:
- Eventos de autenticação e autorização, incluindo identidade e resultado do usuário
- Detalhes de acesso a dados, como catálogo, esquema e nomes de tabela
- Erros relacionados à segurança, como tokens inválidos, negações de permissão e atividade suspeita
- Encaminhe logs para sistemas externos. Integre-se às ferramentas de agregação de log ou APM para dar suporte a alertas em tempo real, resposta a incidentes de segurança, análise de desempenho e uso e correlação com os logs do sistema Azure Databricks.
Considerações de segurança para registro de logs
Os aplicativos do Databricks são projetados com os seguintes controles internos para impedir a exfiltração de dados:
- API-only access: os aplicativos podem acessar apenas os recursos da Azure Databricks por meio das APIs públicas da Azure Databricks. Essas APIs são auditáveis por meio de registros de tabelas do sistema.
- Comunicação criptografada: todo o tráfego de API é criptografado usando o TLS 1.2 ou superior para garantir a transferência segura de dados.
Monitoramento de segurança com tabelas do sistema
Azure Databricks captura logs de auditoria para atividades relacionadas ao aplicativo na tabela system.access.audit. Você pode consultar esses logs para acompanhar ações do usuário, alterações de configuração de aplicativo e eventos de segurança.
Use as consultas a seguir para monitorar atividades relacionadas à segurança e detectar possíveis problemas com seus aplicativos.
Monitorar alterações de permissão do aplicativo
Use esta consulta para detectar modificações de permissão do aplicativo:
-- 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
Identificar aplicativos com permissões de API do usuário
Use esta consulta para localizar aplicativos com escopos de API de usuário configurados:
-- 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
Acompanhar ações de autorização do usuário
Use esta consulta para listar as ações de aplicativo executadas com autorização do usuário:
-- 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;
Monitoramento operacional
Use tabelas do sistema para monitorar aspectos operacionais de seus aplicativos, como custo e uso de recursos.
Monitorar os custos do aplicativo
Monitore os custos dos Aplicativos do Databricks usando a system.billing.usage tabela. Use a consulta a seguir para obter informações precisas de custo para aplicativos por dia ou mês:
-- 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
Os Aplicativos do Databricks dão suporte a políticas de orçamento para ajudar a controlar os custos. Para obter informações sobre como configurar políticas de orçamento, consulte Uso de atributo com políticas de uso sem servidor.
Monitorar insights do aplicativo
Importante
A guia Insights está na fase Beta.
A guia Insights na página de detalhes do aplicativo mostra a participação do usuário e a disponibilidade do aplicativo.
Acompanhamento do visualizador
A tabela Visualizadores controla quais usuários acessam seu aplicativo.
Azure Databricks registra um evento de exibição quando um usuário acessa o aplicativo por meio da URL do aplicativo ou por meio do acesso à API. Ele armazena dados como exclusivos por usuário, por aplicativo. As visitas subsequentes do mesmo usuário substituem seu registro anterior em vez de criar uma nova linha.
O último carimbo de data/hora exibido segue um ciclo de atualização de sessão OAuth de 30 minutos. Várias visitas dentro da janela de sessão mantêm a hora de visita inicial, mas o primeiro acesso após a sessão expirar substitui o carimbo de data/hora pelo novo horário de visita.
Observação
Em Beta, a hora exibida pela última vez mostra apenas UTC (Tempo Universal Coordenado).
Tempo de atividade e status de integridade
Monitore os sinais de saúde a seguir para solucionar problemas de disponibilidade do aplicativo.
- App service health: se a infraestrutura Azure Databricks que dá suporte ao aplicativo está disponível. Se não estiver disponível, haverá um problema de nível de serviço com a plataforma. Contate o Suporte do Databricks.
- Disponibilidade do aplicativo: se o aplicativo específico atende às solicitações. Se não estiver disponível, verifique se há erros de implantação ou falhas no código.