Monitorar recursos delegados em escala

Como um provedor de serviços, é provável que você tenha integrado vários locatários ao Azure Lighthouse. O Azure Lighthouse permite que os provedores de serviços realizem operações em escala em vários locatários ao mesmo tempo, tornando as tarefas de gerenciamento mais eficientes.

Este tópico mostra como usar os logs do Azure Monitor de maneira escalonável nos locatários do cliente que você está gerenciando. Embora possamos nos referir a provedores de serviços e clientes neste tópico, essa orientação também se aplica a empresas que usam o Azure Lighthouse para gerenciar vários locatários.

Observação

Verifique se os usuários em seus locatários de gerenciamento receberam as funções necessárias para gerenciar espaços de trabalho do Log Analytics em suas assinaturas de cliente delegadas.

Criar workspace do Log Analytics

Para coletar dados, você precisará criar espaços de trabalho no Log Analytics. Esses espaços de trabalho do Log Analytics são ambientes exclusivos para dados coletados pelo Azure Monitor. Cada workspace tem seu próprio repositório de dados e configuração. As fontes de dados e as soluções são configuradas para armazenar seus dados em um determinado workspace.

É recomendável criar esses espaços de trabalho diretamente nos locatários do cliente. Dessa forma, os dados dos clientes permanecem em seus respectivos locatários em vez de serem exportados para o seu. Criar os espaços de trabalho nos locatários do cliente permite o monitoramento centralizado dos recursos ou serviços suportados pelo Log Analytics, proporcionando mais flexibilidade sobre os tipos de dados que você monitora. Os espaços de trabalho criados em locatários do cliente são necessários para coletar informações das configurações de diagnóstico.

Dica

Qualquer conta de automação usada para acessar dados de um espaço de trabalho do Log Analytics deve ser criada no mesmo locatário do espaço de trabalho.

Você pode criar um workspace do Log Analytics usando o portal do Azure, modelos do ARM ou o Azure PowerShell.

Importante

Se todos os espaços de trabalho forem criados nos locatários do cliente, o provedor de recursos Microsoft.Insights também deverá ser registrado em uma assinatura no locatário de gerenciamento. Se seu locatário de gerenciamento não tiver uma assinatura do Azure existente, você poderá registrar o provedor de recursos manualmente usando 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

Implantar políticas que façam log de dados

Depois de criar seus espaços de trabalho no Log Analytics, você pode implantar o Azure Policy em suas hierarquias de clientes para que os dados de diagnóstico sejam enviados para o espaço de trabalho apropriado em cada locatário. As políticas exatas que você implanta podem variar, dependendo dos tipos de recurso que você deseja monitorar.

Para saber mais sobre a criação de políticas, consulte Tutorial: criar e gerenciar políticas para impor conformidade. Essa ferramenta de comunidade fornece um script para ajudá-lo a criar políticas para monitorar os tipos de recursos específicos que você escolher.

Quando você determinar quais políticas implantar, poderá implantá-las em escala em suas assinaturas delegadas.

Analisar os dados coletados

Depois de implantar suas políticas, os dados serão registrados nos espaços de trabalho do Log Analytics que você criou em cada locatário do cliente. Para obter insights sobre todos os clientes gerenciados, você pode usar ferramentas como os Workbooks do Azure Monitor para coletar e analisar informações a partir de várias fontes de dados.

Consultar dados entre espaços de trabalho do cliente

Você pode executar consultas de log para recuperar dados entre espaços de trabalho do Log Analytics em locatários diferentes do cliente criando uma união que inclui vários espaços de trabalho. Ao incluir a coluna TenantID, você pode ver quais resultados pertencem a quais locatários.

A consulta de exemplo a seguir cria uma união na tabela AzureDiagnostics em espaços de trabalho em dois locatários de cliente separados. Os resultados mostram as colunas Category, 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ários workspaces do Log Analytics, confira Criar uma consulta de log em vários workspaces e aplicativos no Azure Monitor.

Importante

Se você usar uma conta de automação usada para consultar dados de um espaço de trabalho do Log Analytics, essa conta de automação deverá ser criada no mesmo locatário do espaço de trabalho.

Exibir alertas entre clientes

Você pode exibir alertas para as assinaturas delegadas nos locatários do cliente que você gerencia.

Do seu locatário de gerenciamento, você pode criar, exibir e gerenciar alertas do log de atividades no portal do Azure ou por meio de APIs e ferramentas de gerenciamento.

Para atualizar os alertas automaticamente em vários clientes, use uma consulta do Azure Resource Graph para filtrar alertas. Você pode fixar a consulta ao seu painel e selecionar todos os clientes e assinaturas apropriados. Por exemplo, a consulta abaixo exibirá os alertas de severidade 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)

Próximas etapas