Włączanie Szczegółowe informacje SQL (wersja zapoznawcza)

Dotyczy: Azure SQL DatabaseAzure SQL Managed Instance

W tym artykule opisano sposób włączania Szczegółowe informacje SQL (wersja zapoznawcza) w celu monitorowania wdrożeń SQL. Monitorowanie jest wykonywane z maszyny wirtualnej platformy Azure, która nawiązuje połączenie z wdrożeniami SQL i używa dynamicznych widoków zarządzania (DMV) do zbierania danych monitorowania. Możesz kontrolować, jakie zestawy danych są zbierane, oraz częstotliwość zbierania przy użyciu profilu monitorowania.

Uwaga

Aby włączyć Szczegółowe informacje SQL (wersja zapoznawcza), tworząc profil monitorowania i maszynę wirtualną przy użyciu szablonu usługi Resource Manager, zobacz Przykłady szablonów usługi Resource Manager dla Szczegółowe informacje SQL (wersja zapoznawcza).

Aby dowiedzieć się, jak włączyć Szczegółowe informacje SQL (wersja zapoznawcza), możesz również zapoznać się z tym odcinek uwidoczniony w danych.

Tworzenie obszaru roboczego usługi Log Analytics

Usługa SQL Szczegółowe informacje przechowuje swoje dane w co najmniej jednym obszarze roboczym usługi Log Analytics. Aby włączyć Szczegółowe informacje SQL, musisz utworzyć obszar roboczy lub wybrać istniejący. Pojedynczy obszar roboczy może być używany z wieloma profilami monitorowania, ale obszar roboczy i profile muszą znajdować się w tym samym regionie świadczenia usługi Azure. Aby włączyć funkcje w usłudze SQL Szczegółowe informacje i uzyskiwać do tych funkcji, musisz mieć rolę współautora usługi Log Analytics w obszarze roboczym.

Tworzenie użytkownika monitorowania

Potrzebujesz użytkownika (identyfikatora logowania) we wdrożeniach SQL, które chcesz monitorować. Postępuj zgodnie z poniższymi procedurami dla różnych typów wdrożeń SQL.

Poniższe instrukcje obejmują proces dla każdego typu bazy danych SQL, którą można monitorować. Aby to osiągnąć za pomocą skryptu na kilku zasobach SQL jednocześnie, zapoznaj się z następującym plikiem README i przykładowym skryptem.

Azure SQL Database

Uwaga

Program SQL Szczegółowe informacje (wersja zapoznawcza) nie obsługuje następujących scenariuszy usługi Azure SQL Database:

  • Pule elastyczne: nie można zbierać metryk dla pul elastycznych. Nie można zbierać metryk dla baz danych w pulach elastycznych.
  • Warstwy usług niskich: nie można zbierać metryk dla baz danych w celach usługi Podstawowa, S0 i S1

Usługa SQL Szczegółowe informacje (wersja zapoznawcza) ma ograniczoną obsługę następujących scenariuszy usługi Azure SQL Database:

  • Warstwa bezserwerowa: Metryki można zbierać dla baz danych przy użyciu bezserwerowej warstwy obliczeniowej. Jednak proces zbierania metryk spowoduje zresetowanie czasomierza opóźnienia automatycznego wstrzymania, co uniemożliwia bazie danych wprowadzanie stanu automatycznego wstrzymania.

Połączenie do bazy danych Azure SQL Database za pomocą polecenia PROGRAM SQL Server Management Studio, Edytor Power Query (wersja zapoznawcza) w witrynie Azure Portal lub inne narzędzie klienckie SQL.

Uruchom następujący skrypt, aby utworzyć użytkownika z wymaganymi uprawnieniami. Zastąp użytkownika nazwą użytkownika i nazwą mystrongpassword silnym hasłem.

CREATE USER [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW DATABASE STATE TO [user]; 
GO 

Zrzut ekranu przedstawiający Edytor Power Query ze skryptem tworzenia użytkownika telegrafu.

Sprawdź, czy użytkownik został utworzony.

Zrzut ekranu przedstawiający okno zapytania Edytor Power Query sprawdzające skrypt użytkownika telegrafu.

select name as username,
       create_date,
       modify_date,
       type_desc as type,
       authentication_type_desc as authentication_type
from sys.database_principals
where type not in ('A', 'G', 'R', 'X')
       and sid is not null
order by username

Wystąpienie zarządzane Azure SQL

Połączenie do usługi Azure SQL Managed Instance przy użyciu polecenia Program SQL Server Management Studio lub podobne narzędzie i wykonaj następujący skrypt, aby utworzyć użytkownika monitorowania z wymaganymi uprawnieniami. Zastąp użytkownika nazwą użytkownika i nazwą mystrongpassword silnym hasłem.

USE master; 
GO 
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW SERVER STATE TO [user]; 
GO 
GRANT VIEW ANY DEFINITION TO [user]; 
GO 

SQL Server

Połączenie do programu SQL Server na maszynie wirtualnej platformy Azure i użyj polecenia PROGRAM SQL Server Management Studio lub podobne narzędzie do uruchamiania następującego skryptu w celu utworzenia użytkownika monitorowania z wymaganymi uprawnieniami. Zastąp użytkownika nazwą użytkownika i nazwą mystrongpassword silnym hasłem.

USE master; 
GO 
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW SERVER STATE TO [user]; 
GO 
GRANT VIEW ANY DEFINITION TO [user]; 
GO

Sprawdź, czy użytkownik został utworzony.

select name as username,
       create_date,
       modify_date,
       type_desc as type
from sys.server_principals
where type not in ('A', 'G', 'R', 'X')
       and sid is not null
order by username

Tworzenie maszyny wirtualnej platformy Azure

Należy utworzyć co najmniej jedną maszynę wirtualną platformy Azure, która będzie używana do zbierania danych w celu monitorowania bazy danych SQL.

Uwaga

Profile monitorowania określają, jakie dane będą zbierane z różnych typów usługi SQL, które chcesz monitorować. Każda maszyna wirtualna monitorowania może mieć skojarzony tylko jeden profil monitorowania. Jeśli potrzebujesz wielu profilów monitorowania, musisz utworzyć maszynę wirtualną dla każdego z nich.

Wymagania maszyny wirtualnej platformy Azure

Maszyna wirtualna platformy Azure ma następujące wymagania:

Uwaga

Rozmiar maszyny wirtualnej Standard_B2s (2 procesory CPU, 4 GiB) będzie obsługiwać maksymalnie 100 parametry połączenia. Nie należy przydzielać więcej niż 100 połączeń do jednej maszyny wirtualnej.

W zależności od ustawień sieci zasobów SQL może być konieczne umieszczenie maszyn wirtualnych w tej samej sieci wirtualnej co zasoby SQL, aby umożliwić nawiązywanie połączeń sieciowych w celu zbierania danych monitorowania.

Konfigurowanie ustawień sieciowych

Każdy typ bazy danych SQL oferuje metody dla maszyny wirtualnej monitorowania w celu bezpiecznego uzyskiwania dostępu do bazy danych SQL. W poniższych sekcjach opisano opcje oparte na typie wdrożenia SQL.

Azure SQL Database

Usługa SQL Szczegółowe informacje obsługuje uzyskiwanie dostępu do usługi Azure SQL Database za pośrednictwem publicznego punktu końcowego, a także z sieci wirtualnej.

Aby uzyskać dostęp za pośrednictwem publicznego punktu końcowego, należy dodać regułę na stronie Ustawienia zapory i w sekcji Ustawienia zapory adresów IP w witrynie Azure Portal. Aby określić dostęp z sieci wirtualnej, można ustawić reguły zapory sieci wirtualnej i ustawić tagi usług wymagane przez agenta usługi Azure Monitor.

Zrzut ekranu przedstawiający stronę usługi Azure SQL Database w witrynie Azure Portal. Przycisk Ustaw zaporę serwera jest wyróżniony.

Zrzut ekranu przedstawiający stronę ustawień zapory usługi Azure SQL Database w witrynie Azure Portal. Ustawienia zapory.

Wystąpienie zarządzane Azure SQL

Jeśli maszyna wirtualna monitorowania będzie znajdować się w tej samej sieci wirtualnej co zasoby wystąpienia zarządzanego SQL, zobacz Połączenie wewnątrz tej samej sieci wirtualnej. Jeśli maszyna wirtualna monitorowania będzie znajdować się w innej sieci wirtualnej niż zasoby wystąpienia zarządzanego SQL, zobacz Połączenie wewnątrz innej sieci wirtualnej.

SQL Server

Jeśli maszyna wirtualna monitorowania znajduje się w tej samej sieci wirtualnej co zasoby maszyny wirtualnej SQL, zobacz Połączenie do programu SQL Server w sieci wirtualnej. Jeśli maszyna wirtualna monitorowania będzie znajdować się w innej sieci wirtualnej niż zasoby maszyny wirtualnej SQL, zobacz Połączenie do programu SQL Server przez Internet.

Przechowywanie hasła monitorowania w usłudze Azure Key Vault

Najlepszym rozwiązaniem w zakresie zabezpieczeń jest zdecydowanie zalecane przechowywanie haseł użytkownika SQL (identyfikatora logowania) w usłudze Key Vault zamiast wprowadzania ich bezpośrednio do parametry połączenia profilu monitorowania.

Podczas konfigurowania profilu na potrzeby monitorowania SQL potrzebne będą jedno z następujących uprawnień do zasobu usługi Key Vault, którego zamierzasz użyć:

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.Authorization/roleAssignments/delete

Jeśli masz te uprawnienia, nowe zasady dostępu usługi Key Vault zostaną automatycznie utworzone w ramach tworzenia profilu monitorowania SQL, który używa określonego magazynu kluczy.

Ważne

Należy upewnić się, że konfiguracja sieci i zabezpieczeń umożliwia maszynie wirtualnej monitorowania dostęp do usługi Key Vault. Aby uzyskać więcej informacji, zobacz Access Azure Key Vault behind a firewall (Uzyskiwanie dostępu do usługi Azure Key Vault za zaporą ) i Configure Azure Key Vault networking settings (Konfigurowanie ustawień sieci usługi Azure Key Vault).

Tworzenie profilu monitorowania SQL

Otwórz Szczegółowe informacje SQL (wersja zapoznawcza), wybierając pozycję SQL (wersja zapoznawcza) w sekcji Szczegółowe informacje menu usługi Azure Monitor w witrynie Azure Portal. Wybierz pozycję Utwórz nowy profil.

Zrzut ekranu przedstawiający stronę usługi Azure Monitor w witrynie Azure Portal. Przycisk Utwórz nowy profil został wyróżniony.

Profil będzie przechowywać informacje, które mają być zbierane z systemów SQL. Ma określone ustawienia dla:

  • Azure SQL Database
  • Wystąpienie zarządzane Azure SQL
  • Program SQL Server uruchomiony na maszynach wirtualnych

Możesz na przykład utworzyć jeden profil o nazwie SQL Production i inny o nazwie SQL Staging z różnymi ustawieniami częstotliwości zbierania danych, zbierania danych i obszaru roboczego do wysłania danych.

Profil jest przechowywany jako zasób reguły zbierania danych w wybranej subskrypcji i grupie zasobów. Każdy profil wymaga następujących elementów:

  • Name. Nie można edytować po utworzeniu.
  • Lokalizacja. Jest to region świadczenia usługi Azure.
  • Obszar roboczy usługi Log Analytics do przechowywania danych monitorowania.
  • Ustawienia kolekcji dotyczące częstotliwości i typu danych monitorowania sql do zebrania.

Uwaga

Lokalizacja profilu powinna znajdować się w tej samej lokalizacji co obszar roboczy usługi Log Analytics, do którego planujesz wysłać dane monitorowania.

Zrzut ekranu przedstawiający stronę Tworzenie nowego profilu w witrynie Azure Portal.

Po wprowadzeniu szczegółów profilu monitorowania wybierz pozycję Utwórz profil monitorowania . Wdrożenie profilu może potrwać do minuty. Jeśli nie widzisz nowego profilu na liście w polu kombi Monitorowanie profilu , wybierz przycisk odświeżania i powinien pojawić się po zakończeniu wdrażania. Po wybraniu nowego profilu wybierz kartę Zarządzanie profilem , aby dodać maszynę monitorowania, która zostanie skojarzona z profilem.

Dodawanie maszyny monitorowania

Wybierz pozycję Dodaj maszynę monitorowania, aby otworzyć panel kontekstowy, aby wybrać maszynę wirtualnąAdd monitoring virtual machine, z której mają być monitorowane wystąpienia SQL, i udostępnić parametry połączenia.

Wybierz subskrypcję i nazwę maszyny wirtualnej monitorowania. Jeśli używasz usługi Key Vault do przechowywania haseł dla identyfikatorów logowania monitorowania (zdecydowanie zalecane), wybierz subskrypcję tej usługi Key Vault w obszarze Key vault subscriptions, a następnie wybierz usługę Key Vault, która przechowuje wpisy tajne w obszarze KeyVault. Connection strings W polu wprowadź identyfikator URI magazynu i nazwę wpisu tajnego dla każdego hasła, które ma być używane w parametry połączenia.

Jeśli na przykład identyfikator URI usługi Key Vault to https://mykeyvault.vault.azure.net/, a nazwy wpisów tajnych to sqlPassword1 , sqlPassword2kod JSON w Connection strings polu będzie zawierać następujące elementy:

{
   "secrets": {
      "telegrafPassword1": {
         "keyvault": "https://mykeyvault.vault.azure.net/",
         "name": "sqlPassword1"
      },
      "telegrafPassword2": {
         "keyvault": "https://mykeyvault.vault.azure.net/",
         "name": "sqlPassword2"
      }
   }
}

Teraz możesz odwoływać się do tych wpisów tajnych dalej w Connection strings polu. W poniższym przykładzie dwa parametry połączenia odwołują się do telegrafPassword1 zdefiniowanych wcześniej wpisów tajnych i telegrafPassword2 :

{
   "sqlAzureConnections": [
      "Server=mysqlserver.database.windows.net;Port=1433;Database=mydatabase;User Id=telegraf;Password=$telegrafPassword1;"
   ],
   "sqlVmConnections": [
      "Server=mysqlserver1;Port=1433;Database=master;User Id=telegraf;Password=$telegrafPassword2;"
   ]
}

Zrzut ekranu przedstawiający stronę Dodawanie maszyny wirtualnej monitorowania w witrynie Azure Portal. Wybierz maszynę wirtualną, określ adres URL KV (jeśli jest używany) i nazwę wpisu tajnego. Wprowadź parametry połączenia dla każdego systemu do monitorowania. Wybierz klucz KV, w którym utworzono wpis tajny używany w parametry połączenia.

Aby uzyskać szczegółowe informacje na temat identyfikowania parametry połączenia dla różnych wdrożeń SQL, zobacz następną sekcję.

Dodawanie parametry połączenia

Parametry połączenia określa nazwę logowania, która Szczegółowe informacje SQL (wersja zapoznawcza) powinna być używana podczas logowania się do programu SQL w celu zbierania danych monitorowania. Jeśli używasz usługi Key Vault do przechowywania hasła użytkownika monitorowania, podaj identyfikator URI usługi Key Vault i nazwę wpisu tajnego zawierającego hasło.

Parametry połączeń różnią się w zależności od typu zasobu SQL:

Azure SQL Database

Połączenia TCP z maszyny monitorowania z adresem IP i portem używanym przez bazę danych muszą być dozwolone przez zapory lub sieciowe grupy zabezpieczeń, które mogą istnieć na ścieżce sieciowej. Aby uzyskać szczegółowe informacje na temat adresów IP i portów, zobacz Architektura łączności usługi Azure SQL Database.

Wprowadź parametry połączenia w formularzu:

"sqlAzureConnections": [
   "Server=mysqlserver1.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;",
   "Server=mysqlserver2.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;"
]

Pobierz szczegóły ze strony ciągów Połączenie ion i odpowiedniego punktu końcowego ADO.NET dla bazy danych.

Aby monitorować pomocniczą możliwość odczytu, dołącz ;ApplicationIntent=ReadOnly do parametry połączenia. Szczegółowe informacje SQL obsługuje monitorowanie pojedynczej pomocniczej wersji. Zebrane dane zostaną otagowane w celu odzwierciedlenia podstawowego lub pomocniczego.

Wystąpienie zarządzane Azure SQL

Połączenia TCP z maszyny monitorowania z adresem IP i portem używanym przez wystąpienie zarządzane muszą być dozwolone przez zapory lub sieciowe grupy zabezpieczeń, które mogą istnieć na ścieżce sieciowej. Aby uzyskać szczegółowe informacje na temat adresów IP i portów, zobacz Typy połączeń usługi Azure SQL Managed Instance.

Wprowadź parametry połączenia w formularzu:

"sqlManagedInstanceConnections": [
   "Server= mysqlserver1.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;",
   "Server= mysqlserver2.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;" 
] 

Pobierz szczegóły ze strony ciągów Połączenie ion i odpowiedniego punktu końcowego ADO.NET dla wystąpienia zarządzanego. W przypadku korzystania z publicznego punktu końcowego wystąpienia zarządzanego zastąp port 1433 numerem 3342.

Aby monitorować pomocniczą możliwość odczytu, dołącz ;ApplicationIntent=ReadOnly do parametry połączenia. Usługa SQL Szczegółowe informacje obsługuje monitorowanie pojedynczej repliki pomocniczej wysokiej dostępności dla danej podstawowej bazy danych. Zebrane dane zostaną otagowane w celu odzwierciedlenia podstawowego lub pomocniczego.

SQL Server

Protokół TCP/IP musi być włączony dla wystąpienia programu SQL Server, które chcesz monitorować. Połączenia TCP z maszyny monitorowania z adresem IP i portem używanym przez wystąpienie programu SQL Server muszą być dozwolone przez zapory lub sieciowe grupy zabezpieczeń, które mogą istnieć na ścieżce sieciowej.

Jeśli chcesz monitorować program SQL Server skonfigurowany pod kątem wysokiej dostępności (przy użyciu grup dostępności lub wystąpień klastra trybu failover), zalecamy monitorowanie każdego wystąpienia programu SQL Server w klastrze indywidualnie, a nie nawiązywanie połączenia za pośrednictwem odbiornika grupy dostępności lub nazwy klastra trybu failover. Dzięki temu dane monitorowania są zbierane niezależnie od bieżącej roli wystąpienia (podstawowej lub pomocniczej).

Wprowadź parametry połączenia w formularzu:

"sqlVmConnections": [
   "Server=SQLServerInstanceIPAddress1;Port=1433;User Id=$username;Password=$password;",
   "Server=SQLServerInstanceIPAddress2;Port=1433;User Id=$username;Password=$password;"
] 

Użyj adresu IP, na który nasłuchuje wystąpienie programu SQL Server.

Jeśli wystąpienie programu SQL Server jest skonfigurowane do nasłuchiwania na porcie inny niż domyślny, zastąp wartość 1433 tym numerem portu w parametry połączenia. Jeśli używasz programu SQL Server na maszynie wirtualnej platformy Azure, możesz zobaczyć, który port ma być używany na stronie Zabezpieczenia zasobu.

Zrzut ekranu przedstawiający stronę Zabezpieczenia maszyny wirtualnej SQL w witrynie Azure Portal. Strona zabezpieczeń maszyny wirtualnej SQL zawiera sekcję Zabezpieczenia i sieć z polem Port.

W przypadku dowolnego wystąpienia programu SQL Server można określić wszystkie adresy IP i porty, na których nasłuchuje, łącząc się z wystąpieniem i wykonując następujące zapytanie T-SQL, o ile istnieje co najmniej jedno połączenie TCP z wystąpieniem:

SELECT DISTINCT local_net_address, local_tcp_port
FROM sys.dm_exec_connections
WHERE net_transport = 'TCP'
      AND
      protocol_type = 'TSQL';

Utworzony profil monitorowania

Wybierz pozycję Dodaj maszynę wirtualną monitorowania, aby skonfigurować maszynę wirtualną w celu zbierania danych z zasobów SQL. Nie wracaj do karty Przegląd . W ciągu kilku minut kolumna Stan powinna zostać zmieniona, aby odczytać tekst "Zbieranie", powinny zostać wyświetlone dane dla zasobów SQL wybranych do monitorowania.

Jeśli nie widzisz danych, zobacz Rozwiązywanie problemów z Szczegółowe informacje SQL (wersja zapoznawcza), aby zidentyfikować problem.

Zrzut ekranu przedstawiający stronę witryny Azure Portal dla usługi Azure Monitor for SQL. W menu Szczegółowe informacje wybrano pozycję SQL. Pokazano, że profil został utworzony.

Uwaga

Jeśli musisz zaktualizować profil monitorowania lub parametry połączenia na maszynach wirtualnych monitorowania, możesz to zrobić za pomocą karty Zarządzanie profilem programu SQL Szczegółowe informacje (wersja zapoznawcza). Po zapisaniu aktualizacji zmiany zostaną zastosowane w około 5 minutach.

Następne kroki