Мониторинг делегированных ресурсов в большом масштабе

Как поставщик услуг вы можете подключить несколько клиентов к Azure Lighthouse. Azure Lighthouse позволяет поставщикам служб выполнять операции одновременно в нескольких клиентах, что делает задачи управления более эффективными.

В этом разделе показано, как использовать журналы Azure Monitor масштабируемым способом в разных клиентских арендаторах, которыми вы управляете. Хотя в этом разделе мы будем ссылаться на поставщиков услуг и клиентов, это руководство также применимо к предприятиям, где Azure Lighthouse используют для управления несколькими клиентами.

Примечание

Убедитесь, что пользователям в ваших управляемых арендаторах были предоставлены необходимые роли для управления рабочими областями Log Analytics в делегированных подписках клиента.

Создание рабочих областей Log Analytics

Для получения данных необходимо создать рабочие области Log Analytics. Эти рабочие области являются уникальными средами для данных, собираемых Azure Monitor. Каждая рабочая область имеет свои репозиторий данных и конфигурации, при этом источники данных и решения настроены для хранения данных в определенной рабочей области.

Рекомендуется создавать эти рабочие области непосредственно в клиентских арендаторах. Таким образом данные клиентов остаются в их арендаторах, а не экспортируются в ваши. Создание рабочих областей в клиентских арендаторах позволяет осуществлять централизованный мониторинг любых ресурсов или служб, поддерживаемых Log Analytics, обеспечивая большую гибкость в отношении отслеживаемых типов данных. Рабочие области, созданные в клиентских арендаторах, необходимы для получения сведений из параметров диагностики.

Совет

Любая учетная запись службы автоматизации, используемая для получения доступа к данным из рабочей области Log Analytics, должна быть создана в том же арендаторе, что и рабочая область.

Рабочую область Log Analytics можно создать с помощью портала Azure, шаблонов Azure Resource Manager или Azure PowerShell.

Важно!

Если все рабочие области созданы в клиентах заказчика, поставщик ресурсов Microsoft.Insights также должен быть зарегистрирован в подписке в управляющем клиенте. Если в управляемом арендаторе нет подписки Azure, можно зарегистрировать поставщик ресурсов вручную с помощью следующих команд PowerShell:

$ManagingTenantId = "your-managing-Azure-AD-tenant-id"

# Authenticate as a user with admin rights on the managing tenant
Connect-AzAccount -Tenant $ManagingTenantId

# Register the Microsoft.Insights resource providers Application Ids
New-AzADServicePrincipal -ApplicationId 1215fb39-1d15-4c05-b2e3-d519ac3feab4 -Role Contributor
New-AzADServicePrincipal -ApplicationId 6da94f3c-0d67-4092-a408-bb5d1cb08d2d -Role Contributor
New-AzADServicePrincipal -ApplicationId ca7f3f0b-7d91-482c-8e09-c5d840d0eac5 -Role Contributor

Развертывание политик для записи данных в журнал

После создания рабочих областей Log Analytics можно развернуть Политику Azure в клиентских иерархиях, чтобы данные диагностики отправлялись в соответствующую рабочую область в каждом арендаторе. Точные развертываемые политики могут различаться в зависимости от типов ресурсов, которые требуется отслеживать.

Дополнительные сведения о создании политик см. в статье Руководство. Создание и администрирование политик для обеспечения соответствия. Это средство сообщества предоставляет скрипт, помогающий создавать политики для мониторинга конкретных типов ресурсов, выбранных вами.

Когда вы определите, какие политики следует развернуть, разверните их в делегированных подписках в большом масштабе.

Анализ собранных данных

После развертывания политик данные будут регистрироваться в рабочих областях Log Analytics, созданных в каждом клиентском арендаторе. Для получения подробных сведений обо всех управляемых клиентах можно использовать такие средства, как книги Azure Monitor, для сбора и анализа информации из нескольких источников данных.

Запрос данных в рабочих областях клиентов

Вы можете выполнять запросы к журналам, чтобы получать данные в рабочих областях Log Analytics в клиентах разных заказчиков, создав объединение, включающее несколько рабочих областей. Включив столбец TenantID, можно увидеть, какие результаты относятся к тем или иным клиентам.

В приведенном ниже примере запроса показано, как создать объединение для таблицы AzureDiagnostics в рабочих областях в двух отдельных клиентах заказчика. В результатах будут отображаться столбцы Category, ResourceGroup и TenantID.

union AzureDiagnostics,
workspace("WS-customer-tenant-1").AzureDiagnostics,
workspace("WS-customer-tenant-2").AzureDiagnostics
| project Category, ResourceGroup, TenantId

Дополнительные примеры запросов по нескольким рабочим областям Log Analytics см. в разделе Создание запроса журнала по нескольким рабочим областям и приложениям в Azure Monitor.

Важно!

Если вы используете учетную запись автоматизации, применяемую для выполнения запросов к данным из рабочей области Log Analytics, необходимо создать эту учетную запись автоматизации в том же клиенте, в котором находится рабочая область.

Просмотр оповещений для разных клиентов

Вы можете просматривать оповещения для делегированных подписок в клиентских арендаторах, которыми вы управляете.

Из управляемого арендатора можно создавать, просматривать и администрировать оповещения журнала действий с помощью портала Azure или интерфейсов API и средств управления.

Чтобы автоматически обновлять оповещения для нескольких клиентов, используйте запрос к Azure Resource Graph для фильтрации оповещений. Вы можете закрепить запрос на панели мониторинга и выбрать всех соответствующих клиентов и все соответствующие подписки. Например, приведенный ниже запрос будет отображать предупреждения уровня серьезности 0 и 1 с интервалом обновления в 60 минут.

alertsmanagementresources
| where type == "microsoft.alertsmanagement/alerts"
| where properties.essentials.severity =~ "Sev0" or properties.essentials.severity =~ "Sev1"
| where properties.essentials.monitorCondition == "Fired"
| where properties.essentials.startDateTime > ago(60m)
| project StartTime=properties.essentials.startDateTime,name,Description=properties.essentials.description, Severity=properties.essentials.severity, subscriptionId
| sort by tostring(StartTime)

Дальнейшие действия