Konfigurera diagnostisk loggning

En viktig del av Analysis Services är att övervaka hur servrarna fungerar. Azure Analysis Services är integrerat med Azure Monitor. Med Azure Monitor resursloggarkan du övervaka och skicka loggar till Azure Storage, strömma dem till Azure Event Hubsoch exportera dem till Azure Monitor loggar.

Resursloggning till lagrings-, Event Hubs- eller Azure Monitor loggar

Anteckning

Den här artikeln har uppdaterats till att använda Azure Az PowerShell-modulen. Az PowerShell-modulen är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Vad loggas?

Du kan välja kategorier för Motor, Tjänst och Mått.

Motor

Om du väljer Motor loggas alla xEvents. Du kan inte välja enskilda händelser.

XEvent-kategorier Händelsenamn
Säkerhetsgranskning Granskning inloggning
Säkerhetsgranskning Granskning utloggning
Säkerhetsgranskning Granskningsservern startar och stoppar
Lägesrapporter Förloppsrapport börjar
Lägesrapporter Förloppsrapport – slut
Lägesrapporter Aktuell förloppsrapport
Frågor Frågan börjar
Frågor Frågan slutar
Kommandon Kommandot Börjar
Kommandon Kommandoslut
Fel & varningar Fel
Identifiera Identifiera slutet
Meddelande Meddelande
Session Sessionsinitiering
Lås Dödläge
Frågebearbetning VertiPaq SE-frågan börjar
Frågebearbetning VertiPaq SE-frågan avslutas
Frågebearbetning VertiPaq SE-frågecachematchning
Frågebearbetning Direct Query Begin
Frågebearbetning Direct Query End

Tjänst

Åtgärdsnamn Inträffar när
ResumeServer Återuppta en server
SuspendServer Pausa en server
DeleteServer Ta bort en server
RestartServer Användaren startar om en server via SSMS eller PowerShell
GetServerLogFiles Användaren exporterar serverloggen via PowerShell
ExportModel Användaren exporterar en modell i portalen med hjälp av Öppna i Visual Studio

Alla mått

Kategorin Mått loggar samma servermått i tabellen AzureMetrics. Om du använder frågeutskalning och behöver separera mått för varje skrivskyddad replik använder du tabellen AzureDiagnostics i stället, där OperationName är lika med LogMetric.

Konfigurera diagnostikloggning

Azure Portal

  1. I Azure Portal > server klickar du på Diagnostikinställningar i det vänstra navigeringsfönstret och klickar sedan på Aktivera diagnostik.

    Aktivera resursloggning för Azure Cosmos DB i Azure Portal

  2. I Diagnostikinställningar anger du följande alternativ:

    • Namn. Ange ett namn för loggarna som ska skapas.

    • Arkivera till ett lagringskonto. Om du vill använda det här alternativet behöver du ett befintligt lagringskonto att ansluta till. Se Skapa ett lagringskonto. Följ instruktionerna för att Resource Manager ett allmänt konto och välj sedan ditt lagringskonto genom att gå tillbaka till den här sidan i portalen. Det kan ta några minuter innan nyligen skapade lagringskonton visas i den nedrullningsbara menyn.

    • Strömma till en händelsehubb. Om du vill använda det här alternativet behöver du ett befintligt namnområde för händelsehubben och en händelsehubb att ansluta till. Mer information finns i Skapa en namnrymd för en händelsehubb och en händelsehubb med Azure-portalen. Gå sedan tillbaka till den här sidan i portalen för att välja namnområdet för händelsehubben och principnamnet.

    • Skicka till Azure Monitor (Log Analytics-arbetsyta). Om du vill använda det här alternativet använder du antingen en befintlig arbetsyta eller skapar en ny arbetsyteresurs i portalen. Mer information om hur du visar dina loggar finns i Visa loggar på Log Analytics-arbetsytan i den här artikeln.

    • Motor. Välj det här alternativet för att logga xEvents. Om du arkiverar till ett lagringskonto kan du välja kvarhållningsperiod för resursloggarna. Loggarna försvinner automatiskt när kvarhållningsperioden har löpt ut.

    • Tjänst. Välj det här alternativet för att logga händelser på tjänstnivå. Om du arkiverar till ett lagringskonto kan du välja kvarhållningsperiod för resursloggarna. Loggarna försvinner automatiskt när kvarhållningsperioden har löpt ut.

    • Mått. Välj det här alternativet om du vill lagra utförliga data i Mått. Om du arkiverar till ett lagringskonto kan du välja kvarhållningsperiod för resursloggarna. Loggarna försvinner automatiskt när kvarhållningsperioden har löpt ut.

  3. Klicka på Spara.

    Om du får felmeddelandet "Det gick inte att uppdatera diagnostiken för <workspace name> . Prenumerationen <subscription id> har inte registrerats för användning av microsoft.insights." Följ instruktionerna Azure Diagnostics för att registrera kontot och försök sedan igen.

    Om du vill ändra hur dina resursloggar sparas när som helst i framtiden kan du gå tillbaka till den här sidan om du vill ändra inställningarna.

PowerShell

Här är de grundläggande kommandona som du kan använda för att komma igång. Om du vill ha stegvis hjälp med att konfigurera loggning till ett lagringskonto med hjälp av PowerShell kan du läsa självstudien senare i den här artikeln.

Om du vill aktivera mått och resursloggning med hjälp av PowerShell använder du följande kommandon:

  • Om du vill aktivera lagring av resursloggar i ett lagringskonto använder du det här kommandot:

    Set-AzDiagnosticSetting -ResourceId [your resource id] -StorageAccountId [your storage account id] -Enabled $true
    

    Ditt lagringskonto-ID är resurs-ID för det lagringskonto dit du vill skicka loggarna.

  • Om du vill aktivera strömning av resursloggar till en händelsehubb använder du det här kommandot:

    Set-AzDiagnosticSetting -ResourceId [your resource id] -ServiceBusRuleId [your service bus rule id] -Enabled $true
    

    Regel-ID för Azure Service Bus är en sträng med det här formatet:

    {service bus resource ID}/authorizationrules/{key name}
    
  • Om du vill skicka resursloggar till en Log Analytics-arbetsyta använder du det här kommandot:

    Set-AzDiagnosticSetting -ResourceId [your resource id] -WorkspaceId [resource id of the log analytics workspace] -Enabled $true
    
  • Du kan hämta resurs-ID för Log Analytics-arbetsytan med hjälp av följande kommando:

    (Get-AzOperationalInsightsWorkspace).ResourceId
    

Du kan kombinera dessa parametrar om du vill aktivera flera utdataalternativ.

REST-API

Lär dig hur du ändrar diagnostikinställningar med hjälp av REST-API i Azure Monitor.

Resource Manager-mall

Lär dig hur du aktiverar diagnostikinställningar när resursen skapas med hjälp av en Resource Manager-mall.

Hantera dina loggar

Loggar är vanligtvis tillgängliga inom några timmar efter att loggning har konfigureras. Det är upp till dig att hantera loggarna på ditt lagringskonto:

  • Använd åtkomstkontrollsmetoder för Azure av standardtyp för att skydda loggarna genom att begränsa vem som kan komma åt dem.
  • Ta bort loggar som du inte längre vill behålla på ditt lagringskonto.
  • Se till att ange en kvarhållningsperiod så att gamla loggar tas bort från ditt lagringskonto.

Visa loggar på Log Analytics-arbetsytan

Mått och serverhändelser är integrerade med xEvents i Log Analytics-arbetsytans resurs för sida-vid-sida-analys. Log Analytics-arbetsytan kan också konfigureras för att ta emot händelser från andra Azure-tjänster, vilket ger en holistisk vy över diagnostikloggningsdata i din arkitektur.

Om du vill visa dina diagnostikdata går du till Log Analytics-arbetsytan och öppnar Loggar på den vänstra menyn.

Loggsökningsalternativ i Azure Portal

Expandera LogManagement > AzureDiagnostics i frågeverktyget. AzureDiagnostics innehåller motor- och tjänsthändelser. Observera att en fråga skapas i farten. Fältet EventClasss innehåller xEvent-namn, som kan se bekant ut om du har använt _ xEvents för lokal loggning. Klicka på _ EventClasss eller något av händelsenamnen så fortsätter Log Analytics-arbetsytan att skapa en fråga. Glöm inte att spara dina frågor så att du kan återanvända dem senare.

Exempelfrågor

Exempel 1

Följande fråga returnerar varaktigheter för varje sluthändelse för fråga/uppdatering för en modelldatabas och server. Om resultatet skalas ut delas resultatet upp av repliken eftersom repliknumret ingår i ServerName_s. Gruppering efter RootActivityId_g minskar antalet rader som hämtas från Azure Diagnostics REST API och hjälper till att hålla sig inom gränserna enligt beskrivningen i Log Analytics-hastighetsbegränsningar.

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

Exempel 2

Följande fråga returnerar minnes- och QPU-förbrukning för en server. Om resultatet skalas ut delas resultatet upp av repliken eftersom repliknumret ingår i 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 

Exempel 3

Följande fråga returnerar radernas läs-/Analysis Services-motorns prestandaräknare för en 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 

Det finns hundratals frågor som du kan använda. Mer information om frågor finns i Kom igång med Azure Monitor loggfrågor.

Aktivera loggning med hjälp av PowerShell

I den här snabbkursen skapar du ett lagringskonto i samma prenumeration och resursgrupp som Analysis Service-servern. Sedan använder du Set-AzDiagnosticSetting för att aktivera diagnostikloggning och skicka utdata till det nya lagringskontot.

Förutsättningar

För att kunna slutföra den här självstudien måste du ha följande resurser:

Ansluta till dina prenumerationer

Starta en Azure PowerShell-session och logga in på ditt Azure-konto med följande kommando:

Connect-AzAccount

Ange användarnamnet och lösenordet för ditt Azure-konto i popup-fönstret i webbläsaren. Azure PowerShell identifierar alla prenumerationer som är associerade med det här kontot och använder den första som standard.

Om du har flera prenumerationer kan du behöva ange en som användes för att skapa Azure Key Vault. Skriv följande för att visa prenumerationerna för ditt konto:

Get-AzSubscription

Ange sedan den prenumeration som är associerad med det Azure Analysis Services som du loggar in genom att skriva:

Set-AzContext -SubscriptionId <subscription ID>

Anteckning

Om du har flera prenumerationer som är kopplade till ditt konto är det viktigt att ange prenumerationen.

Skapa ett nytt lagringskonto för dina loggar

Du kan använda ett befintligt lagringskonto för dina loggar, förutsatt att det finns i samma prenumeration som din server. I den här självstudien skapar du ett nytt lagringskonto som är dedikerat Analysis Services loggar. För att göra det enkelt lagrar du lagringskontoinformationen i en variabel med namnet sa.

Du använder också samma resursgrupp som den som innehåller din Analysis Services server. Ersätt värden för awsales_resgroup , och med dina egna awsaleslogs West Central US värden:

$sa = New-AzStorageAccount -ResourceGroupName awsales_resgroup `
-Name awsaleslogs -Type Standard_LRS -Location 'West Central US'

Identifiera serverkontot för dina loggar

Ange kontonamnet till en variabel med namnet account, där ResourceName är namnet på kontot.

$account = Get-AzResource -ResourceGroupName awsales_resgroup `
-ResourceName awsales -ResourceType "Microsoft.AnalysisServices/servers"

Aktivera loggning

Om du vill aktivera loggning använder Set-AzDiagnosticSetting-cmdleten tillsammans med variablerna för det nya lagringskontot, serverkontot och kategorin. Kör följande kommando och ange flaggan -Enabled till $true:

Set-AzDiagnosticSetting  -ResourceId $account.ResourceId -StorageAccountId $sa.Id -Enabled $true -Categories Engine

Utdata bör se ut ungefär som i följande exempel:

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                        :

Dessa utdata bekräftar att loggning nu är aktiverat för servern, vilket sparar information på lagringskontot.

Du kan också ange kvarhållningsprincip för dina loggar så att äldre loggar tas bort automatiskt. Ange till exempel bevarandeprincip med flaggan -RetentionEnabled till $true och ange parametern -RetentionInDays till 90. Loggar som är äldre än 90 dagar tas bort automatiskt.

Set-AzDiagnosticSetting -ResourceId $account.ResourceId`
 -StorageAccountId $sa.Id -Enabled $true -Categories Engine`
  -RetentionEnabled $true -RetentionInDays 90

Nästa steg

Läs mer om att Azure Monitor resursloggning.

Se Set-AzDiagnosticSetting i PowerShell-hjälpen.