Optimera din SQL-miljö med SQL Server Hälsokontroll-lösningen i Azure Monitor

Symbol för SQL-hälsokontroll

Du kan använda SQL Health Check-lösningen för att regelbundet utvärdera riskerna och hälsotillståndet för dina servermiljöer. Den här artikeln hjälper dig att installera lösningen så att du kan vidta åtgärder för potentiella problem.

Den här lösningen innehåller en prioriterad lista över rekommendationer som är specifika för din distribuerade serverinfrastruktur. Rekommendationerna kategoriseras i sex fokusområden som hjälper dig att snabbt förstå risken och vidta korrigerande åtgärder.

Rekommendationerna baseras på den kunskap och erfarenhet som Microsoft-tekniker har fått från tusentals kundbesök. Varje rekommendation ger vägledning om varför ett problem kan vara viktigt för dig och hur du implementerar de föreslagna ändringarna.

Du kan välja de fokusområden som är viktigast för din organisation och spåra dina framsteg mot att köra en riskfri och felfri miljö.

När du har lagt till lösningen och en utvärdering har slutförts visas sammanfattningsinformation för fokusområden på instrumentpanelen för SQL-hälsokontroll för infrastrukturen i din miljö. I följande avsnitt beskrivs hur du använder informationen på instrumentpanelen för SQL-hälsokontroll, där du kan visa och sedan vidta rekommenderade åtgärder för din SQL Server infrastruktur.

bild av panelen SQL-hälsokontroll

bild av instrumentpanelen för SQL-hälsokontroll

Förutsättningar

  • Sql Health Check-lösningen kräver en version av .NET Framework 4.6.2 som stöds installerad på varje dator som har Microsoft Monitoring Agent (MMA) installerat. MMA-agenten används av System Center 2016 – Operations Manager och Operations Manager 2012 R2 och Azure Monitor.

  • Lösningen stöder SQL Server version 2012, 2014, 2016, 2017 och 2019.

  • En Log Analytics-arbetsyta för att lägga till SQL Health Check-lösningen från Azure Marketplace i Azure Portal. För att kunna installera lösningen måste du vara administratör eller deltagare i Azure-prenumerationen.

    Anteckning

    När du har lagt till lösningen läggs den AdvisorAssessment.exe filen till på servrar med agenter. Konfigurationsdata läse och skickas sedan till Azure Monitor i molnet för bearbetning. Logik tillämpas på mottagna data och molntjänsten registrerar data.

För att utföra hälsokontrollen mot dina SQL Server servrar behöver de en agent och anslutning till Azure Monitor med någon av följande metoder som stöds:

  1. Installera Microsoft Monitoring Agent (MMA) om servern inte redan övervakas av System Center 2016 – Operations Manager eller Operations Manager 2012 R2.
  2. Om den övervakas med System Center 2016 – Operations Manager eller Operations Manager 2012 R2 och hanteringsgruppen inte är integrerad med Azure Monitor, kan servern finnas i flera miljöer med Log Analytics för att samla in data och vidarebefordra till tjänsten och fortfarande övervakas av Operations Manager.
  3. Om operations manager-hanteringsgruppen annars är integrerad med tjänsten måste du lägga till domänkontrollanterna för datainsamling av tjänsten genom att följa stegen under Lägg till agenthanterade datorer när du har aktiverat lösningen på din arbetsyta.

Agenten på din SQL Server som rapporterar till en Operations Manager-hanteringsgrupp, samlar in data, vidarebefordrar till sin tilldelade hanteringsserver och sedan skickas direkt från en hanteringsserver till Azure Monitor. Data skrivs inte till Operations Manager-databaserna.

Om SQL Server övervakas av Operations Manager måste du konfigurera ett Kör som-konto för Operations Manager. Mer information finns i Kör som-konton för Operations Manager för Azure Monitor nedan.

Information om datainsamling i SQL-hälsokontroll

SQL-hälsokontroll samlar in data från följande källor med hjälp av den agent som du har aktiverat:

  • Windows Management Instrumentation (WMI)
  • Register
  • Prestandaräknare
  • SQL Server resultat för dynamisk hanteringsvy

Data samlas in på SQL Server och vidarebefordras till Log Analytics var sjunde dag.

Kör som-konton i Operations Manager för Log Analytics

Log Analytics använder Operations Manager-agenten och hanteringsgruppen för att samla in och skicka data till Log Analytics-tjänsten. Log Analytics bygger på hanteringspaket för arbetsbelastningar för att tillhandahålla mervärdestjänster. Varje arbetsbelastning kräver arbetsbelastningsspecifika behörigheter för att köra hanteringspaket i olika säkerhetskontexter, till exempel ett domänanvändarkonto. Du måste ange information om autentiseringsuppgifter genom att konfigurera ett Kör som-konto för Operations Manager.

Använd följande information för att ange Operations Manager Kör som-kontot för SQL-hälsokontroll.

Ange Kör som-konto för SQL-hälsokontroll

Om du redan använder SQL Server-hanteringspaketet bör du använda den Kör som-konfigurationen.

Så här konfigurerar du Kör som-kontot för SQL i driftkonsolen

Anteckning

Som standard körs arbetsflöden i hanteringspaketet i säkerhetskontexten för det lokala systemkontot. Om du använder Microsoft Monitoring Agent som är ansluten direkt till tjänsten i stället för att rapportera direkt till en Operations Manager-hanteringsgrupp hoppar du över steg 1–5 nedan och kör T-SQL- eller PowerShell-exemplet och anger NT AUTHORITY\SYSTEM som användarnamn.

  1. Öppna driftkonsolen i Operations Manager och klicka sedan på Administration.

  2. Under Kör som-konfiguration klickar du på Profiler och öppnar Kör som-profil för SQL-utvärdering.

  3. På sidan Kör som-konton klickar du på Lägg till.

  4. Välj ett Kör som-konto i Windows som innehåller de autentiseringsuppgifter som krävs för SQL Server eller klicka på Ny för att skapa ett.

    Anteckning

    Kör som-kontotypen måste vara Windows. Kör som-kontot måste också ingå i gruppen Lokala administratörer på alla Windows-servrar som är värdar för SQL Server-instanser.

  5. Klicka på Spara.

  6. Ändra och kör sedan följande T-SQL-exempel på varje SQL Server-instans för att bevilja de minsta behörigheter som krävs för att Kör som-kontot ska kunna utföra hälsokontrollen. Du behöver dock inte göra detta om ett Kör som-konto redan är en del av sysadmin-serverrollen på SQL Server instanser.

    ---
    -- Replace <UserName> with the actual user name being used as Run As Account.
    USE master

    -- Create login for the user, comment this line if login is already created.
    CREATE LOGIN [<UserName>] FROM WINDOWS

    -- Grant permissions to user.
    GRANT VIEW SERVER STATE TO [<UserName>]
    GRANT VIEW ANY DEFINITION TO [<UserName>]
    GRANT VIEW ANY DATABASE TO [<UserName>]

    -- Add database user for all the databases on SQL Server Instance, this is required for connecting to individual databases.
    -- NOTE: This command must be run anytime new databases are added to SQL Server instances.
    EXEC sp_msforeachdb N'USE [?]; CREATE USER [<UserName>] FOR LOGIN [<UserName>];'

Så här konfigurerar du kör som-kontot för SQL med hjälp av Windows PowerShell

Öppna ett PowerShell-fönster och kör följande skript när du har uppdaterat det med din information:

    import-module OperationsManager
    New-SCOMManagementGroupConnection "<your management group name>"

    $profile = Get-SCOMRunAsProfile -DisplayName "SQL Assessment Run As Profile"
    $account = Get-SCOMrunAsAccount | Where-Object {$_.Name -eq "<your run as account name>"}
    Set-SCOMRunAsProfile -Action "Add" -Profile $Profile -Account $Account

Förstå hur rekommendationer prioriteras

Varje rekommendation ges ett viktningsvärde som identifierar rekommendationens relativa betydelse. Endast de tio viktigaste rekommendationerna visas.

Hur vikter beräknas

Viktningar är aggregerade värden baserat på tre viktiga faktorer:

  • Sannolikheten att ett problem identifieras kommer att orsaka problem. En högre sannolikhet motsvarar en större övergripande poäng för rekommendationen.
  • Problemets inverkan på din organisation om det orsakar ett problem. En högre effekt motsvarar en större övergripande poäng för rekommendationen.
  • Det arbete som krävs för att implementera rekommendationen. En högre insats motsvarar en mindre övergripande poäng för rekommendationen.

Viktningen för varje rekommendation uttrycks som en procentandel av den totala poäng som är tillgänglig för varje fokusområde. Om en rekommendation i fokusområdet Säkerhet och efterlevnad till exempel har en poäng på 5 % ökar implementeringen av den rekommendationen din övergripande säkerhets- och efterlevnadspoäng med 5 %.

Fokusområden

Säkerhet och efterlevnad – Det här fokusområdet visar rekommendationer för potentiella säkerhetshot och överträdelser, företagsprinciper och tekniska, juridiska och regelmässiga efterlevnadskrav.

Tillgänglighet och affärskontinuitet – Det här fokusområdet visar rekommendationer för tjänsttillgänglighet, återhämtning av din infrastruktur och affärsskydd.

Prestanda och skalbarhet – Det här fokusområdet visar rekommendationer som hjälper din organisations IT-infrastruktur att växa, se till att DIN IT-miljö uppfyller aktuella prestandakrav och kan svara på föränderliga infrastrukturbehov.

Uppgradering, migrering och distribution – Det här fokusområdet visar rekommendationer som hjälper dig att uppgradera, migrera och distribuera SQL Server till din befintliga infrastruktur.

Åtgärder och övervakning – Det här fokusområdet visar rekommendationer för att effektivisera it-verksamheten, implementera förebyggande underhåll och maximera prestanda.

Ändrings- och konfigurationshantering – Det här fokusområdet visar rekommendationer för att skydda dagliga åtgärder, se till att ändringarna inte påverkar infrastrukturen negativt, upprätta ändringskontrollprocedurer och spåra och granska systemkonfigurationer.

Bör du sikta på 100 % inom varje fokusområde?

Inte nödvändigtvis. Rekommendationerna baseras på den kunskap och de erfarenheter som Microsoft-tekniker har fått vid tusentals kundbesök. Inga två serverinfrastrukturer är dock desamma, och specifika rekommendationer kan vara mer eller mindre relevanta för dig. Vissa säkerhetsrekommendationer kan till exempel vara mindre relevanta om dina virtuella datorer inte exponeras för Internet. Vissa tillgänglighetsrekommendationer kan vara mindre relevanta för tjänster som tillhandahåller ad hoc-datainsamling med låg prioritet och rapportering. Problem som är viktiga för ett moget företag kan vara mindre viktiga för ett nystartade företag. Du kanske vill identifiera vilka fokusområden som är dina prioriteringar och sedan titta på hur dina poäng ändras över tid.

Varje rekommendation innehåller vägledning om varför det är viktigt. Du bör använda den här vägledningen för att utvärdera om implementeringen av rekommendationen är lämplig för dig, med tanke på arten av dina IT-tjänster och organisationens affärsbehov.

Använda rekommendationer om fokusområden i hälsokontroll

Innan du kan använda en utvärderingslösning i Azure Monitor måste du ha lösningen installerad. När den har installerats kan du visa sammanfattningen av rekommendationerna med hjälp av panelen SQL-hälsokontroll på översiktssidan för Azure Monitor i Azure Portal.

Visa de sammanfattade efterlevnadsutvärderingarna för din infrastruktur och gå sedan in på detaljnivå i rekommendationer.

Visa rekommendationer för ett fokusområde och vidta korrigerande åtgärder

  1. Logga in på Azure Portal på https://portal.azure.com.
  2. I Azure Portal klickar du på knappen Fler tjänster längst upp till vänster. I listan över resurser skriver du Monitor. När du börjar skriva filtreras listan baserat på det du skriver. Välj Monitor.
  3. I avsnittet Insikter på menyn väljer du Mer.
  4. På sidan Översikt klickar du på panelen SQL-hälsokontroll .
  5. På sidan Hälsokontroll granskar du sammanfattningsinformationen i något av fokusområdesavsnitten och klickar sedan på ett för att visa rekommendationer för det fokusområdet.
  6. På någon av fokusområdessidorna kan du visa de prioriterade rekommendationerna för din miljö. Klicka på en rekommendation under Berörda objekt för att visa information om varför rekommendationen görs.

    bild av rekommendationer för SQL-hälsokontroll
  7. Du kan vidta korrigerande åtgärder som föreslås i Föreslagna åtgärder. När objektet har åtgärdats registrerar senare utvärderingar att rekommenderade åtgärder har vidtagits och att efterlevnadspoängen ökar. Korrigerade objekt visas som Skickade objekt.

Ignorera rekommendationer

Om du har rekommendationer som du vill ignorera kan du skapa en textfil som Azure Monitor använder för att förhindra att rekommendationer visas i dina utvärderingsresultat.

Identifiera rekommendationer som du kommer att ignorera

  1. I Menyn Azure Monitor klickar du på Loggar.

  2. Använd följande fråga för att lista rekommendationer som har misslyckats för datorer i din miljö.

    SQLAssessmentRecommendation | where RecommendationResult == "Failed" | sort by Computer asc | project Computer, RecommendationId, Recommendation
    

    Här är en skärmbild som visar loggfrågan:

    misslyckade rekommendationer

  3. Välj rekommendationer som du vill ignorera. Du använder värdena för RecommendationId i nästa procedur.

Skapa och använda en IgnoreRecommendations.txt textfil

  1. Skapa en fil med namnet IgnoreRecommendations.txt.
  2. Klistra in eller skriv varje RecommendationId för varje rekommendation som du vill att Azure Monitor ska ignorera på en separat rad och sedan spara och stänga filen.
  3. Placera filen i följande mapp på varje dator där du vill att Azure Monitor ska ignorera rekommendationer.
    • På datorer med Microsoft Monitoring Agent (anslutet direkt eller via Operations Manager) – SystemDrive:\Program Files\Microsoft Monitoring Agent\Agent
    • På Operations Manager-hanteringsservern – SystemDrive:\Program Files\Microsoft System Center 2012 R2\Operations Manager\Server
    • På Operations Manager 2016-hanteringsservern – SystemDrive:\Program Files\Microsoft System Center 2016\Operations Manager\Server

Kontrollera att rekommendationer ignoreras

  1. När nästa schemalagda utvärdering har körts markeras de angivna rekommendationerna som standard var sjunde dag och ignoreras och visas inte på utvärderingsinstrumentpanelen.

  2. Du kan använda följande loggsökningsfrågor för att visa en lista över alla ignorerade rekommendationer.

    SQLAssessmentRecommendation | where RecommendationResult == "Ignored" | sort by Computer asc | project Computer, RecommendationId, Recommendation
    
  3. Om du senare bestämmer dig för att du vill se ignorerade rekommendationer kan du ta bort alla IgnoreRecommendations.txt filer eller ta bort Rekommendations-ID:t från dem.

Vanliga frågor och svar

Vilka kontroller utförs av SQL-utvärderingslösningen?

  • Följande fråga visar en beskrivning av alla kontroller som utförs för närvarande:
SQLAssessmentRecommendation
| distinct RecommendationId, FocusArea, ActionArea, Recommendation, Description
| sort by FocusArea,ActionArea, Recommendation

Resultaten kan sedan exporteras till Excel för ytterligare granskning.

Hur ofta körs en hälsokontroll?

  • Kontrollen körs var sjunde dag.

Finns det något sätt att konfigurera hur ofta kontrollen körs?

  • Inte just nu.

Om en annan server identifieras efter att jag har lagt till SQL Health Check-lösningen, kommer den att kontrolleras?

  • Ja, när den har upptäckts kontrolleras den från och med den, var sjunde dag.

När tas den bort från hälsokontrollen om en server inaktiveras?

  • Om en server inte skickar data på tre veckor tas den bort.

Vad är namnet på den process som utför datainsamlingen?

  • AdvisorAssessment.exe

Hur lång tid tar det innan data samlas in?

  • Den faktiska datainsamlingen på servern tar cirka 1 timme. Det kan ta längre tid på servrar som har ett stort antal SQL-instanser eller databaser.

Vilken typ av data samlas in?

  • Följande typer av data samlas in:
    • WMI
    • Register
    • Prestandaräknare
    • SQL-dynamiska hanteringsvyer (DMV).

Finns det något sätt att konfigurera när data samlas in?

  • Inte just nu.

Varför måste jag konfigurera ett Kör som-konto?

  • För SQL Server körs ett litet antal SQL-frågor. För att de ska kunna köras måste ett Kör som-konto med VIEW SERVER STATE-behörigheter till SQL användas. För att kunna köra frågor mot WMI krävs dessutom autentiseringsuppgifter för lokal administratör.

Varför ska du bara visa de 10 främsta rekommendationerna?

  • I stället för att ge dig en fullständig överväldigande lista över uppgifter rekommenderar vi att du fokuserar på att ta itu med de prioriterade rekommendationerna först. När du har åtgärdat dem blir ytterligare rekommendationer tillgängliga. Om du föredrar att se den detaljerade listan kan du visa alla rekommendationer med loggsökningen i Log Analytics.

Finns det något sätt att ignorera en rekommendation?

Nästa steg

  • Loggfrågor för att lära dig hur du analyserar detaljerade SQL Health Check-data och rekommendationer.