Configurare la registrazione diagnostica
Un aspetto importante di qualsiasi soluzione di Analysis Services è costituito dal monitoraggio delle prestazioni dei server. Azure Analysis Services è integrato con Monitoraggio di Azure. I log delle risorse di Monitoraggio di Azure consentono di monitorare e inviare log ad Archiviazione di Azure, trasmetterli a Hub eventi di Azure ed esportarli in log di Monitoraggio di Azure.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Informazioni registrate
È possibile selezionare le categorie Engine (Motore), Service (Servizio) e Metrics (Metriche).
Motore
Se si seleziona la categoria Engine (Motore) vengono registrati nel log tutti gli eventi estesi (XEvent). Non è possibile selezionare eventi singoli.
Categorie di eventi estesi | Nome evento |
---|---|
Controllo di sicurezza | Connessione di controllo |
Controllo di sicurezza | Disconnessione di controllo |
Controllo di sicurezza | Inizi e arresti server di controllo |
Report di stato | Inizio report di stato |
Report di stato | Fine report di stato |
Report di stato | Report di stato corrente |
Query | Inizio query |
Query | Fine query |
Comandi | Inizio comando |
Comandi | Fine comando |
Errori e avvisi | Error |
Rilevazione | Fine individuazione |
Notifica | Notifica |
Sessione | Inizializzazione sessione |
Locks | Deadlock |
Elaborazione delle query | Inizio query SE VertiPaq |
Elaborazione delle query | Fine query SE VertiPaq |
Elaborazione delle query | Corrispondenza cache query SE VertiPaq |
Elaborazione delle query | Inizio query diretta |
Elaborazione delle query | Fine query diretta |
Servizio
Nome operazione | Ambito |
---|---|
ResumeServer | Ripresa di un server |
SuspendServer | Sospensione di un server |
DeleteServer | Eliminare un server |
RestartServer | Riavvio di un server tramite SQL Server Management Studio o PowerShell |
GetServerLogFiles | Esportazione di un log del server tramite PowerShell |
ExportModel | Esportazione di un modello nel portale tramite Apri in Visual Studio |
Tutte le metriche
La categoria Metriche registra le stesse metriche del server nella tabella AzureMetrics. Se si usa lo scale-out delle query ed è necessario separare le metriche per ogni replica di lettura, usare invece la tabella AzureDiagnostics, in cui OperationName è uguale a LogMetric.
Configurare la registrazione diagnostica
Azure portal
Nel server del portale di Azure> fare clic su Impostazioni di diagnostica nel riquadro di spostamento sinistro e quindi fare clic su Attiva diagnostica.
In Impostazioni di diagnostica specificare le opzioni seguenti:
Nome. Immettere un nome per i log da creare.
Archivia in un account di archiviazione. Per usare questa opzione, è necessario un account di archiviazione esistente a cui connettersi. Vedere Creare un account di archiviazione. Seguire le istruzioni per creare un account di Resource Manager di uso generale, quindi selezionare l'account di archiviazione ritornando in questa pagina del portale. Potrebbero essere necessari alcuni minuti per visualizzare gli account di archiviazione appena creati nel menu a discesa.
Streaming in un hub eventi. Per usare questa opzione, sono necessari uno spazio dei nomi esistente e un hub eventi a cui connettersi. Per altre informazioni, vedere Creare uno spazio dei nomi di Hub eventi e un hub eventi usando il Portale di Azure. Tornare a questa pagina del portale per selezionare lo spazio dei nomi dell'hub eventi e il nome dei criteri.
Send to Azure Monitor (Log Analytics workspace) (Invia a Monitoraggio di Azure - area di lavoro Log Analytics). Per usare questa opzione, usare un'area di lavoro esistente o creare una nuova area di lavoro nel portale. Per altre informazioni sulla visualizzazione dei log, vedere Visualizzare i log nell'area di lavoro Log Analytics in questo articolo.
Engine (Motore). Selezionare questa opzione per registrare gli eventi estesi. Se si esegue l'archiviazione in un account di archiviazione, è possibile selezionare il periodo di mantenimento dati per i log delle risorse. Alla scadenza del periodo, i log verranno automaticamente eliminati.
Servizi. Selezionare questa opzione per registrare gli eventi a livello di servizio. Se si esegue l'archiviazione in un account di archiviazione, è possibile selezionare il periodo di conservazione dei dati per i log delle risorse. Alla scadenza del periodo, i log verranno automaticamente eliminati.
Metrics (Metriche). Selezionare questa opzione per archiviare informazioni dettagliate in Metrics (Metriche). Se si esegue l'archiviazione in un account di archiviazione, è possibile selezionare il periodo di conservazione dei dati per i log delle risorse. Alla scadenza del periodo, i log verranno automaticamente eliminati.
Fare clic su Salva.
Se si riceve il messaggio di errore "Impossibile aggiornare la diagnostica per <nome area di lavoro>. La sottoscrizione <ID sottoscrizione> non è registrata per l'uso di microsoft.insights", seguire le istruzioni riportate in Risolvere i problemi relativi a Diagnostica di Azure per registrare l'account, quindi ripetere questa procedura.
Se in seguito si vuole modificare la modalità di salvataggio dei log delle risorse, è possibile tornare in questa pagina e modificare le impostazioni.
PowerShell
Ecco i comandi di base per iniziare. Se si desiderano istruzioni dettagliate su come configurare la registrazione per un account di archiviazione usando PowerShell, vedere l'esercitazione più avanti in questo articolo.
Per abilitare le metriche e la registrazione delle risorse con PowerShell, usare i comandi seguenti:
Per abilitare la memorizzazione dei log delle risorse in un account di archiviazione, usare il comando seguente:
Set-AzDiagnosticSetting -ResourceId [your resource id] -StorageAccountId [your storage account id] -Enabled $true
L'ID account di archiviazione è l'ID risorsa per l'account di archiviazione a cui devono essere inviati i log.
Per abilitare lo streaming dei log delle risorse a un Hub eventi, usare questo comando:
Set-AzDiagnosticSetting -ResourceId [your resource id] -ServiceBusRuleId [your service bus rule id] -Enabled $true
L'ID regola del bus di servizio di Azure è una stringa nel formato seguente:
{service bus resource ID}/authorizationrules/{key name}
Per consentire l'invio dei log delle risorse a un'area di lavoro Log Analytics, usare questo comando:
Set-AzDiagnosticSetting -ResourceId [your resource id] -WorkspaceId [resource id of the log analytics workspace] -Enabled $true
È possibile ottenere l'ID risorsa dell'area di lavoro Log Analytics usando il comando seguente:
(Get-AzOperationalInsightsWorkspace).ResourceId
È possibile combinare questi parametri per abilitare più opzioni di output.
REST API
Informazioni su come modificare le impostazioni di diagnostica usando l'API REST di Monitoraggio di Azure.
Modello di Resource Manager
Informazioni su come abilitare le impostazioni di diagnostica durante la creazione di risorse con un modello di Resource Manager.
Gestire i log
I log sono in genere disponibili entro due ore dall'impostazione della registrazione. La gestione dei log nell'account di archiviazione è compito dell'utente:
- Usare i metodi di controllo di accesso standard di Azure per proteggere i log limitando l'accesso agli utenti specificati.
- Eliminare i log che non è più necessario mantenere nell'account di archiviazione.
- Assicurarsi di impostare un periodo di conservazione dopo il quale i log obsoleti vengono eliminati dall'account di archiviazione.
Visualizzare i log nell'area di lavoro Log Analytics
Le metriche e gli eventi del server sono integrati con gli eventi estesi nell'area personale di Log Analytics per consentirne l'analisi affiancata. L'area di lavoro Log Analytics può anche essere configurata in modo da ricevere gli eventi da altri servizi di Azure e offrire una vista olistica dei dati della registrazione diagnostica in tutta l'architettura.
Per visualizzare i dati di diagnostica, nell'area di lavoro Log Analytics aprire Log nel menu a sinistra.
Nel generatore di query espandere LogManagement>AzureDiagnostics. AzureDiagnostics include eventi del motore e del servizio. Viene immediatamente creata una query. Il campo EventClass_s contiene nomi xEvent, che potrebbero risultare familiari se sono stati usati xEvents per la registrazione locale. Fare clic su EventClass_s o su uno dei nomi degli eventi e l'area di lavoro Log Analytics continua a generare una query. Assicurarsi di salvare le query per un successivo riutilizzo.
Query di esempio
Esempio 1
Questa query restituisce le durate per ogni evento di fine query/fine aggiornamento per un database modello e un server. Se si aumentano le istanze del sistema, i risultati vengono suddivisi per replica perché il numero di replica è incluso in ServerName_s. Il raggruppamento per RootActivityId_g riduce il conteggio delle righe recuperato dall'API REST di Diagnostica di Azure e aiuta a rimanere entro i limiti descritti in Limiti di velocità di Log Analytics.
let window = AzureDiagnostics
| where ResourceProvider == "MICROSOFT.ANALYSISSERVICES" and Resource =~ "MyServerName" and DatabaseName_s =~ "MyDatabaseName" ;
window
| where OperationName has "QueryEnd" or (OperationName has "CommandEnd" and EventSubclass_s == 38)
| where extract(@"([^,]*)", 1,Duration_s, typeof(long)) > 0
| extend DurationMs=extract(@"([^,]*)", 1,Duration_s, typeof(long))
| project StartTime_t,EndTime_t,ServerName_s,OperationName,RootActivityId_g,TextData_s,DatabaseName_s,ApplicationName_s,Duration_s,EffectiveUsername_s,User_s,EventSubclass_s,DurationMs
| order by StartTime_t asc
Esempio 2
La query seguente restituisce la memoria e il consumo di QPU per un server. Se si aumentano le istanze del sistema, i risultati vengono suddivisi per replica perché il numero di replica è incluso in ServerName_s.
let window = AzureDiagnostics
| where ResourceProvider == "MICROSOFT.ANALYSISSERVICES" and Resource =~ "MyServerName";
window
| where OperationName == "LogMetric"
| where name_s == "memory_metric" or name_s == "qpu_metric"
| project ServerName_s, TimeGenerated, name_s, value_s
| summarize avg(todecimal(value_s)) by ServerName_s, name_s, bin(TimeGenerated, 1m)
| order by TimeGenerated asc
Esempio 3
La query seguente restituisce i contatori delle prestazioni del motore Analysis Services di righe lette al secondo per un server.
let window = AzureDiagnostics
| where ResourceProvider == "MICROSOFT.ANALYSISSERVICES" and Resource =~ "MyServerName";
window
| where OperationName == "LogMetric"
| where parse_json(tostring(parse_json(perfobject_s).counters))[0].name == "Rows read/sec"
| extend Value = tostring(parse_json(tostring(parse_json(perfobject_s).counters))[0].value)
| project ServerName_s, TimeGenerated, Value
| summarize avg(todecimal(Value)) by ServerName_s, bin(TimeGenerated, 1m)
| order by TimeGenerated asc
Sono disponibili centinaia di query. Per altre informazioni sulle query, vedere Introduzione alle query di log in Monitoraggio di Azure.
Abilitare la registrazione tramite PowerShell
In questa esercitazione rapida vengono creati un account di archiviazione nella stessa sottoscrizione e un gruppo di risorse come server di Analysis Services. Si usa quindi il cmdlet Set-AzDiagnosticSetting per attivare la registrazione della diagnostica e inviare i risultati al nuovo account di archiviazione.
Prerequisiti
Per completare l'esercitazione, sono necessarie le risorse seguenti:
- Un server di Azure Analysis Services esistente. Per istruzioni sulla creazione di una risorsa del server, vedere Creare un server nel portale di Azure o Creare un server Azure Analysis Services tramite PowerShell.
Connettersi alle sottoscrizioni
Avviare una sessione di Azure PowerShell e accedere all'account Azure con il comando seguente:
Connect-AzAccount
Nella finestra del browser a comparsa, immettere il nome utente e la password dell'account Azure. Azure PowerShell recupera tutte le sottoscrizioni associate a questo account e, per impostazione predefinita, usa la prima.
Se sono disponibili più sottoscrizioni, potrebbe essere necessario indicarne una specifica usata per creare l'insieme di credenziali delle chiavi di Azure. Digitare il comando seguente per visualizzare le sottoscrizioni relative all'account:
Get-AzSubscription
Per specificare quindi la sottoscrizione associata all'account di Azure Analysis Services per la registrazione, digitare:
Set-AzContext -SubscriptionId <subscription ID>
Nota
Se più sottoscrizioni sono associate all'account, è importante specificarne una.
Creare un nuovo account di archiviazione per i log
È possibile usare un account di archiviazione esistente per i log, purché sia nella stessa sottoscrizione del server. Per questa esercitazione si crea un nuovo account di archiviazione dedicato ai log di Analysis Services. Per praticità, i dettagli dell'account di archiviazione vengono memorizzati in una variabile denominata sa.
Viene usato anche lo stesso gruppo di risorse che contiene il server Analysis Services. Sostituire i valori di awsales_resgroup
, awsaleslogs
e West Central US
con valori di propria scelta:
$sa = New-AzStorageAccount -ResourceGroupName awsales_resgroup `
-Name awsaleslogs -Type Standard_LRS -Location 'West Central US'
Identificare l'account del server per i log
Impostare il nome dell'account su una variabile denominata account, dove ResourceName è il nome dell'account.
$account = Get-AzResource -ResourceGroupName awsales_resgroup `
-ResourceName awsales -ResourceType "Microsoft.AnalysisServices/servers"
Abilitazione della registrazione
Per abilitare la registrazione, usare il cmdlet Set-AzDiagnosticSetting con le variabili create per il nuovo account di archiviazione, l'account del server e la categoria. Eseguire questo comando, impostando il flag -Enabled su $true:
Set-AzDiagnosticSetting -ResourceId $account.ResourceId -StorageAccountId $sa.Id -Enabled $true -Categories Engine
L'output dovrebbe essere simile all'esempio seguente:
StorageAccountId :
/subscriptions/a23279b5-xxxx-xxxx-xxxx-47b7c6d423ea/resourceGroups/awsales_resgroup/providers/Microsoft.Storage/storageAccounts/awsaleslogs
ServiceBusRuleId :
EventHubAuthorizationRuleId :
Metrics
TimeGrain : PT1M
Enabled : False
RetentionPolicy
Enabled : False
Days : 0
Logs
Category : Engine
Enabled : True
RetentionPolicy
Enabled : False
Days : 0
Category : Service
Enabled : False
RetentionPolicy
Enabled : False
Days : 0
WorkspaceId :
Id : /subscriptions/a23279b5-xxxx-xxxx-xxxx-47b7c6d423ea/resourcegroups/awsales_resgroup/providers/microsoft.analysisservic
es/servers/awsales/providers/microsoft.insights/diagnosticSettings/service
Name : service
Type :
Location :
Tags :
Questo output conferma che la registrazione è abilitata per il server. Le informazioni vengono salvate nell'account di archiviazione.
È possibile anche impostare criteri di conservazione per i log, in modo che i log meno recenti vengano eliminati automaticamente. È, ad esempio, possibile impostare i criteri di conservazione usando il flag -RetentionEnabled impostato su $true e impostare il parametro -RetentionInDays su 90. I log antecedenti a 90 giorni vengono eliminati automaticamente.
Set-AzDiagnosticSetting -ResourceId $account.ResourceId`
-StorageAccountId $sa.Id -Enabled $true -Categories Engine`
-RetentionEnabled $true -RetentionInDays 90
Passaggi successivi
Per altre informazioni, vedere Registrazione delle risorse di Monitoraggio di Azure.
Vedere Set-AzDiagnosticSetting nella Guida di PowerShell.