Aktivieren von SQL Insights (Vorschau)

Gilt für:Azure SQL-DatenbankAzure SQL Managed Instance

In diesem Artikel wird beschrieben, wie Sie SQL Insights (Vorschau) zum Überwachen Ihrer SQL-Bereitstellungen aktivieren. Die Überwachung erfolgt über einen virtuellen Azure-Computer, der eine Verbindung mit Ihren SQL-Bereitstellungen herstellt und dynamische Verwaltungssichten (Dynamic Management Views, DMVs) verwendet, um Überwachungsdaten zu erfassen. Sie können mithilfe eines Überwachungsprofils steuern, welche Datasets mit welcher Häufigkeit gesammelt werden.

Hinweis

Informationen zum Aktivieren von SQL Insights (Vorschau) durch Erstellen des Überwachungsprofils und des virtuellen Computers mithilfe einer Resource Manager-Vorlage finden Sie unter Beispiele für Resource Manager-Vorlagen für SQL Insights (Vorschau).

Sie können sich auch diese Data Exposed-Folge ansehen, wenn Sie mehr zum Aktivieren von SQL Insights (Vorschau) erfahren möchten.

Erstellen eines Log Analytics-Arbeitsbereichs

SQL Insights speichert die Daten in mindestens einem Log Analytics-Arbeitsbereich. Bevor Sie SQL Insights aktivieren können, müssen Sie entweder einen Arbeitsbereich erstellen oder einen vorhandenen auswählen. Ein einzelner Arbeitsbereich kann mit mehreren Überwachungsprofilen verwendet werden, aber der Arbeitsbereich und die Profile müssen sich in derselben Azure-Region befinden. Um die Features in SQL Insights aktivieren und darauf zugreifen zu können, müssen Sie im Arbeitsbereich über die Rolle Log Analytics-Mitwirkender verfügen.

Erstellen eines Überwachungsbenutzers

Sie benötigen einen Benutzer (Anmeldname) für die SQL-Bereitstellungen, die Sie überwachen möchten. Führen Sie die folgenden Verfahren für verschiedene Arten von SQL-Bereitstellungen aus.

Die folgenden Anweisungen beziehen sich auf den Prozess pro SQL-Typ, den Sie überwachen können. Um dies mit einem Skript für mehrere SQL-Ressourcen gleichzeitig zu erreichen, lesen Sie die folgende README-Datei und das Beispielskript.

Azure SQL-Datenbank

Hinweis

SQL Insights (Vorschau) unterstützt die folgenden Szenarien für Azure SQL-Datenbank nicht:

  • Pools für elastische Datenbanken: Für Pools für elastische Datenbanken können keine Metriken erfasst werden. Metriken können nicht für Datenbanken in Elastic Pools gesammelt werden.
  • Niedrige Dienstebenen: Für Datenbanken mit den Dienstzielen Basic, S0 und S1 können keine Metriken erfasst werden.

SQL Insights (Vorschau) bietet eingeschränkte Unterstützung für die folgenden Azure SQL-Datenbank-Szenarien:

  • Serverlose Ebene: Metriken können für Datenbanken mit der serverlosen Computeebene erfasst werden. Durch das Erfassen von Metriken wird jedoch der Verzögerungstimer für automatische Pausierung zurückgesetzt, wodurch verhindert wird, dass die Datenbank in einen automatischen Pausenzustand übergeht.

Stellen Sie mit SQL Server Management Studio, dem Abfrage-Editor (Vorschau) im Azure-Portal oder mit einem beliebigen anderen SQL-Clienttool eine Verbindung zu einer Azure SQL-Datenbank her.

Führen Sie das folgende Skript aus, um einen Benutzer mit den erforderlichen Berechtigungen zu erstellen. Ersetzen Sie user durch einen Benutzernamen und mystrongpassword durch ein sicheres Kennwort.

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

Screenshot of the Query Editor with a create telegraf user script.

Vergewissern Sie sich, dass der Benutzer erstellt wurde.

Screenshot of the Query Editor query window verifying the telegraf user script.

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

Verwaltete Azure SQL-Instanz

Stellen Sie mit SQL Server Management Studio oder einem ähnlichen Tool eine Verbindung zu Ihrer Azure SQL Managed Instance her und führen Sie das folgende Skript aus, um den Überwachungsbenutzer mit den erforderlichen Berechtigungen zu erstellen. Ersetzen Sie user durch einen Benutzernamen und mystrongpassword durch ein sicheres Kennwort.

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

Stellen Sie eine Verbindung zu SQL Server auf Ihrem virtuellen Azure-Computer her, und verwenden Sie SQL Server Management Studio oder ein ähnliches Tool, um das folgende Skript zum Erstellen des Überwachungsbenutzers mit den erforderlichen Berechtigungen auszuführen. Ersetzen Sie user durch einen Benutzernamen und mystrongpassword durch ein sicheres Kennwort.

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

Vergewissern Sie sich, dass der Benutzer erstellt wurde.

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

Erstellen eines virtuellen Azure-Computers

Sie müssen mindestens einen virtuellen Azure-Computer erstellen, der zum Sammeln von Daten zum Überwachen von SQL verwendet wird.

Hinweis

Mit den Überwachungsprofilen wird angegeben, welche Daten Sie von den verschiedenen SQL-Typen erfassen, die Sie überwachen möchten. Jedem virtuellen Überwachungscomputer kann nur ein Überwachungsprofil zugeordnet werden. Wenn Sie mehrere Überwachungsprofile benötigen, müssen Sie jeweils einen virtuellen Computer erstellen.

Anforderungen für virtuelle Azure-Maschinen

Für den virtuellen Azure-Computer gelten folgende Anforderungen:

  • Betriebssystem: Ubuntu 18.04 mit Azure Marketplace-Image. Benutzerdefinierte Images werden nicht unterstützt. Um die Extended Security Maintenance (ESM) für diese Version von Ubuntu zu erhalten, empfehlen wir die Verwendung des Ubuntu Pro 18.04 LTS Marketplace-Images. Unter Support für Linux und Open-Source-Technologie in Azure finden Sie weitere Informationen.
  • Empfohlene Mindestgrößen für virtuelle Azure-Computer: Standard_B2s (2 CPUs, 4 GiB Arbeitsspeicher)
  • Bereitstellung in einer beliebigen Azure-Region , die vom Azure Monitor-Agent unterstützt wird , und Erfüllung aller Voraussetzungen des Azure Monitor-Agents.

Hinweis

Die Größe des virtuellen Computers Standard_B2s (2 CPUs, 4 GiB Arbeitsspeicher) unterstützt bis zu 100 Verbindungszeichenfolgen. Sie sollten einem einzelnen virtuellen Computer nicht mehr als 100 Verbindungen zuordnen.

Abhängig von den Netzwerkeinstellungen Ihrer SQL-Ressourcen müssen die virtuellen Maschinen möglicherweise in dasselbe virtuelle Netzwerk wie Ihre SQL-Ressourcen platziert werden, damit sie Netzwerkverbindungen herstellen können, um Überwachungsdaten zu sammeln.

Konfigurieren der Netzwerkeinstellungen

Jeder SQL-Typ bietet Methoden, mit denen der virtuelle Computer für die Überwachung sicher auf SQL zugreifen können. In den folgenden Abschnitten werden die Optionen basierend auf dem SQL-Bereitstellungstyp behandelt.

Azure SQL-Datenbank

SQL Insights unterstützt den Zugriff auf Ihre Azure SQL-Datenbank-Instanz sowohl über den öffentlichen Endpunkt als auch über das virtuelle Netzwerk.

Für den Zugriff über den öffentlichen Endpunkt müssen Sie auf der Seite Firewalleinstellungen im Abschnitt IP-Firewalleinstellungen eine Regel hinzufügen. Um den Zugriff aus einem virtuellen Netzwerk anzugeben, können Sie Firewallregeln für virtuelle Netzwerke und die vom Azure Monitor-Agent benötigten Diensttags festlegen. In diesem Artikel werden die Unterschiede zwischen diesen beiden Arten von Firewallregeln beschrieben.

Screenshot of an Azure SQL Database page in the Azure portal. The Set server firewall button is highlighted.

Screenshot of an Azure SQL Database Firewall settings page in the Azure portal. Firewall settings.

Verwaltete Azure SQL-Instanz

Wenn sich der virtuelle Computer für die Überwachung im selben VNET wie Ihre SQL MI-Ressourcen befindet, informieren Sie sich unter Herstellen einer Verbindung im selben VNET. Wenn sich der virtuelle Computer für die Überwachung in einem anderen VNET als die SQL MI-Ressourcen befindet, informieren Sie sich unter Herstellen einer Verbindung in einem anderen VNET.

SQL Server

Wenn sich der virtuelle Computer für die Überwachung im selben VNET wie Ihre SQL-VM-Ressourcen befindet, informieren Sie sich unter Verbinden mit SQL Server innerhalb eines virtuellen Netzwerks. Wenn sich der virtuelle Computer für die Überwachung in einem anderen VNET als Ihre SQL-VM-Ressourcen befindet, informieren Sie sich unter Verbinden mit SQL Server über das Internet.

Speichern des Überwachungskennworts in Azure Key Vault

Aus Sicherheitsgründen wird dringend empfohlen, die Kennwörter für SQL-Benutzer (Anmeldename) in einem Key Vault zu speichern, anstatt sie direkt in die Verbindungszeichenfolgen Ihres Überwachungsprofils einzugeben.

Wenn Sie Ihr Profil für die SQL-Überwachung einrichten, benötigen Sie eine der folgenden Berechtigungen für die Key Vault-Ressource, die Sie verwenden möchten:

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

Beim Erstellen des SQL-Überwachungsprofils, das die von Ihnen angegebene Key Vault-Instanz verwendet, wird automatisch eine neue Zugriffsrichtlinie erstellt.

Wichtig

Sie müssen sicherstellen, dass die Netzwerk- und Sicherheitskonfiguration Zugriff des virtuellen Überwachungscomputers auf Key Vault zulässt. Weitere Informationen finden Sie unter Zugreifen auf Azure Key Vault hinter einer Firewall und Konfigurieren von Azure Key Vault-Netzwerkeinstellungen.

Erstellen eines SQL-Überwachungsprofils

Sie können SQL Insights (Vorschau) durch Auswählen von SQL (Vorschau) im Bereich Insights des Menüs Azure Monitor im Azure-Portal öffnen. Klicken Sie auf Neues Profil erstellen.

Screenshot of the Azure Monitor page in Azure portal. The create new profile button is highlighted.

Im Profil werden die Informationen gespeichert, die Sie aus Ihren SQL-Systemen erfassen möchten. Es bietet spezifische Einstellungen für:

  • Azure SQL-Datenbank
  • Verwaltete Azure SQL-Instanz
  • Ausführung von SQL Server auf virtuellen Computern

Sie können z. B. ein Profil mit dem Namen SQL-Produktion und ein anderes namens SQL-Staging mit anderen Einstellungen für die Häufigkeit der Datensammlung, die zu sammelnden Daten und den Arbeitsbereich, an den die Daten gesendet werden sollen, erstellen.

Das Profil wird als Datensammlungsregel-Ressource in dem Abonnement und der Ressourcengruppe Ihrer Wahl gespeichert. Für jedes Profil ist Folgendes erforderlich:

  • Name. Kann nach der Erstellung nicht mehr bearbeitet werden.
  • Der Standort. Dies ist eine Azure-Region.
  • Log Analytics-Arbeitsbereich zum Speichern von Überwachungsdaten.
  • Sammlungseinstellungen für die Häufigkeit und den Typ der zu sammelnden SQL-Überwachungsdaten.

Hinweis

Der Speicherort des Profils sollte sich an demselben Speicherort befinden wie der Log Analytics-Arbeitsbereich, an den die Überwachungsdaten gesendet werden sollen.

A screenshot of the Create new profile details page in the Azure portal.

Wählen Sie Überwachungsprofil erstellen aus, nachdem Sie die Details für Ihr Überwachungsprofil eingegeben haben. Es kann bis zu einer Minute dauern, bis das Profil bereitgestellt wird. Wenn das neue Profil nicht im Kombinationsfeld Überwachungsprofil angezeigt wird, wählen Sie die Schaltfläche „Aktualisieren“ aus, die nach Abschluss der Bereitstellung angezeigt werden sollte. Nachdem Sie das neue Profil ausgewählt haben, wählen Sie die Registerkarte Profil verwalten aus, um einen Überwachungscomputer hinzuzufügen, der dem Profil zugeordnet wird.

Hinzufügen des Überwachungscomputers

Wählen Sie Überwachungscomputer hinzufügen aus, um einen Add monitoring virtual machine Kontextbereich zu öffnen und den virtuellen Computer auszuwählen, den Sie zum Überwachen Ihrer SQL-Instanzen einrichten möchten. Geben Sie auch die Verbindungszeichenfolgen an.

Wählen Sie das Abonnement und den Namen des virtuellen Computers zur Überwachung aus. Wenn Sie den Schlüsseltresor zum Speichern von Kennwörtern für die Überwachungsanmeldungen verwenden (dringend empfohlen), wählen Sie unter Key vault subscriptions das Abonnement dieses Schlüsseltresors und dann unter KeyVault den Schlüsseltresor, in dem geheime Schlüssel gespeichert werden. Geben Sie in das Feld Connection strings den Tresor-URI und den geheimen Namen für jedes Kennwort ein, das in den Verbindungszeichenfolgen verwendet werden soll.

Wenn z. B. der Schlüsseltresor-URI https://mykeyvault.vault.azure.net/ lautet und die geheimen Namen sqlPassword1 und sqlPassword2 sind, enthält der JSON-Code im Feld Connection strings Folgendes:

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

Sie können nun im Feld Connection strings auf diese geheimen Schlüssel weiter verweisen. Im folgenden Beispiel verweisen die beiden Verbindungszeichenfolgen auf die zuvor definierten geheimen Schlüssel telegrafPassword1 und 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;"
   ]
}

A screenshot of the Azure portal Add monitoring virtual machine page. Choose the VM, specify the KV url (if used) and the secret name. Enter connection strings for each system to monitor. Choose the KV where you created the secret used in the connection strings.

Weitere Informationen zum Identifizieren der Verbindungszeichenfolge für verschiedene SQL-Bereitstellungen finden Sie im nächsten Abschnitt.

Hinzufügen von Verbindungszeichenfolgen

Die Verbindungszeichenfolge gibt den Anmeldenamen an, den SQL Insights (Vorschau) bei der Anmeldung bei SQL zum Erfassen von Überwachungsdaten verwenden soll. Wenn Sie einen Key Vault verwenden, um das Kennwort für den Überwachungsbenutzer zu speichern, geben Sie den URI für den Key Vault und den Namen des Geheimnisses an, das das Kennwort enthält.

Die Verbindungszeichenfolge ist für jeden SQL-Ressourcentyp unterschiedlich:

Azure SQL-Datenbank

TCP-Verbindungen vom Überwachungscomputer zu der IP-Adresse und dem Port, die von der Datenbank verwendet werden, müssen von allen Firewalls oder Netzwerksicherheitsgruppen (NSGs) zugelassen werden, die möglicherweise im Netzwerkpfad vorhanden sind. Ausführliche Informationen zu IP-Adressen und Ports finden Sie unter Verbindungsarchitektur der Azure SQL-Datenbank.

Geben Sie Ihre Verbindungszeichenfolge in dieser Form ein:

"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;"
]

Rufen Sie die Details auf der Seite Verbindungszeichenfolgen und den entsprechenden ADO.NET-Endpunkt für die Datenbank ab.

Zum Überwachen einer lesbaren sekundären Datenbank fügen Sie ;ApplicationIntent=ReadOnly an die Verbindungszeichenfolge an. SQL Insights unterstützt die Überwachung einer einzelnen sekundären Datenbank. Die gesammelten Daten werden als primäre oder sekundäre Daten gekennzeichnet.

Verwaltete Azure SQL-Instanz

TCP-Verbindungen vom Überwachungscomputer zu der IP-Adresse und dem Port, die von der verwalteten Instanz verwendet werden, müssen von allen Firewalls oder Netzwerksicherheitsgruppen (NSGs) zugelassen werden, die möglicherweise im Netzwerkpfad vorhanden sind. Ausführliche Informationen zu IP-Adressen und Ports finden Sie unter Azure SQL Managed Instance: Verbindungstypen.

Geben Sie Ihre Verbindungszeichenfolge in dieser Form ein:

"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;" 
] 

Rufen Sie die Details auf der Seite Verbindungszeichenfolgen und den entsprechenden ADO.NET-Endpunkt für die verwaltete Instanz ab. Wenn Sie den öffentlichen Endpunkt der verwalteten Instanz verwenden, ersetzen Sie Port 1433 durch 3342.

Zum Überwachen einer lesbaren sekundären Datenbank fügen Sie ;ApplicationIntent=ReadOnly an die Verbindungszeichenfolge an. SQL Insights unterstützt die Überwachung eines einzelnen sekundären Replikats mit Hochverfügbarkeit (HA) für eine bestimmte primäre Datenbank. Die erfassten Daten werden als primäre oder sekundäre Daten gekennzeichnet.

SQL Server

Das TCP/IP-Protokoll muss für die SQL Server-Instanz aktiviert sein, die Sie überwachen möchten. TCP-Verbindungen vom Überwachungscomputer zu der IP-Adresse und dem Port, die von der SQL Server-Instanz verwendet werden, müssen von allen Firewalls oder Netzwerksicherheitsgruppen (NSGs) zugelassen werden, die möglicherweise im Netzwerkpfad vorhanden sind.

Wenn Sie SQL Server-Instanzen überwachen möchten, die für Hochverfügbarkeit konfiguriert sind (entweder mithilfe von Verfügbarkeitsgruppen oder Failoverclusterinstanzen), empfiehlt es sich, jede SQL Server-Instanz im Cluster einzeln zu überwachen, anstatt eine Verbindung über einen Verfügbarkeitsgruppenlistener oder einen Failoverclusternamen herzustellen. Dadurch wird sichergestellt, dass Überwachungsdaten unabhängig von der aktuellen Instanzrolle (primär oder sekundär) gesammelt werden.

Geben Sie Ihre Verbindungszeichenfolge in dieser Form ein:

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

Verwenden Sie die IP-Adresse, an der die SQL Server-Instanz lauscht.

Wenn Ihre SQL Server-Instanz so konfiguriert ist, dass sie an einem nicht standardmäßigen Port lauscht, ersetzen Sie 1433 in der Verbindungszeichenfolge durch diese Portnummer. Wenn Sie SQL Server auf dem virtuellen Azure-Computer verwenden, können Sie auf der Seite Sicherheit anzeigen, welcher Port für die Ressource verwendet werden soll.

A screenshot of the SQL virtual machine Security page in the Azure portal. The SQL virtual machine security page has a Security & networking section with a Port field.

Sie können für jede SQL Server-Instanz alle IP-Adressen und Ports ermitteln, an denen sie lauscht. Dazu stellen Sie eine Verbindung mit der Instanz her und führen die folgende T-SQL-Abfrage aus, sofern mindestens eine TCP-Verbindung mit der Instanz besteht:

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

Überwachungs Profil erstellt

Wählen Sie Virtuelle Maschine zur Überwachung hinzufügen, um die virtuelle Maschine so zu konfigurieren, dass sie Daten von Ihren SQL-Ressourcen sammelt. Kehren Sie nicht zur Registerkarte Übersicht zurück. In ein paar Minuten sollte die Status-Spalte in „Erfassen“ geändert werden, und Sie sollten Daten für die SQL-Ressourcen sehen können, die Sie zur Überwachung ausgewählt haben.

Wenn keine Daten angezeigt werden, finden Sie weitere Informationen zum Identifizieren des Problems unter Problembehandlung von SQL Insights (Vorschau).

A screenshot of the Azure portal page for Azure Monitor for SQL. In the Insights menu, SQL is selected. A profile is shown to have been created.

Hinweis

Wenn Sie Ihr Überwachungsprofil oder die Verbindungszeichenfolgen auf Ihren Überwachungs-VMs aktualisieren müssen, können Sie dies über die Registerkarte Profil verwalten von SQL Insights (Vorschau) tun. Sobald Ihre Aktualisierungen gespeichert wurden, werden die Änderungen in etwa fünf Minuten übernommen.

Nächste Schritte