Włączanie usługi SQL Insights (wersja zapoznawcza)
Dotyczy: Azure SQL Database Azure SQL Managed Instance
Ważne
Usługa SQL Insights (wersja zapoznawcza) zostanie wycofana 31 grudnia 2024 r. Zalecamy przejście do obserwatora bazy danych dla usługi Azure SQL (wersja zapoznawcza) lub innego rozwiązania do monitorowania bazy danych o tej dacie.
Obserwator bazy danych jest zalecanym rozwiązaniem do monitorowania scenariuszy wymagających małych opóźnień zbierania danych, monitorowania na poziomie majątku, kompleksowego monitorowania, w tym szczegółów na poziomie zapytania i obsługi zaawansowanej analizy zebranych danych monitorowania. Obecnie obserwator bazy danych obsługuje usługi Azure SQL Database i Azure SQL Managed Instance.
Po 31 grudnia 2024 r. usługa SQL Insights (wersja zapoznawcza) nie będzie obsługiwana i nie będzie dostępna w witrynie Azure Portal. Wszystkie istniejące dane monitorowania zebrane przez usługę SQL Insights będą przechowywane w obszarze roboczym usługi Log Analytics.
W tym artykule opisano sposób włączania usługi SQL Insights (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.
Aby włączyć usługę SQL Insights (wersja zapoznawcza) przez utworzenie profilu monitorowania i maszyny wirtualnej przy użyciu szablonu usługi Resource Manager, zobacz Przykłady szablonów usługi Resource Manager dla usługi SQL Insights (wersja zapoznawcza).
Tworzenie obszaru roboczego usługi Log Analytics
Usługa SQL Insights przechowuje swoje dane w co najmniej jednym obszarze roboczym usługi Log Analytics. Aby włączyć usługę SQL Insights, 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ć i uzyskać dostęp do funkcji w usłudze SQL Insights, 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
- Wystąpienie zarządzane Azure SQL
- Program SQL Server na maszynach wirtualnych platformy Azure
Uwaga
Usługa SQL Insights (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 Insights (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łącz się z bazą danych Azure SQL Database za pomocą programu SQL Server Management Studio, Edytor Power Query (wersja zapoznawcza) w witrynie Azure Portal lub dowolnego innego narzędzia klienckiego 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
Sprawdź, czy użytkownik został utworzony.
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
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:
- System operacyjny: Ubuntu 18.04 przy użyciu obrazu witryny Azure Marketplace. Obrazy niestandardowe nie są obsługiwane. Aby uzyskać rozszerzoną konserwację zabezpieczeń dla tej wersji systemu Ubuntu, zalecamy użycie obrazu platformy handlowej Ubuntu Pro 18.04 LTS. Aby uzyskać więcej informacji, zobacz Obsługa systemów Linux i technologii open source na platformie Azure.
- Zalecane minimalne rozmiary maszyn wirtualnych platformy Azure: Standard_B2s (2 procesory CPU, pamięć 4 GiB)
- Wdrożono w dowolnym regionie świadczenia usługi Azure Obsługiwanym przez agenta usługi Azure Monitor i spełniono wszystkie wymagania wstępne agenta usługi Azure Monitor.
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
- Wystąpienie zarządzane Azure SQL
- Program SQL Server na maszynach wirtualnych platformy Azure
Usługa SQL Insights 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.
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 usługę SQL Insights (wersja zapoznawcza), wybierając pozycję SQL (wersja zapoznawcza) w sekcji Szczegółowe informacje w menu usługi Azure Monitor w witrynie Azure Portal. Wybierz pozycję Utwórz nowy profil.
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 na maszynach wirtualnych platformy Azure
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.
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
, sqlPassword2
kod 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;"
]
}
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 powinna być używana przez usługę SQL Insights (wersja zapoznawcza) podczas logowania się do usługi 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
- Wystąpienie zarządzane Azure SQL
- Program SQL Server na maszynach wirtualnych platformy Azure
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 Parametry połączenia i odpowiedni punkt końcowy ADO.NET dla bazy danych.
Aby monitorować pomocniczą możliwość odczytu, dołącz ;ApplicationIntent=ReadOnly
do parametry połączenia. Usługa SQL Insights obsługuje monitorowanie pojedynczego pomocniczego elementu pomocniczego. Zebrane dane zostaną otagowane w celu odzwierciedlenia podstawowego lub pomocniczego.