Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эффективное ведение журнала и мониторинг помогают обнаруживать и реагировать на события безопасности в Приложениях Databricks. Приложения создают журналы уровня приложения и журналы аудита платформы, которые можно использовать для диагностики, отслеживания производительности и аналитики безопасности.
Журналы приложений
Чтобы сделать журналы доступными в пользовательском интерфейсе Databricks Apps или через URL-адрес приложения, приложение должно записывать выходные данные stdout в и stderr.
Получите доступ к журналам приложений следующим образом:
- Пользовательский интерфейс приложений: На странице сведений о приложении щелкните вкладку "Журналы" , чтобы просмотреть стандартные выходные данные и ошибки. Дополнительные сведения см. в разделе "Просмотр сведений о приложении Databricks".
-
Прямой URL-адрес: Добавьте
/logzк URL-адресу приложения. Например, если URL-адрес приложенияhttps://my-app-1234567890.my-instance.databricksapps.com, журналы доступны поhttps://my-app-1234567890.my-instance.databricksapps.com/logz.
Замечание
Azure Databricks не сохраняет журналы при завершении работы вычислений приложения. Для постоянного ведения журнала интегрируйте с внешними службами ведения журнала или записывайте журналы в томах или таблицах каталога Unity.
Интеграция с внешними службами ведения журнала
Для постоянного ведения журнала и расширенных возможностей мониторинга используйте следующее:
- Средства мониторинга производительности приложений (APM): Используйте средства мониторинга производительности приложений New Relic, Datadog или аналогичные средства мониторинга производительности для сбора и анализа журналов, метрик и трассировок.
- Сохраняемость пользовательского журнала: Периодически записывайте журналы в томах или таблицах каталога Unity для долгосрочного хранения и анализа.
См. Рекомендованные практики ведения журнала для получения рекомендаций по форматированию и содержимому.
Рекомендуемые методики ведения журнала
Интеграция с внешними системами мониторинга и оповещений в режиме реального времени:
- Форматирование журналов в формате JSON или других форматов, доступных для синтаксического анализа компьютера.
- Журнал событий, связанных с безопасностью, с контекстом:
- События проверки подлинности и авторизации, включая удостоверение пользователя и результат
- Сведения о доступе к данным, такие как каталог, схема и имена таблиц
- Ошибки, связанные с безопасностью, такие как недопустимые маркеры, отказы в разрешении и подозрительные действия
- Переадресация журналов во внешние системы. Интеграция с APM или средства агрегирования журналов для поддержки оповещений в режиме реального времени, реагирования на инциденты безопасности, анализа использования и производительности, а также корреляции с системными журналами Azure Databricks.
Рекомендации по безопасности для ведения журнала
Приложения Databricks разработаны со следующими встроенными элементами управления, чтобы предотвратить утечку данных:
- Доступ только к API: приложения могут получать доступ только к ресурсам Azure Databricks через общедоступные API Azure Databricks. Эти API можно проверять с помощью системных журналов таблиц.
- Зашифрованное взаимодействие: весь трафик API шифруется с помощью TLS 1.2 или более поздней версии, чтобы обеспечить безопасную передачу данных.
Мониторинг безопасности с помощью системных таблиц
Azure Databricks записывает журналы аудита для действий, связанных с приложениями в system.access.audit таблице. Эти журналы можно запросить для отслеживания действий пользователей, изменений конфигурации приложения и событий безопасности.
Используйте следующие запросы, чтобы отслеживать действия, связанные с безопасностью, и обнаруживать потенциальные проблемы с приложениями.
Мониторинг изменений разрешений приложения
Используйте этот запрос для обнаружения изменений разрешений приложения:
-- 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
Определение приложений с областями пользовательского API
Используйте этот запрос для поиска приложений с настроенными областями ПОЛЬЗОВАТЕЛЬСКОго API:
-- 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
Отслеживание действий авторизации пользователей
Используйте этот запрос для перечисления действий приложения, выполненных с авторизацией пользователя:
-- 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;
Операционный мониторинг
Используйте системные таблицы для мониторинга операционных аспектов приложений, таких как затраты и использование ресурсов.
Мониторинг затрат на приложение
Отслеживайте затраты databricks Apps с помощью system.billing.usage таблицы. Используйте следующий запрос, чтобы получить точные сведения о затратах для приложений в день или месяц:
-- 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 поддерживает политики бюджета для отслеживания затрат. Сведения о настройке политик бюджета см. в разделе "Использование атрибутов" с бессерверными политиками бюджета.
Мониторинг аналитики приложений
Это важно
Вкладка "Аналитика" находится в бета-версии.
На вкладке "Аналитика" на странице сведений о приложении отображается взаимодействие пользователей и доступность приложений.
Отслеживание зрителей
Таблица "Просмотрщики" отслеживает, какие пользователи получают доступ к вашему приложению.
Azure Databricks записывает событие представления, когда пользователь обращается к приложению по URL-адресу приложения или через доступ к API. Он сохраняет данные как уникальные для каждого пользователя на каждое приложение. Последующие посещения того же пользователя перезаписывают предыдущую запись, а не создают новую строку.
Последняя просматриваемая метка времени следует 30-минутным циклом обновления сеанса OAuth. Несколько посещений в окне сеанса сохраняют начальное время посещения, но первый доступ после истечения срока действия сеанса перезаписывает метку времени с новым временем посещения.
Замечание
В бета-версии последнее просмотренное время отображается только в согласованном универсальном времени (UTC).
Состояние работоспособности и времени работы
Отслеживайте следующие сигналы работоспособности, чтобы устранить неполадки с доступностью приложений.
- Работоспособности службы приложений: доступна ли инфраструктура Azure Databricks, поддерживающая приложение. В случае недоступности платформы возникает проблема уровня обслуживания. Обратитесь в службу поддержки Databricks.
- Доступность приложений: обслуживает ли конкретное приложение запросы. Если он недоступен, проверьте наличие ошибок развертывания или сбоев в коде.