Optymalizacja serwerów SQL Server za pomocą SQL Assessment z Azure Log Analytics


W poście nie będę opisywał usługi Azure Log Analytics. Dla rozpoczynających przygodę z OMS oraz usługą Azure Log Analytics polecam kurs MVA (http://Strefa.MS/kurs-mva-o-analizie-logow-w-oms) oraz zapoznanie się z materiałami podsumowującymi warsztaty IT Innovation, które miałem przyjemność prowadzić w kilku miastach polski w maju 2016 (http://Strefa.MS/podsumowanie-warsztatow-it-innovation-z-operations-management-suite-zasoby-i-kolejne-kroki).

Przechodząc do rzeczy... są serwery bazodanowe SQL Server i jest nadzieję, że są one skonfigurowane oraz zoptymalizowane poprawnie. Rozwiązanie SQL Assessment dostępne w ramach usługi Azure Log Analytics pomaga sprawdzić konfigurację serwerów SQL Server oraz podpowie co powinno zostać poprawione.

Rozwiązanie SQL Assessment priorytetyzuje rekomendacje z sześciu kategorii, pomagając Tobie zrozumieć istotę problemu. Rekomendacje bazują na wiedzy, doświadczeniu oraz dobrych praktykach inżynierów z Microsoft. Każda rekomendacja dostarcza wiedzę odnoście problemu i potencjalnych skutków oraz sugestie wraz z krokami jaki należy zrealizować aby rozwiązań problem.

oms-sql-tile01

Rysunek 1. Kafelek od SQL Assessment na stronie głównej

Rekomendacje

Każda rekomendacja jaka jest w SQL Assessment przypisana jest do kategorii i nadana jest jej waga. Poniżej charakterystyka obu atrybutów.

Kategorie

Sześć kategorii dostępnych w ramach SQL Assessment:

  1. Security and Compliance - zalecenia dotyczące potencjalnych zagrożeń bezpieczeństwa - polityki, ustawienia techniczne, prawo, wymagania regulacyjne.
  2. Availability and Business Continuity - zalecenia dotyczące dostępności usługi, odporności infrastruktury i ochrony biznesu.
  3. Performance and Scalability - zalecenia związane z wydajnością i potrzebami skalowania infrastruktury.
  4. Upgrade, Migration and Deployment - zalecenia dla IT aby był głównym motorem zmian innowacji, poprzez użycie najnowszych technologii oraz rozwiązań w celu dostarczenia biznesowi dodatkowej wartości.
  5. Operations and Monitoring - zalecenia związane z usprawnieniem operacyjności IT.
  6. Change and Configuration Management - zalecenia związane ze zmiana w kontekście negatywnego wpływu na infrastrukturę.

Waga

Waga jest kalkulowana na podstawie trzech parametrów:

  • Probability - Prawdopodobieństwo, że zidentyfikowany problem może spowodować problem. Im większe prawdopodobieństwo tym większa ogólna punktacja dla rekomendacji.
  • Impact  - Wpływ na środowisko, jeżeli problem się pojawi. Im większy wpływ tym większa ogólna punktacja dla rekomendacji.
  • Effort - Nakład pracy wymagany do zaimplementowania rozwiązania. Im większy nakład pracy tym mniejsza ogólna punktacja.

Waga każdego zalecenia jest wyrażona jako procent całkowitej liczby punktów dostępnych dla każdej kategorii np. jeśli zalecenie w kategorii Security and Compliance ma wynik w wysokości 5% i nastąpi jego realizacja to zalecenie zwiększy ogólny wynik Security and Compliance o 5%.

oms-sql-dashboard01

Rysunek 2. Sześć głównych kategorii

Instalacja i konfiguracja

Poniżej kroki jakie trzeba wykonać, w celu uruchomienia SQL Assessment w Azure Log Analytics. Zanim jednak przejdziemy do procedury, kilka ważnych informacji oraz wymagań:

  • SQL Assessment działa ze wszystkimi aktualnie wspieranymi wersjami SQL Server w edycjach Standard, Enterprise oraz Developer.
  • Agent musi być zainstalowany na serwerach z SQL Server.
  • .NET Framework 4 jest wymagany na każdym serwerze, gdzie będzie uruchomiony agent.
  • W przypadku integracji System Center Operations Manager i wykorzystania agenta SCOM, należy skonfigurować Run-As Account (procedura poniżej).

Jeżeli używasz agenta OMS zamiast agenta SCOM, Management Pack zawsze uruchamia się w kontekście konta Local System. Pomiń kroki 1-5 poniżej i uruchom przykład z T-SQL lub PowerShell wstawiając NT AUTHORITY\SYSTEM jako UserName.
SQL Assessment uruchamiany jest co 7 dni i zbiera dane pochodzące z WMI, rejestru, liczników wydajności oraz dynamicznych widoków SQL Server (DMV). Na chwilę obecną nie można zmienić harmonogramu uruchamiania SQL Assessment.

Krok 1 wariant 1 - Konfiguracja Operations Manager Run-As Account - wersja GUI

  1. W konsoli Operations Manager przejdź do Administration.
  2. Poniżej Run As Configuration, kliknij Profiles i otwórz OMS SQL Assessment Run As Profile.
  3. Na stronie Run As Accounts, kliknij Add.
  4. Wybierz konto Windows Run As, które zawiera poświadczenia dla SQL Server lub utwórz nowe klikając New.

    Typ konta Run As Account musi być Windows oraz być członkiem lokalnej grupy Administrators na Windows Server hostującym SQL Server.

  5. Kliknij Save.
  6. Zmodyfikuj i wykonaj poniższy przykładowy skrypt T-SQL, na każdej instancji SQL Server w celu przyznania minimalnych uprawnień wymaganych dla Run As Account dla SQL Assessment. Krok ten nie jest wymagany jeżeli konto Run As Account jest członkiem roli sysadmin na instancji SQL Server.
    --- Zamień <UserName> na nazwę użytkownika użytą jako Run As Account.
    USE master
    
    -- Utwórz login dla użytkownika. Zakomentuj poniższą linię jeżeli login już istnieje.
    CREATE LOGIN [<UserName>] FROM WINDOWS
    
    -- Nadaj uprawnienia dla użytkownika.
    GRANT VIEW SERVER STATE TO [<UserName>]
    GRANT VIEW ANY DEFINITION TO [<UserName>]
    GRANT VIEW ANY DATABASE TO [<UserName>]
    
    -- Dodaj użytkownika dla wszystkich baz danych na instancji SQL Server - wymagane do podłączenia dla poszczególnych baz danych.
    -- Uwaga: To polecenie musi być w wykonane za każdym razem po dodaniu nowej bazy danych do instancji.
    EXEC sp_msforeachdb N'USE [?]; CREATE USER [<UserName>] FOR LOGIN [<UserName>];'

Krok 1 wariant 2 - Konfiguracja Operations Manager Run-As Account - wersja PowerShell

  1. Otwórz konsolę PowerShell i uruchom poniższy przykładowy skrypt, aktualizując go o parametry Twojego środowiska.
    Import-Module OperationsManager
    New-SCOMManagementGroupConnection "<nazwa Management Group>"
    
    $profile = Get-SCOMRunAsProfile -DisplayName "OMS SQL Assessment Run As Profile"
    $account = Get-SCOMrunAsAccount | Where-Object {$_.Name -eq "<nazwa konta Run As Account>"}
    Set-SCOMRunAsProfile -Action "Add" -Profile $Profile -Account $Account

Krok 2 - Dodanie SQL Assessment

Tą operację należy wykonać z poziomu przeglądarki Internetowej po zalogowaniu się do usługi OMS.

  1. Na stronie Overview, wybierz kafelek Solutions Gallery.
  2. Na liście dostępnych obiektów zaznacz SQL Assessment, a następnie kliknij Add.

Przegląd rekomendacji

W momencie kiedy SQL Assesment przeanalizuję serwery SQL, dostępne będą dla niego rekomendacje. W celu ich podglądu w celu rozpoczęcia kroków naprawczych należy zastosować poniższa procedurę:

  1. Na stronie Overview kliknij kafelek SQL Assesment.
  2. Na stronie SQL Assesment, przejrzyj podsumowanie informacji z rożnych kategorii, a następnie kliknij jedną w celu zobaczenia rekomendacji.
  3. W szczegółach zobaczysz spriorytetyzowane zalecenia dla środowiska. Wybierz rekomendację i poniżej Affected Objects zobaczysz co było skutkiem rekomendacji oraz których serwerów dotyczy problem.
  4. W polu Suggested Actions, dostępne są sugerowane podpowiedzi związane z krokami jakie należy zrealizować aby wyeliminować dany problem.

oms-sql-focus01

Rysunek 3. Rekomendacje w ramach wybranej kategorii

Ignorowanie rekomendacji

Jeśli istnieje potrzeba zignorowania wybranych zaleceń to istnieje taka możliwość poprzez stworzenie specjalnego pliku tekstowego, który będzie blokował SQL Assessment przed pokazywaniem ich w wynikach.

Krok 1 - identyfikacja wykluczeń

W celu zidentyfikowania rekomendacji do wykluczenia należy zastosować poniższą procedurę.

  1. Otwórz Log Search i wpisz poniższe zapytanie w celu zobaczenia rekomendacji dla serwerów SQL Server
    Type=SQLAssessmentRecommendation RecommendationResult=Failed | select Computer, RecommendationId, Recommendation | sort Computer
  2. Wybierz rekomendacje, które chcesz wykluczyć z oceny. Zapisz RecommendationId - będzie potrzebne w kolejnym kroku.
    oms-sql-ls01

Rysunek 4. Log Search i rekomendacje

Krok 2 - plik IgnoreRecommendations.txt

  1. Utwórz nowy plik tekstowy za pomocą np. Notatnik o nazwie IgnoreRecommendations.txt
  2. Spisane RecommendationId wpisz w każdej linii osobno, a następnie zapisz i zamknij plik.
  3. Wgraj plik na każdy kompter, który ma ignorować rekomendacje do lokalizacji:
    1. Dla komputerów z Microsoft Monitoring Agent (podłączonych bezpośrednio do OMS lub za pośrednictwem System Center Operations Manager) - SystemDrive:\Program Files\Microsoft Monitoring Agent\Agent
    2. Na serwerze zarządzajacym System Center Operations Manager - SystemDrive:\Program Files\Microsoft System Center 2012 R2\Operations Manager\Server

Krok 3 - weryfikacja wykluczeń

Podczas uruchomiania kolejnej weryfikacji zgodnie z harmonogramem (domyślnie co 7 dni), wykluczenia zaleceń zapisane w pliku IgnoreRecommendations.txt nie pojawią się w wyniku oceny SQL Assessment. Można użyć poniższego zapytania Log Search, w celu wyświetlenia wszystkich ignorowanych rekomendacji.

Type=SQLAssessmentRecommendation RecommendationResult=Ignored | select Computer, RecommendationId, Recommendation | sort Computer

W każdym momencie można przywrócić wykluczone rekomendacje poprzez usunięcie całego pliku IgnoreRecommendations.txt lub wybrane RecommendationId z tego pliku.

Podsumowanie

SQL Assessment pomaga zachować zdrowie serwerów SQL Server poprzez analizę konfiguracji, wydajności w oparciu o wbudowaną bazę wiedzy bazującą na ponad 400 rekomendacjach związanych z najlepszymi praktykami oaz doświadczeniem inżynierów Microsoft.

Comments (0)

Skip to main content