SQL Insights inschakelen (preview)

Van toepassing op: Azure SQL DatabaseAzure SQL Managed Instance

In dit artikel wordt beschreven hoe u SQL Insights (preview) inschakelt om uw SQL-implementaties te bewaken. Bewaking wordt uitgevoerd vanaf een virtuele Azure-machine die verbinding maakt met uw SQL-implementaties en dynamische beheerweergaven (DMV's) gebruikt om bewakingsgegevens te verzamelen. U kunt bepalen welke gegevenssets worden verzameld en de frequentie van verzameling met behulp van een bewakingsprofiel.

Notitie

Als u SQL Insights (preview) wilt inschakelen door het bewakingsprofiel en de virtuele machine te maken met behulp van een Resource Manager-sjabloon, raadpleegt u Resource Manager-sjabloonvoorbeelden voor SQL Insights (preview).

Als u wilt weten hoe u SQL Insights (preview) inschakelt, kunt u ook verwijzen naar deze aflevering van Gegevens beschikbaar gesteld.

Log Analytics-werkruimte maken

SQL Insights slaat de gegevens op in een of meer Log Analytics-werkruimten. Voordat u SQL Insights kunt inschakelen, moet u een werkruimte maken of een bestaande werkruimte selecteren. Eén werkruimte kan worden gebruikt met meerdere bewakingsprofielen, maar de werkruimte en profielen moeten zich in dezelfde Azure-regio bevinden. Als u de functies in SQL Insights wilt inschakelen en openen, moet u de rol Log Analytics-inzender hebben in de werkruimte.

Bewakingsgebruiker maken

U hebt een gebruiker (aanmelding) nodig voor de SQL-implementaties die u wilt bewaken. Volg de onderstaande procedures voor verschillende typen SQL-implementaties.

De onderstaande instructies hebben betrekking op het proces per type SQL dat u kunt bewaken. Raadpleeg het volgende README-bestand en voorbeeldscript om dit te doen met een script op verschillende SQL-resources tegelijk.

Azure SQL-database

Notitie

SQL Insights (preview) biedt geen ondersteuning voor de volgende Azure SQL Database-scenario's:

  • Elastische pools: metrische gegevens kunnen niet worden verzameld voor elastische pools. Metrische gegevens kunnen niet worden verzameld voor databases in elastische pools.
  • Lage servicelagen: metrische gegevens kunnen niet worden verzameld voor databases op basis-, S0- en S1-servicedoelstellingen

SQL Insights (preview) biedt beperkte ondersteuning voor de volgende Azure SQL Database-scenario's:

  • Serverloze laag: Metrische gegevens kunnen worden verzameld voor databases met behulp van de serverloze rekenlaag. Tijdens het verzamelen van metrische gegevens wordt echter de timer voor automatische onderbrekingsvertraging opnieuw ingesteld, waardoor de database geen automatisch onderbroken status kan invoeren.

Verbinding maken naar een Azure SQL-database met SQL Server Management Studio, Power Query-editor (preview) in Azure Portal of een ander SQL-clienthulpprogramma.

Voer het volgende script uit om een gebruiker te maken met de vereiste machtigingen. Vervang de gebruiker door een gebruikersnaam en mystrongpassword door een sterk wachtwoord.

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.

Controleer of de gebruiker is gemaakt.

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

Azure SQL Managed Instance

Verbinding maken met azure SQL Managed InstanceSQL Server Management Studio of een vergelijkbaar hulpprogramma en voer het volgende script uit om de bewakingsgebruiker te maken met de benodigde machtigingen. Vervang de gebruiker door een gebruikersnaam en mystrongpassword door een sterk wachtwoord.

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

Verbinding maken naar SQL Server op uw virtuele Azure-machine en gebruik SQL Server Management Studio of een vergelijkbaar hulpprogramma om het volgende script uit te voeren om de bewakingsgebruiker te maken met de benodigde machtigingen. Vervang de gebruiker door een gebruikersnaam en mystrongpassword door een sterk wachtwoord.

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

Controleer of de gebruiker is gemaakt.

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

Virtuele Azure-machine maken

U moet een of meer virtuele Azure-machines maken die worden gebruikt om gegevens te verzamelen om SQL te bewaken.

Notitie

De bewakingsprofielen specificeren welke gegevens u wilt verzamelen van de verschillende typen SQL die u wilt bewaken. Aan elke virtuele bewakingsmachine kan slechts één bewakingsprofiel zijn gekoppeld. Als u meerdere bewakingsprofielen nodig hebt, moet u voor elk van deze profielen een virtuele machine maken.

Vereisten voor virtuele Azure-machines

De virtuele Azure-machine heeft de volgende vereisten:

  • Besturingssysteem: Ubuntu 18.04 met behulp van de Azure Marketplace-installatiekopie. Aangepaste installatiekopieën worden niet ondersteund. Als u Extended Security Maintenance (ESM) voor deze versie van Ubuntu wilt verkrijgen, raden we u aan om de installatiekopie van Ubuntu Pro 18.04 LTS Marketplace te gebruiken. Zie Ondersteuning voor Linux en opensource-technologie in Azure voor meer informatie.
  • Aanbevolen minimale grootten voor virtuele Azure-machines: Standard_B2s (2 CPU's, 4-GiB-geheugen)
  • Geïmplementeerd in elke Azure-regio die wordt ondersteund door de Azure Monitor-agent en voldoen aan alle vereisten voor de Azure Monitor-agent.

Notitie

De virtuele machinegrootte Standard_B2s (2 CPU's, 4 GiB-geheugen) ondersteunt maximaal 100 verbindingsreeks s. U mag niet meer dan 100 verbindingen toewijzen aan één virtuele machine.

Afhankelijk van de netwerkinstellingen van uw SQL-resources moeten de virtuele machines mogelijk in hetzelfde virtuele netwerk worden geplaatst als uw SQL-resources, zodat ze netwerkverbindingen kunnen maken om bewakingsgegevens te verzamelen.

Netwerkinstellingen configureren

Elk type SQL biedt methoden voor uw virtuele bewakingsmachine om veilig toegang te krijgen tot SQL. In de onderstaande secties worden de opties beschreven op basis van het SQL-implementatietype.

Azure SQL-database

SQL Insights biedt ondersteuning voor toegang tot uw Azure SQL Database via het openbare eindpunt en vanuit het virtuele netwerk.

Voor toegang via het openbare eindpunt voegt u een regel toe onder de pagina Firewallinstellingen en de sectie IP-firewallinstellingen . Voor het opgeven van toegang vanuit een virtueel netwerk kunt u firewallregels voor virtuele netwerken instellen en de servicetags instellen die vereist zijn voor de Azure Monitor-agent. In dit artikel worden de verschillen tussen deze twee typen firewallregels beschreven.

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.

Azure SQL Managed Instance

Als uw virtuele bewakingsmachine zich in hetzelfde VNet bevindt als uw SQL MI-resources, raadpleegt u Verbinding maken binnen hetzelfde VNet. Als uw virtuele bewakingsmachine zich in het andere VNet bevindt dan uw SQL MI-resources, raadpleegt u Verbinding maken in een ander VNet.

SQL Server

Als uw virtuele bewakingsmachine zich in hetzelfde VNet bevindt als uw sql-VM-resources, raadpleegt u Verbinding maken naar SQL Server binnen een virtueel netwerk. Als uw virtuele bewakingsmachine zich in het andere VNet bevindt dan de resources van uw virtuele SQL-machine, raadpleegt u Verbinding maken via internet naar SQL Server.

Bewakingswachtwoord opslaan in Azure Key Vault

Als best practice voor beveiliging raden we u ten zeerste aan om uw SQL-gebruikerswachtwoorden (aanmelding) op te slaan in een Key Vault, in plaats van ze rechtstreeks in te voeren in uw bewakingsprofiel verbindingsreeks s.

Wanneer u uw profiel voor SQL-bewaking instelt, hebt u een van de volgende machtigingen nodig voor de Key Vault-resource die u wilt gebruiken:

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

Als u deze machtigingen hebt, wordt automatisch een nieuw Key Vault-toegangsbeleid gemaakt als onderdeel van het maken van uw SQL-bewakingsprofiel dat gebruikmaakt van de Key Vault die u hebt opgegeven.

Belangrijk

U moet ervoor zorgen dat de netwerk- en beveiligingsconfiguratie de bewakings-VM toegang geeft tot Key Vault. Zie Toegang tot Azure Key Vault achter een firewall en Azure Key Vault-netwerkinstellingen configureren voor meer informatie.

SQL-bewakingsprofiel maken

Open SQL Insights (preview) door SQL (preview) te selecteren in de sectie Insights van het menu Azure Monitor in Azure Portal. Selecteer Nieuw profiel maken.

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

In het profiel worden de gegevens opgeslagen die u van uw SQL-systemen wilt verzamelen. Er zijn specifieke instellingen voor:

  • Azure SQL Database
  • Azure SQL Managed Instance
  • SQL Server die wordt uitgevoerd op virtuele machines

U kunt bijvoorbeeld één profiel met de naam SQL Production en een andere benoemde SQL-fasering maken met verschillende instellingen voor het verzamelen van gegevens, welke gegevens moeten worden verzameld en naar welke werkruimte de gegevens moeten worden verzonden.

Het profiel wordt opgeslagen als een regelresource voor gegevensverzameling in het abonnement en de resourcegroep die u selecteert. Elk profiel heeft het volgende nodig:

  • Name. Kan niet worden bewerkt nadat deze is gemaakt.
  • Locatie. Dit is een Azure-regio.
  • Log Analytics-werkruimte voor het opslaan van de bewakingsgegevens.
  • Verzamelingsinstellingen voor de frequentie en het type sql-bewakingsgegevens dat moet worden verzameld.

Notitie

De locatie van het profiel moet zich op dezelfde locatie bevinden als de Log Analytics-werkruimte waarnaar u de bewakingsgegevens wilt verzenden.

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

Selecteer Bewakingsprofiel maken nadat u de details voor uw bewakingsprofiel hebt ingevoerd. Het kan tot een minuut duren voordat het profiel is geïmplementeerd. Als het nieuwe profiel niet wordt weergegeven in de keuzelijst met invoervak bewakingsprofielen , selecteert u de knop Vernieuwen en wordt deze weergegeven zodra de implementatie is voltooid. Zodra u het nieuwe profiel hebt geselecteerd, selecteert u het tabblad Profiel beheren om een bewakingsmachine toe te voegen die aan het profiel wordt gekoppeld.

Bewakingsmachine toevoegen

Selecteer Bewakingsmachine toevoegen om een Add monitoring virtual machine contextvenster te openen om de virtuele machine te kiezen waaruit u uw SQL-exemplaren wilt bewaken en de verbindingsreeks s op te geven.

Selecteer het abonnement en de naam van uw virtuele bewakingsmachine. Als u Key Vault gebruikt om wachtwoorden op te slaan voor de bewakingsaanmelding (sterk aanbevolen), selecteert u het abonnement van die Key Vault onder Key vault subscriptionsen selecteert u vervolgens de Sleutelkluis waaronder geheimen KeyVaultworden opgeslagen. Voer in het Connection strings veld de kluis-URI en de geheime naam in voor elk wachtwoord dat moet worden gebruikt in de verbindingsreeks s.

Als de Key Vault-URI bijvoorbeeld is https://mykeyvault.vault.azure.net/en de geheime namen zijn sqlPassword1 en sqlPassword2, bevat de JSON in het Connection strings veld het volgende:

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

U kunt nu verder verwijzen naar deze geheimen in het Connection strings veld. In het volgende voorbeeld verwijzen de twee verbindingsreeks naar de telegrafPassword1 eerder gedefinieerde geheimen en telegrafPassword2 geheimen:

{
   "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.

Zie de volgende sectie voor meer informatie over het identificeren van de verbindingsreeks voor verschillende SQL-implementaties.

Verbindingsreeks s toevoegen

De verbindingsreeks geeft de aanmeldingsnaam op die SQL Insights (preview) moet gebruiken wanneer u zich aanmeldt bij SQL om bewakingsgegevens te verzamelen. Als u een sleutelkluis gebruikt om het wachtwoord voor uw bewakingsgebruiker op te slaan, geeft u de Key Vault-URI en de naam op van het geheim dat het wachtwoord bevat.

De verbindingsreeks varieert voor elk type SQL-resource:

Azure SQL-database

TCP-verbindingen van de bewakingsmachine met het IP-adres en de poort die door de database worden gebruikt, moeten worden toegestaan door firewalls of netwerkbeveiligingsgroepen (NSG's) die mogelijk aanwezig zijn op het netwerkpad. Zie de connectiviteitsarchitectuur van Azure SQL Database voor meer informatie over IP-adressen en poorten.

Voer de verbindingsreeks in het formulier in:

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

Haal de details op van de pagina Verbinding maken ion-tekenreeksen en het juiste ADO.NET eindpunt voor de database.

Als u een leesbare secundaire wilt bewaken, voegt u deze toe aan ;ApplicationIntent=ReadOnly de verbindingsreeks. SQL Insights ondersteunt het bewaken van één secundaire. De verzamelde gegevens worden gelabeld om de primaire of secundaire gegevens weer te geven.

Azure SQL Managed Instance

TCP-verbindingen van de bewakingscomputer met het IP-adres en de poort die door het beheerde exemplaar worden gebruikt, moeten worden toegestaan door firewalls of netwerkbeveiligingsgroepen (NSG's) die mogelijk aanwezig zijn op het netwerkpad. Zie De verbindingstypen van Azure SQL Managed Instance voor meer informatie over IP-adressen en poorten.

Voer de verbindingsreeks in het formulier in:

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

Haal de details op van de pagina Verbinding maken iontekenreeksen en het juiste ADO.NET eindpunt voor het beheerde exemplaar. Als u een openbaar eindpunt van het beheerde exemplaar gebruikt, vervangt u poort 1433 door 3342.

Als u een leesbare secundaire wilt bewaken, voegt u deze toe aan ;ApplicationIntent=ReadOnly de verbindingsreeks. SQL Insights biedt ondersteuning voor het bewaken van één secundaire replica met hoge beschikbaarheid (HA) voor een bepaalde primaire database. Verzamelde gegevens worden gelabeld om primaire of secundaire gegevens weer te geven.

SQL Server

Het TCP/IP-protocol moet zijn ingeschakeld voor het SQL Server-exemplaar dat u wilt bewaken. TCP-verbindingen van de bewakingscomputer met het IP-adres en de poort die door het SQL Server-exemplaar worden gebruikt, moeten worden toegestaan door firewalls of netwerkbeveiligingsgroepen (NSG's) die mogelijk aanwezig zijn op het netwerkpad.

Als u SQL Server wilt bewaken die is geconfigureerd voor hoge beschikbaarheid (met behulp van beschikbaarheidsgroepen of failoverclusterexemplaren), raden we u aan om elk SQL Server-exemplaar afzonderlijk in het cluster te bewaken in plaats van verbinding te maken via een listener van een beschikbaarheidsgroep of een naam van een failovercluster. Dit zorgt ervoor dat bewakingsgegevens worden verzameld, ongeacht de huidige instantierol (primair of secundair).

Voer de verbindingsreeks in het formulier in:

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

Gebruik het IP-adres waarop het SQL Server-exemplaar luistert.

Als uw SQL Server-exemplaar is geconfigureerd om te luisteren op een niet-standaardpoort, vervangt u 1433 door dat poortnummer in de verbindingsreeks. Als u SQL Server op een virtuele Machine van Azure gebruikt, kunt u zien welke poort u op de pagina Beveiliging voor de resource wilt gebruiken.

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.

Voor elk SQL Server-exemplaar kunt u alle IP-adressen en poorten bepalen waarop het luistert door verbinding te maken met het exemplaar en de volgende T-SQL-query uit te voeren, zolang er ten minste één TCP-verbinding met het exemplaar is:

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

Bewakingsprofiel gemaakt

Selecteer Bewakings-VM toevoegen om de virtuele machine te configureren voor het verzamelen van gegevens uit uw SQL-resources. Ga niet terug naar het tabblad Overzicht . Over een paar minuten moet de kolom Status worden gewijzigd in 'Verzamelen'. Als het goed is, ziet u gegevens voor de SQL-resources die u hebt gekozen om te bewaken.

Als u geen gegevens ziet, raadpleegt u Problemen met SQL Insights (preview) oplossen om het probleem te identificeren.

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.

Notitie

Als u uw bewakingsprofiel of de verbindingsreeks s op uw bewakings-VM's wilt bijwerken, kunt u dit doen via het tabblad Profiel beheren van SQL Insights (preview). Zodra uw updates zijn opgeslagen, worden de wijzigingen in ongeveer 5 minuten toegepast.

Volgende stappen