Monitorare le risorse delegate su larga scala

In qualità di provider di servizi, potrebbe essere stato eseguito l'onboarding di più tenant dei clienti in Azure Lighthouse. Azure Lighthouse consente ai provider di servizi di eseguire operazioni su larga scala tra più tenant contemporaneamente, rendendo più efficienti le attività di gestione.

Questo argomento illustra come usare i log di Monitoraggio di Azure in modo scalabile nei tenant dei clienti gestiti. Anche se in questo argomento si fa riferimento a provider di servizi e clienti, queste linee guida si applicano anche alle aziende che usano Azure Lighthouse per gestire più tenant.

Nota

Assicurarsi che agli utenti dei tenant di gestione siano stati concessi i ruoli necessari per la gestione delle aree di lavoro Log Analytics nelle sottoscrizioni dei clienti delegate.

Creare aree di lavoro Log Analytics

Per raccogliere i dati, è necessario creare aree di lavoro Log Analytics. Queste aree di lavoro Log Analytics sono ambienti univoci per i dati raccolti da Monitoraggio di Azure. Ogni area di lavoro ha un proprio repository di dati e una propria configurazione, mentre le origini dati e le soluzioni sono configurate per l'archiviazione dei dati in un'area di lavoro specifica.

È consigliabile creare queste aree di lavoro direttamente nei tenant dei clienti. In questo modo i dati rimangono nei tenant invece di essere esportati nelle proprie. La creazione delle aree di lavoro nei tenant dei clienti consente il monitoraggio centralizzato di qualsiasi risorsa o servizio supportato da Log Analytics, offrendo maggiore flessibilità sui tipi di dati monitorati. Le aree di lavoro create nei tenant dei clienti sono necessarie per raccogliere informazioni dalle impostazioni di diagnostica.

Suggerimento

Qualsiasi account di automazione usato per accedere ai dati da un'area di lavoro Log Analytics deve essere creato nello stesso tenant dell'area di lavoro.

È possibile creare un'area di lavoro Log Analytics usando il portale di Azure, usando i modelli di Resource Manager di Azure o usando Azure PowerShell.

Importante

Se tutte le aree di lavoro vengono create nei tenant dei clienti, i provider di risorse Microsoft.Insights devono essere registrati anche in una sottoscrizione nel tenant di gestione. Se il tenant di gestione non ha una sottoscrizione di Azure esistente, è possibile registrare manualmente il provider di risorse usando i comandi di PowerShell seguenti:

$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

Distribuire criteri che registrano i dati

Dopo aver creato le aree di lavoro Log Analytics, è possibile distribuire Criteri di Azure tra le gerarchie dei clienti in modo che i dati di diagnostica vengano inviati all'area di lavoro appropriata in ogni tenant. I criteri esatti distribuiti possono variare, a seconda dei tipi di risorse da monitorare.

Per altre informazioni sulla creazione di criteri, vedere Esercitazione: Creare e gestire i criteri per applicare la conformità. Questo strumento della community fornisce uno script che consente di creare criteri per monitorare i tipi di risorse specifici scelti.

Dopo aver determinato i criteri da distribuire, è possibile distribuirli nelle sottoscrizioni delegate su larga scala.

Analizzare i dati raccolti

Dopo aver distribuito i criteri, i dati verranno registrati nelle aree di lavoro Log Analytics create in ogni tenant del cliente. Per ottenere informazioni dettagliate su tutti i clienti gestiti, è possibile usare strumenti come Cartelle di lavoro di Monitoraggio di Azure per raccogliere e analizzare le informazioni da più origini dati.

Eseguire query sui dati nelle aree di lavoro dei clienti

È possibile eseguire query di log per recuperare i dati nelle aree di lavoro Log Analytics in tenant dei clienti diversi creando un'unione che include più aree di lavoro. Includendo la colonna TenantID, è possibile visualizzare i risultati che appartengono ai tenant.

La query di esempio seguente crea un'unione nella tabella AzureDiagnostics tra aree di lavoro in due tenant dei clienti distinti. I risultati mostrano le colonne Category, ResourceGroup e TenantID.

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

Per altri esempi di query in più aree di lavoro Log Analytics, vedere Creare una query di log tra più aree di lavoro e app in Monitoraggio di Azure.

Importante

Se si usa un account di automazione usato per eseguire query sui dati da un'area di lavoro Log Analytics, tale account di automazione deve essere creato nello stesso tenant dell'area di lavoro.

Visualizzare gli avvisi tra i clienti

È possibile visualizzare gli avvisi per le sottoscrizioni delegate nei tenant dei clienti gestiti.

Dal tenant di gestione è possibile creare, visualizzare e gestire gli avvisi del log attività nel portale di Azure o tramite API e strumenti di gestione.

Per aggiornare automaticamente gli avvisi tra più clienti, usare una query di Azure Resource Graph per filtrare gli avvisi. È possibile aggiungere la query al dashboard e selezionare tutti i clienti e le sottoscrizioni appropriati. Ad esempio, la query seguente visualizzerà la gravità 0 e 1 avvisi, aggiornando ogni 60 minuti.

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)

Passaggi successivi