Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O registo e monitorização eficazes ajudam-no a detetar e responder a eventos de segurança nas Aplicações Databricks. Os aplicativos geram logs no nível do aplicativo e logs de auditoria da plataforma, que você pode usar para diagnóstico, rastreamento de desempenho e análise de segurança.
Logs de aplicativos
Para aceder aos logs na interface do Databricks Apps ou através da URL da sua aplicação, a sua aplicação deve escrever a saída em stdout e stderr.
Acesse os logs do aplicativo das seguintes maneiras:
- Interface das Apps: Clique na aba Logs da aplicação para visualizar a saída padrão e erros. Para obter detalhes, consulte Visualizar os detalhes de uma aplicação Databricks.
-
URL direta: Anexe
/logzao URL do seu aplicativo. Por exemplo, se o URL da sua aplicação forhttps://my-app-1234567890.my-instance.databricksapps.com, os logs estarão disponíveis emhttps://my-app-1234567890.my-instance.databricksapps.com/logz.
Observação
O Azure Databricks não mantém registos persistentes quando a computação da aplicação desliga. Para registro persistente, integre-se a serviços de logging externos ou escreva logs em volumes ou tabelas do Unity Catalog.
Integração com serviços de registo externos
Para logs persistentes e recursos avançados de monitoramento, use o seguinte:
Telemetria de aplicações (Beta): Recolha traços, registos e métricas diretamente para as tabelas do Catálogo Unity. Consulte Configurar telemetria para aplicações Databricks.
Ferramentas de monitoramento de desempenho de aplicativos (APM): Use New Relic, Datadog ou ferramentas de monitoramento de desempenho de aplicativos semelhantes para coletar e analisar logs, métricas e rastreamentos.
Persistência de log personalizado: Escreva logs periodicamente em volumes ou tabelas do Unity Catalog para armazenamento e análise de longo prazo.
Consulte Práticas de log recomendadas para obter orientações sobre formatação e conteúdo de log.
Práticas recomendadas de registro em log
Para integrar com sistemas externos de monitorização e alerta em tempo real:
- Formate logs em JSON ou outros formatos analisáveis por máquina.
- Registre eventos relevantes para a segurança com o contexto:
- Eventos de autenticação e autorização, incluindo identidade do usuário e resultado
- Detalhes sobre o acesso aos dados, como nomes de catálogo, esquema e tabela
- Erros relacionados à segurança, como tokens inválidos, recusas de permissão e atividades suspeitas
- Transferir logs para sistemas externos. Integre com ferramentas de APM ou agregação de logs para suportar alertas em tempo real, resposta a incidentes de segurança, análises de utilização e desempenho, e correlação com os logs do sistema Azure Databricks.
Considerações de segurança para registro em log
Os aplicativos Databricks são projetados com os seguintes controles internos para evitar a exfiltração de dados:
- Acesso apenas via API: As aplicações só podem aceder aos recursos do Azure Databricks através das APIs públicas do Azure Databricks. Essas APIs podem ser auditadas através dos logs das tabelas do sistema.
- Comunicação criptografada: Todo o tráfego da API é criptografado usando TLS 1.2 ou superior para garantir a transferência segura de dados.
Monitoramento de segurança com tabelas do sistema
Azure Databricks captura registos de auditoria para atividades relacionadas com aplicativos na tabela system.access.audit. Você pode consultar esses logs para rastrear ações do usuário, alterações na configuração do aplicativo e eventos de segurança.
Use as consultas a seguir para monitorar atividades relacionadas à segurança e detetar possíveis problemas com seus aplicativos.
Monitorar alterações de permissão do aplicativo
Use esta consulta para detetar 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 apps com permissões de API do usuário
Use esta consulta para localizar aplicativos com escopos de API do 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
Rastrear ações de autorização do usuário
Use esta consulta para listar as ações do 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;
Acompanhamento operacional
Use tabelas do sistema para monitorar aspetos operacionais de seus aplicativos, como custo e uso de recursos.
Monitore os custos do app
Monitore os custos do Databricks Apps usando a system.billing.usage tabela. Use a seguinte consulta 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
O Databricks Apps suporta políticas de orçamento para ajudar a controlar os custos. Para obter informações sobre a configuração de políticas orçamentais, consulte Utilização de atributos com políticas de uso sem servidor.
Monitorizar insights da aplicação
Importante
O separador Insights está em Beta.
O separador Insights na página de detalhes da aplicação mostra o envolvimento do utilizador e a disponibilidade da aplicação.
Monitorização do espectador
A tabela de Visualizadores acompanha quais os utilizadores que acedem à sua aplicação.
O Azure Databricks regista um evento de visualização quando um utilizador acede à aplicação através da URL da aplicação ou através do acesso à API. Armazena os dados como únicos por utilizador, por aplicação. Visitas subsequentes do mesmo utilizador sobrescrevem o seu registo anterior em vez de criar uma nova linha.
O último carimbo temporal visualizado segue um ciclo de atualização da sessão OAuth de 30 minutos. Múltiplas visitas dentro da janela da sessão mantêm o tempo inicial da visita, mas o primeiro acesso após o término da sessão substitui o carimbo de data/hora com o novo horário da visita.
Observação
Em Beta, o último tempo visualizado mostra apenas o Tempo Universal Coordenado (UTC).
Disponibilidade e estado de saúde
Monitorize os seguintes sinais de saúde para diagnosticar a disponibilidade da aplicação.
- Saúde do serviço da aplicação: Se a infraestrutura Azure Databricks que suporta a aplicação está disponível. Se não estiver disponível, há um problema de nível de serviço com a plataforma. Contacte o suporte da Databricks.
- Disponibilidade da aplicação: Se a aplicação específica responde a pedidos. Se não estiver disponível, verifique se há erros de implementação ou falhas no seu código.