Abilita il monitoraggio delle prestazioni per Microsoft SQL (anteprima)

Questo articolo spiega come abilitare e disabilitare il monitoraggio delle prestazioni per i servizi Microsoft SQL affinché i dati sulle prestazioni appaiono nella pagina Performance del Database Hub. Abilitare il monitoraggio delle prestazioni non comporta costi aggiuntivi. Non è necessario distribuire o mantenere agenti di monitoraggio, archivi dati o altre infrastrutture di monitoraggio.

Important

Questa funzionalità si trova in Anteprima.

I passaggi per attivare il monitoraggio delle prestazioni variano a seconda del servizio. Dopo aver attivato il monitoraggio, ogni servizio invia dati di performance alla stessa pipeline di telemetria. Il Database Hub utilizza questi dati per aiutare a identificare problemi di performance e creare dashboard. Puoi anche consultare direttamente la telemetria con KQL. Per ulteriori informazioni, vedi Query telemetria di monitoraggio delle prestazioni. Questo articolo tratta i seguenti servizi:

Puoi visualizzare le risorse Microsoft SQL nel Database Hub da Azure, Fabric e on-premises. Sono inclusi i seguenti tipi di risorse:

  • Database SQL di Microsoft Azure
  • Istanza gestita di SQL di Azure (Istanza gestita di Azure SQL)
  • SQL Server nelle macchine virtuali Azure
  • SQL Server abilitato da Azure Arc
  • pool elastici di database SQL di Azure
  • Database SQL nell'ambiente Fabric

I seguenti tipi di risorse sono visibili nel Database Hub, ma la pagina Performance non li supporta ancora:

  • Database SQL nell'ambiente Fabric
  • pool elastici di database SQL di Azure
  • Istanza gestita di SQL di Azure (Istanza gestita di Azure SQL)
  • Il monitoraggio delle prestazioni non raccoglie dati dai database in database SQL di Azure elastic pool o da repliche secondarie.

Disponibilità regionale e gestione dei dati

Il monitoraggio delle prestazioni è disponibile per le risorse Microsoft SQL nelle seguenti regioni Azure. Durante l'anteprima, i cloud governativi, sovrani e isolati non sono supportati. Per altre informazioni, si veda Disponibilità di Fabric a livello di area.

  • Brazil South
  • Canada Central
  • Canada East
  • Central US
  • East US
  • Stati Uniti orientali 2
  • Stati Uniti centro-settentrionali
  • Stati Uniti centro-meridionali
  • Stati Uniti centro-occidentali
  • West US
  • West US 2 (Regione Ovest degli Stati Uniti 2)
  • Stati Uniti occidentali 3

Il monitoraggio delle prestazioni raccoglie dati sulle prestazioni dalle viste di gestione dinamica (DMV) sulle tue risorse SQL. Il monitoraggio delle prestazioni non raccoglie dati personali o contenuti dei clienti, e i dati non vengono memorizzati a riposo al di fuori della geografia della risorsa SQL monitorata.

Registrare il provider di risorse di Azure

Per visualizzare i dati di monitoraggio delle prestazioni, registra il Microsoft.AzureArcData fornitore di risorse in ogni abbonamento che contiene le risorse del database che desideri monitorare. Per maggiori informazioni, consulta il registro dei fornitori in Arizona.

az provider register --namespace Microsoft.AzureArcData

Per verificare lo stato di registrazione, esegui il seguente comando. La registrazione è completa quando il comando restituisce Registered.

az provider show --namespace Microsoft.AzureArcData --query "registrationState" --output tsv

Abilita il monitoraggio delle prestazioni per database SQL di Azure

Usare uno dei metodi seguenti:

  • Nel Database Hub, vai alla pagina Estate , seleziona la risorsa e poi seleziona Abilita il monitoraggio delle prestazioni.
  • Esegui il seguente script T-SQL su ogni database utente che vuoi monitorare. Non eseguire lo script sul master database. Per applicare lo script a più server contemporaneamente, prendi in considerazione le query multiserver in SQL Server Management Studio (SSMS). Aggiungi la MS_EnablePerformanceMonitoringPreview proprietà estesa a ogni database utente che vuoi monitorare.
IF EXISTS (
    SELECT 1
    FROM sys.extended_properties
    WHERE class = 0
      AND name = N'MS_EnablePerformanceMonitoringPreview'
)
BEGIN
    EXEC sys.sp_updateextendedproperty
        @name = N'MS_EnablePerformanceMonitoringPreview',
        @value = N'true';
END
ELSE
BEGIN
    EXEC sys.sp_addextendedproperty
        @name = N'MS_EnablePerformanceMonitoringPreview',
        @value = N'true';
END;
GO

Come disabilitare il monitoraggio delle prestazioni per database SQL di Azure

Per smettere di raccogliere dati di performance per un database utente, cambia @value = N'true' a @value = N'false' in entrambe le chiamate di procedura, e poi riesegui lo script T-SQL su quel database.

Abilita il monitoraggio delle prestazioni per SQL Server su VM Azure

Per abilitare il monitoraggio delle prestazioni per SQL Server su VM Azure, aggiungi il DatabaseWatcheronAzureVM flag feature alle impostazioni pubbliche dell'estensione SQL IaaS Agent. L'estensione raccoglie quindi dati di performance dall'istanza di SQL Server e utilizza l'identità gestita assegnata al sistema della VM per caricarli su un endpoint telemetrico regionale. Il monitoraggio è configurato per ogni VM. Abilitare il flag di funzionalità su una VM non abilita il monitoraggio sulle altre VM.

Per verifiche, risoluzione dei problemi e l'elenco completo dei dataset raccolti, vedi Abilita il monitoraggio delle prestazioni per SQL Server su VM Azure.

Prerequisiti per SQL Server su Azure VM

  • Il monitoraggio delle prestazioni supporta SQL Server 2016 SP1 e versioni successive su VM Azure. Le versioni di SQL Server precedenti a SQL Server 2016 SP1 non sono supportate.
  • Il monitoraggio delle prestazioni raccoglie tutti i dataset per le edizioni SQL Server Enterprise e Standard. Per le edizioni SQL Server Developer, Express e Evaluation, il monitoraggio delle prestazioni raccoglie solo i dati di connessione del cliente.
  • Devi installare la versione 2.0.229.0dell'estensione SQL IaaS Agent o successiva in modalità di gestione completa. È necessario abilitare l'estensione e il relativo stato di provisioning deve essere Succeeded.
  • La VM deve avere abilitata un'identità gestita assegnata dal sistema .
  • La risorsa di istanza di SQL Server deve essere disponibile tramite un inventario unificato.
  • Devi registrare il Microsoft.AzureArcData fornitore di risorse per l'abbonamento.
  • La VM deve consentire la connettività HTTPS in uscita sulla porta 443 a telemetry.<region>.arcdataservices.com, dove <region> è la regione Azure che ospita la VM.
  • Ti serve l'ultima versione della interfaccia della riga di comando di Azure.
  • È necessario il permesso di visualizzare e aggiornare le estensioni sulla VM, come l'appartenenza al ruolo di Virtual Machine Contributor .

Come abilitare il monitoraggio delle prestazioni per SQL Server su VM Azure

Important

Le impostazioni delle estensioni SQL IaaS Agent non sono cumulative. Quando aggiorni l'estensione, includi tutte le impostazioni pubbliche esistenti per evitare di disabilitare involontariamente un'altra funzione.

I seguenti passaggi di PowerShell recuperano le impostazioni pubbliche attuali, aggiungono il flag di funzionalità di monitoraggio delle prestazioni e applicano le impostazioni unite all'estensione.

  1. Apri PowerShell in un ambiente dove è installata la interfaccia della riga di comando di Azure, e poi accedi ad Azure.

    az login
    
  2. Imposta le variabili per la tua VM SQL Server.

    $subscriptionId = "<subscription-id>"
    $resourceGroup = "<resource-group>"
    $vmName = "<vm-name>"
    
    az account set --subscription $subscriptionId
    
  3. Recupera le impostazioni attuali dell'estensione SQL IaaS Agent.

    $extension = az vm extension show `
      --resource-group $resourceGroup `
      --vm-name $vmName `
      --name SqlIaasExtension `
      --query "{settings:settings,typeHandlerVersion:typeHandlerVersion}" `
      --output json | ConvertFrom-Json
    
    if ($null -eq $extension.settings) {
      $settings = [pscustomobject]@{}
    }
    else {
      $settings = $extension.settings
    }
    
  4. Aggiungi il DatabaseWatcheronAzureVM feature flag mantenendo i feature flag esistenti.

    $monitoringFlag = [pscustomobject]@{
      Name = "DatabaseWatcheronAzureVM"
      Enable = $true
    }
    
    $featureFlags = @(
      $settings.FeatureFlags |
        Where-Object { $_.Name -ne $monitoringFlag.Name }
    )
    $featureFlags += $monitoringFlag
    
    $settings | Add-Member `
      -MemberType NoteProperty `
      -Name FeatureFlags `
      -Value $featureFlags `
      -Force
    
  5. Salva le impostazioni unite e applicale all'estensione SQL IaaS Agent.

    $settingsPath = Join-Path $env:TEMP "sqlvm-performance-monitoring-settings.json"
    
    try {
      $settings |
        ConvertTo-Json -Depth 50 |
        Out-File -FilePath $settingsPath -Encoding utf8
    
      az vm extension set `
        --resource-group $resourceGroup `
        --vm-name $vmName `
        --publisher Microsoft.SqlServer.Management `
        --name SqlIaaSAgent `
        --extension-instance-name SqlIaasExtension `
        --settings "@$settingsPath"
    }
    finally {
      Remove-Item $settingsPath -ErrorAction SilentlyContinue
    }
    
  6. Ripeti questi passaggi per ogni VM che vuoi monitorare.

L'estensione ricarica automaticamente le impostazioni pubbliche. Non è necessario riavviare il servizio IaaS Agent di SQL Server o la VM. La maggior parte dei dati sulle prestazioni è disponibile entro 3-5 minuti dall'entrata in vigore dell'impostazione. Alcuni dati basati sull'inventario possono richiedere fino a 15 minuti.

Per confermare che il monitoraggio è in esecuzione, controlla lo stato dell'estensione:

az vm extension show `
  --resource-group $resourceGroup `
  --vm-name $vmName `
  --name SqlIaasExtension `
  --instance-view `
  --query "instanceView.statuses[0].message" `
  --output tsv

Quando il monitoraggio delle prestazioni è in esecuzione e carica con successo i dati, lo stato include DatabaseMonitorArcPlugin: {"State":"Running","MetricsUploadStatus":"OK"}. Per confermare che i dati siano disponibili, esegui la query di test di connessione in Query telemetria di monitoraggio delle prestazioni.

Disabilita il monitoraggio delle prestazioni per SQL Server sulle VM Azure

Per smettere di raccogliere nuovi dati sulle prestazioni di una VM, imposta il DatabaseWatcheronAzureVM flag di funzionalità su false. Unisci la modifica alle impostazioni pubbliche esistenti in modo che le altre funzionalità di estensione SQL IaaS Agent non vengano influenzate.

  1. Completare i passaggi da 1 a 3 per abilitare il monitoraggio delle prestazioni per SQL Server su VM Azure per accedere, impostare le variabili e recuperare le impostazioni attuali.

  2. Imposta il DatabaseWatcheronAzureVM feature flag su false mantenendo i feature flag esistenti.

    $monitoringFlag = [pscustomobject]@{
      Name = "DatabaseWatcheronAzureVM"
      Enable = $false
    }
    
    $featureFlags = @(
      $settings.FeatureFlags |
        Where-Object { $_.Name -ne $monitoringFlag.Name }
    )
    $featureFlags += $monitoringFlag
    
    $settings | Add-Member `
      -MemberType NoteProperty `
      -Name FeatureFlags `
      -Value $featureFlags `
      -Force
    
  3. Completare il passo 5 in Abilita il monitoraggio delle prestazioni per SQL Server su VM Azure per applicare le impostazioni unite all'estensione.

Aspetta qualche minuto affinché la nuova impostazione entri in vigore, poi controlla di nuovo lo stato dell'estensione per confermare il cambiamento.

Abilita il monitoraggio delle prestazioni per SQL Server abilitato da Azure Arc

Il monitoraggio delle prestazioni per SQL Server abilitato da Azure Arc è attivato di default. Quando un'istanza soddisfa tutti i prerequisiti di questa sezione, raccoglie automaticamente i dati sulle prestazioni e non è necessario compiere altri passaggi. Per ulteriori informazioni, consulta Monitor SQL Server abilitato da Azure Arc.

Prerequisiti per SQL Server abilitati da Azure Arc

  • L'estensione Azure per SQL Server (WindowsAgent.SqlServer) deve essere versione 1.1.2504.99 o versioni successive.
  • SQL Server deve funzionare su Windows. SQL Server in Linux non è supportato. SQL Server su Windows Server 2012 R2 e versioni precedenti non è supportato.
  • SQL Server deve essere Standard o Enterprise Edition.
  • SQL Server deve essere versione 2016 SP1 o versioni successive.
  • Il server deve avere connettività con *.<region>.arcdataservices.com. Per altre informazioni, si veda Requisiti di rete.
  • Il tipo di licenza su SQL Server abilitato da Azure Arc deve essere Software Assurance o pay-as-you-go.
  • Ti serve un ruolo Azure che includa l'azione Microsoft.AzureArcData/sqlServerInstances/getTelemetry/. Il ruolo integrato Azure Hybrid Database Administrator - Read Only Service Role include questa azione. Per altre informazioni, vedere Ruoli predefiniti di Azure.
  • Al momento le istanze del cluster di failover non sono supportate.

Come abilitare il monitoraggio delle prestazioni per SQL Server abilitato da Azure Arc

I seguenti comandi consentono la raccolta dei dati sulle prestazioni. I comandi possono funzionare con successo, ma il sistema raccoglie dati sulle prestazioni solo quando l'istanza soddisfa tutti i prerequisiti di questa sezione.

Per attivare o disattivare la raccolta nel portale Azure:

  1. Nella pagina della risorsa per SQL Server con Azure Arc, selezionare Dashboard delle prestazioni (anteprima).
  2. Nella parte superiore del riquadro Dashboard delle prestazioni, selezionare Configura.
  3. Nel pannello Configura impostazioni di monitoraggio , usa il toggle per attivare la raccolta dati di monitoraggio.
  4. Selezionare Applica impostazioni.

Per abilitare la raccolta utilizzando la interfaccia della riga di comando di Azure, esegui il seguente comando. Sostituire i segnaposto per ID della sottoscrizione, gruppo di risorse e nome della risorsa.

az resource update --ids "/subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.AzureArcData/SqlServerInstances/<resource_name>" --set 'properties.monitoring.enabled=true' --api-version 2023-09-01-preview

Come disabilitare il monitoraggio delle prestazioni per SQL Server abilitato da Azure Arc

Per attivare o disattivare la raccolta nel portale Azure:

  1. Nella pagina della risorsa per SQL Server con Azure Arc, selezionare Dashboard delle prestazioni (anteprima).
  2. Nella parte superiore del riquadro Dashboard delle prestazioni, selezionare Configura.
  3. Nel pannello Configura impostazioni di monitoraggio , usa l'opzione per disattivare la raccolta dati di monitoraggio.
  4. Selezionare Applica impostazioni.

Per disabilitare la raccolta utilizzando la interfaccia della riga di comando di Azure, esegui il seguente comando. Sostituire i segnaposto per ID della sottoscrizione, gruppo di risorse e nome della risorsa.

az resource update --ids "/subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.AzureArcData/SqlServerInstances/<resource_name>" --set 'properties.monitoring.enabled=false' --api-version 2023-09-01-preview

Passo successivo