Monitorizar recursos delegados em escala

Como fornecedor de serviços, pode ter integrado vários inquilinos de clientes no Azure Lighthouse. O Azure Lighthouse permite que os fornecedores de serviços realizem operações em escala em vários inquilinos ao mesmo tempo, tornando as tarefas de gestão mais eficientes.

Este tópico mostra-lhe como utilizar os Registos do Azure Monitor de forma dimensionável nos inquilinos dos clientes que está a gerir. Apesar de nos referirmos a fornecedores de serviços e clientes neste tópico, esta orientação também se aplica às empresas que utilizam o Azure Lighthouse para gerir vários inquilinos.

Nota

Certifique-se de que foram concedidas aos utilizadores nos inquilinos de gestão as funções necessárias para gerir as áreas de trabalho do Log Analytics nas suas subscrições de clientes delegadas.

Criar áreas de trabalho do Log Analytics

Para recolher dados, terá de criar áreas de trabalho do Log Analytics. Estas áreas de trabalho do Log Analytics são ambientes exclusivos para dados recolhidos pelo Azure Monitor. Cada área de trabalho tem o seu próprio repositório de dados e configuração e as origens de dados e soluções são configuradas para armazenar os dados numa área de trabalho específica.

Recomendamos que crie estas áreas de trabalho diretamente nos inquilinos do cliente. Desta forma, os dados permanecem nos respetivos inquilinos em vez de serem exportados para os seus. Criar as áreas de trabalho nos inquilinos do cliente permite a monitorização centralizada de quaisquer recursos ou serviços suportados pelo Log Analytics, o que lhe dá mais flexibilidade sobre os tipos de dados que monitoriza. As áreas de trabalho criadas nos inquilinos do cliente são necessárias para recolher informações das definições de diagnóstico.

Dica

Qualquer conta de automatização utilizada para aceder a dados de uma área de trabalho do Log Analytics tem de ser criada no mesmo inquilino que a área de trabalho.

Pode criar uma área de trabalho do Log Analytics com o portal do Azure, com modelos de Resource Manager do Azure ou com Azure PowerShell.

Importante

Se todas as áreas de trabalho forem criadas em inquilinos de clientes, os fornecedores de recursos Microsoft.Insights também têm de estar registados numa subscrição no inquilino de gestão. Se o inquilino de gestão não tiver uma subscrição do Azure existente, pode registar o fornecedor de recursos manualmente com os seguintes comandos do 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

Implementar políticas que registam dados

Depois de criar as áreas de trabalho do Log Analytics, pode implementar Azure Policy nas hierarquias de clientes para que os dados de diagnóstico sejam enviados para a área de trabalho adequada em cada inquilino. As políticas exatas que implementar podem variar consoante os tipos de recursos que pretende monitorizar.

Para saber mais sobre como criar políticas, veja Tutorial: Criar e gerir políticas para impor a conformidade. Esta ferramenta de comunidade fornece um script para ajudá-lo a criar políticas para monitorizar os tipos de recursos específicos que escolher.

Quando tiver determinado quais as políticas a implementar, pode implementá-las nas suas subscrições delegadas em escala.

Analisar os dados recolhidos

Depois de implementar as políticas, os dados serão registados nas áreas de trabalho do Log Analytics que criou em cada inquilino do cliente. Para obter informações sobre todos os clientes geridos, pode utilizar ferramentas como livros do Azure Monitor para recolher e analisar informações de várias origens de dados.

Consultar dados em áreas de trabalho de clientes

Pode executar consultas de registo para obter dados em áreas de trabalho do Log Analytics em inquilinos de clientes diferentes ao criar uma união que inclui várias áreas de trabalho. Ao incluir a coluna TenantID, pode ver que resultados pertencem a que inquilinos.

A consulta de exemplo seguinte cria uma união na tabela AzureDiagnostics em várias áreas de trabalho em dois inquilinos de cliente separados. Os resultados mostram as colunas Categoria, ResourceGroup e TenantID.

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

Para obter mais exemplos de consultas em várias áreas de trabalho do Log Analytics, veja Criar uma consulta de registo em várias áreas de trabalho e aplicações no Azure Monitor.

Importante

Se utilizar uma conta de automatização utilizada para consultar dados de uma área de trabalho do Log Analytics, essa conta de automatização tem de ser criada no mesmo inquilino que a área de trabalho.

Ver alertas entre clientes

Pode ver alertas para subscrições delegadas nos inquilinos do cliente que gere.

A partir do seu inquilino de gestão, pode criar, ver e gerir alertas de registo de atividades no portal do Azure ou através de APIs e ferramentas de gestão.

Para atualizar alertas automaticamente em vários clientes, utilize uma consulta do Azure Resource Graph para filtrar alertas. Pode afixar a consulta ao dashboard e selecionar todos os clientes e subscrições adequados. Por exemplo, a consulta abaixo apresentará alertas de gravidade 0 e 1, atualizando a cada 60 minutos.

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)

Passos seguintes