Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Efektywne rejestrowanie i monitorowanie pomaga wykrywać zdarzenia zabezpieczeń i reagować na nie w usłudze Databricks Apps. Aplikacje generują dzienniki na poziomie aplikacji i dzienniki inspekcji platformy, których można użyć do diagnostyki, śledzenia wydajności i analizy zabezpieczeń.
Dzienniki aplikacji
Aby udostępnić dzienniki w interfejsie użytkownika aplikacji usługi Databricks lub za pośrednictwem adresu URL aplikacji, aplikacja musi zapisywać dane wyjściowe w usługach stdout i stderr.
Uzyskaj dostęp do dzienników aplikacji na następujące sposoby:
- Interfejs użytkownika aplikacji: Na stronie szczegółów aplikacji kliknij kartę Dzienniki , aby wyświetlić standardowe dane wyjściowe i błędy. Aby uzyskać szczegółowe informacje, zobacz Wyświetl szczegóły dotyczące aplikacji Databricks.
-
Bezpośredni adres URL: Dołącz
/logzdo adresu URL aplikacji. Jeśli na przykład adres URL aplikacji tohttps://my-app-1234567890.my-instance.databricksapps.com, dzienniki są dostępne pod adresemhttps://my-app-1234567890.my-instance.databricksapps.com/logz.
Uwaga / Notatka
Usługa Azure Databricks nie utrwala dzienników po zamknięciu obliczeń aplikacji. W przypadku długoterminowego rejestrowania należy zintegrować się z zewnętrznymi usługami rejestrowania lub zapisywać dzienniki w sekcjach lub tabelach katalogowych Unity Catalog.
Integracja z zewnętrznymi usługami logowania
W przypadku trwałych funkcji rejestrowania i zaawansowanego monitorowania należy użyć następujących elementów:
- Narzędzia do monitorowania wydajności aplikacji (APM): Użyj nowych narzędzi do monitorowania wydajności aplikacji Relic, Datadog lub podobnych, aby zbierać i analizować dzienniki, metryki i ślady.
- Niestandardowa trwałość logów: Okresowo zapisuj logi w woluminach lub tabelach Unity Catalogu w celu długoterminowego przechowywania i analizy.
Zobacz Zalecane praktyki rejestrowania , aby uzyskać wskazówki dotyczące formatowania dzienników i zawartości.
Zalecane praktyki rejestrowania
Aby zintegrować z zewnętrznymi systemami monitorowania i alertów w czasie rzeczywistym:
- Formatuj dzienniki w formacie JSON lub w innych formatach możliwych do analizowania maszyn.
- Rejestruj zdarzenia związane z zabezpieczeniami z kontekstem:
- Zdarzenia uwierzytelniania i autoryzacji, w tym tożsamość użytkownika i wynik
- Szczegóły dostępu do danych, takie jak wykaz, schemat i nazwy tabel
- Błędy związane z zabezpieczeniami, takie jak nieprawidłowe tokeny, odmowa uprawnień i podejrzane działania
- Przekazywanie dzienników do systemów zewnętrznych. Integracja z narzędziami APM lub agregacji logów w celu obsługi alertów w czasie rzeczywistym, reagowania na zdarzenia zabezpieczeń, analizy użycia i wydajności oraz korelacji z dziennikami systemu usługi Azure Databricks.
Zagadnienia dotyczące zabezpieczeń dotyczące rejestrowania
Aplikacje usługi Databricks zostały zaprojektowane z następującymi wbudowanymi kontrolkami, aby zapobiec eksfiltracji danych:
- Dostęp tylko do interfejsu API: aplikacje mogą uzyskiwać dostęp tylko do zasobów usługi Azure Databricks za pośrednictwem publicznych interfejsów API usługi Azure Databricks. Te interfejsy API można przeprowadzać inspekcję za pomocą dzienników tabeli systemu.
- Zaszyfrowana komunikacja: cały ruch interfejsu API jest szyfrowany przy użyciu protokołu TLS 1.2 lub nowszego w celu zapewnienia bezpiecznego transferu danych.
Monitorowanie zabezpieczeń przy użyciu tabel systemowych
Usługa Azure Databricks przechwytuje dzienniki inspekcji dla działań związanych z aplikacjami w system.access.audit tabeli. Możesz wykonywać zapytania dotyczące tych dzienników w celu śledzenia akcji użytkownika, zmian konfiguracji aplikacji i zdarzeń zabezpieczeń.
Użyj dzienników inspekcji, aby obsługiwać następujące typowe scenariusze monitorowania i zabezpieczeń:
- Śledzenie aktywności logowania aplikacji. Zobacz Loginy aplikacji.
- Monitorowanie zmian uprawnień. Zobacz Zmiany uprawnień.
- Przeprowadź inspekcję tworzenia i modyfikowania aplikacji. Zobacz Tworzenie aplikacji.
- Analizowanie zachowania użytkownika w aplikacjach. Zobacz Akcje użytkownika.
Użyj następujących zapytań, aby monitorować działania związane z zabezpieczeniami i wykrywać potencjalne problemy z aplikacjami.
Monitorowanie zmian uprawnień aplikacji
Użyj tego zapytania, aby wykryć modyfikacje uprawnień aplikacji:
-- 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
Identyfikowanie aplikacji z zakresami interfejsu API użytkownika
Użyj tego zapytania, aby znaleźć aplikacje ze skonfigurowanymi zakresami interfejsu API użytkownika:
-- 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
Śledzenie akcji autoryzacji użytkownika
Użyj tego zapytania, aby wyświetlić listę akcji aplikacji wykonywanych z autoryzacją użytkownika:
-- 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;
Monitorowanie operacyjne
Tabele systemowe umożliwiają monitorowanie aspektów operacyjnych aplikacji, takich jak koszty i użycie zasobów.
Monitorowanie kosztów aplikacji
Monitorowanie kosztów usługi Databricks Apps przy użyciu system.billing.usage tabeli . Użyj następującego zapytania, aby uzyskać dokładne informacje o kosztach aplikacji dziennie lub miesiąca:
-- 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
Usługa Databricks Apps obsługuje zasady budżetowe ułatwiające śledzenie kosztów. Aby uzyskać informacje na temat konfigurowania zasad budżetu, zobacz Wykorzystanie atrybutu w kontekście bezserwerowych zasad budżetu.