Problemen met connectiviteit met de gegevensverwerkingsservice en telemetrie-eindpunten oplossen
van toepassing op:SQL Server-
Naast de gebruikelijke eindpunten maakt de Azure Arc-extensie voor SQL Server verbinding met twee andere eindpunten:
DpS-eindpunt (Data Processing Service)
De verzamelde inventarisgegevens over SQL Server-exemplaren, databases, beschikbaarheidsgroepen en gebruiksgegevens voor factureringsdoeleinden worden naar dit eindpunt verzonden.
Telemetrie-eindpunt
De Azure Connected Machine-agentlogboeken, de Azure-extensie voor SQL Server-logboeken en de DMV-gegevens (Dynamic Management Views) worden naar dit eindpunt verzonden.
Communicatie met deze eindpunten maakt gebruik van HTTPS met SSL/TLS en poort TCP/443 voor versleutelde beveiligde verbindingen. De agent initieert communicatie om de gegevens naar Azure te verzenden. Azure initieert nooit communicatie. Connectiviteit met deze eindpunten is daarom slechts één manier.
Wanneer de communicatie met deze eindpunten wordt geblokkeerd, heeft de service de volgende symptomen:
- U ziet geen SQL Server-exemplaren in Azure Portal. DPS-eindpunt wordt geblokkeerd.
- U ziet geen gegevens in de prestatie-dashboardsweergave van de SQL Server-instantie. Als het DPS-eindpunt is gedeblokkeerd, terwijl het telemetrie-eindpunt wordt geblokkeerd.
- Er wordt een fout weergegeven in de Azure-extensie voor de SQL Server-status in de Azure Portal. Controleer Controleer de Status van de Azure-extensie voor SQL Server in Azure Portal.
- U ziet een fout in de Azure-extensie voor SQL Server-logboek. Beoordeel Controleer de Azure-extensie voor SQL Server-logboeken.
Huidige status van Azure-extensie
U kunt de huidige status van de Azure-extensie voor SQL Server bekijken in de portal. De status wordt elke 15 minuten vernieuwd.
Gezonde toestand
Ongezonde staat
Controleer of er een probleem is met het maken van verbinding met de DPS- of telemetrie-eindpunten
Er zijn twee manieren om te controleren of er verbindingsproblemen zijn met de DPS- of telemetrie-eindpunten.
Controleer de Azure-extensie voor de status van SQL Server in de Azure portal
Als deze is verbonden met Azure in het algemeen, rapporteert de Azure-extensie voor SQL Server de status ervan in Azure Portal.
- Navigeer naar de weergave Machines - Azure Arc in Azure Portal en zoek de computer op naam en selecteer deze.
- Selecteer Extensies.
- Selecteer WindowsAgent.SqlServer of LinuxAgent.SqlServer om de details weer te geven.
- Bekijk het statusbericht en de
uploadStatus
waarde. Als het iets anders is dan OK, is er een probleem met het maken van verbinding met de DPS. Als het 0is, is er waarschijnlijk een firewall die de communicatie naar het DPS-eindpunt blokkeert. Er zijn mogelijk meer details in het statusbericht of deuploadStatus
foutcode die inzicht kan geven in het verbindingsprobleem.
Controleer de Azure-extensie voor SQL Server-logboeken
Het extensielogboekbestand bevindt zich op:
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer\
De naam van het logboekbestand is afhankelijk van de versie van de Azure-extensie voor SQL Server. Voor de nieuwste versie van de Azure-extensie voor SQL Server is het logboekbestand:
unifiedagent.log
Voor de extensieversie 1.1.24724.69
en eerder is het logboekbestand:
ExtensionLog_0.log
Controleer op logboekvermeldingen die aangeven dat er een probleem is met het maken van verbinding met de DPS- of telemetrie-eindpunten.
Onderzoek webserver-eindpunten
U kunt verschillende hulpprogramma's gebruiken om de webservereindpunten voor DPS en telemetrie te testen. Bijvoorbeeld Invoke-WebRequest
of curl
.
In het volgende voorbeeld wordt Invoke-Webrequest
gebruikt:
Invoke-WebRequest telemetry.<region>.arcdataservices.com
Een mogelijke antwoordstatuscode is:
Invoke-WebRequest: Response status code does not indicate success: 401 (Unauthorized).
401 wordt verwacht omdat er geen niet-geverifieerde route op het telemetrie-eindpunt is.
Voor DPS:
Invoke-WebRequest dataprocessingservice.<region>.arcdataservices.com
Een mogelijke antwoordstatuscode is:
StatusCode : 200
StatusDescription : OK
Deze zou een 200 moeten retourneren omdat er een ongeauthenticeerde route is.
Onderzoek connectiviteit voor alle regio's
U kunt de connectiviteit met alle regio's testen met het test-connectivity.ps1 PowerShell-script.
#This script repeatedly probes all regions for connectivity to the Azure Arc data services/Arc-enabled SQL Server endpoints for telemetry and the data processing service.
#The script will output the status of the connectivity to the console.
#The script will run indefinitely until stopped by the user.
#The script will iterate through all regions in the $regions array.
#The list of regions are updated as of June 7,2024 to reflect all publicly available, supported Azure regions for Arc-enabled SQL Server.
$regions = @(
"East US",
"East US 2",
"West US 2",
"West US 3",
"Central US",
"North Central US",
"South Central US",
"West Central US",
"Canada Central",
"Canada East",
"UK South",
"UK West",
"France Central",
"West Europe",
"North Europe",
"Switzerland North",
"Central India",
"Brazil South",
"South Africa North",
"UAE North",
"Japan East",
"Korea Central",
"Southeast Asia",
"Australia East",
"Sweden Central",
"Norway East"
)
$regions = $regions | ForEach-Object { $_.Replace(" ", "") }
do{
$regions | ForEach-Object {
$dps_url = "dataprocessingservice.$_.arcdataservices.com"
$ti_url = "telemetry.$_.arcdataservices.com"
try{
$dps_response_time = Measure-Command { $response = Invoke-WebRequest -Uri $dps_url -Method Get }
$dps_result = ($response).StatusCode
}catch{
$dps_result = $_.Exception.Message
}
try{
$ti_response_time = Measure-Command { $response = Invoke-WebRequest -Uri $ti_url -Method Get -SkipHttpErrorCheck }
}catch{
if($_.Exception.Message -like "*401*"){
$ti_result = "Expected"
}
else {
$ti_result = $_.Exception.Message
}
}
if ($ti_response_time.TotalSeconds -gt 3 -or $dps_response_time.TotalSeconds -gt 3 -or $dps_result -ne 200 -or $ti_result -ne "Expected") {
Write-Host $dps_result "($dps_response_time) " $ti_result " ($ti_response_time) :: $_" -ForegroundColor Red
}
elseif ($ti_response_time.TotalSeconds -gt 1 -or $dps_response_time.TotalSeconds -gt 1) {
Write-Host $dps_result "($dps_response_time) " $ti_result " ($ti_response_time) :: $_" -ForegroundColor Yellow
}
else
{
Write-Host $dps_result "($dps_response_time) " $ti_result " ($ti_response_time) :: $_"
}
}
Write-Host "====================================================================="
} while($true)
Eindpuntreferentie
De eindpunten gebruiken *.arcdataservices.com
om verbinding te maken met Azure.
Aanvullende achtergrond
Vanaf 12 maart 2024gebruikt de Azure-extensie voor SQL Server de volgende eindpunten:
- DPS:
dataprocessingservice.<region>.arcdataservices.com
- Telemetrie
telemetry.<region>.arcdataservices.com
Vervang <region>
door de korte naam van de Azure-regio waar de Arc-machineresource zich bevindt. De korte naam wordt afgeleid van de naam van de Azure-regio zonder spaties en alle kleine letters.
Als uw Arc-machineresource zich bijvoorbeeld bevindt in VS - oost 2 de korte naam van de regio is eastus2
en het telemetrie-eindpunt:
telemetry.eastus2.arcdataservices.com
Als uw extensie ouder is dan 11 maart 2024, kan deze oudere eindpunten gebruiken. Werk uw extensie bij om het huidige eindpunt te gebruiken.
Notitie
De eindpuntwaarden voordat *.arcdataservices.com
kunnen worden gewijzigd.
Een HTTPS-proxyserver gebruiken voor uitgaande connectiviteit
Als uw netwerk een HTTPS-proxyserver nodig heeft voor uitgaande connectiviteit, kunt u meer lezen over het configureren ervan via Proxy-instellingen bijwerken of verwijderen.
Query's uitvoeren op Azure Resource Graph voor uploadstatistieken voor telemetrie
Gebruik Azure Resource Graph om een query uit te voeren op de uploadstatus voor uw omgeving.
resources
| where type =~ 'microsoft.hybridcompute/machines/extensions'
| where properties.type in ('WindowsAgent.SqlServer','LinuxAgent.SqlServer')
| parse id with * '/providers/Microsoft.HybridCompute/machines/' machineName '/extensions/' *
| parse properties with * 'uploadStatus : ' uploadStatus ';' *
| project uploadStatus, subscriptionId, resourceGroup, machineName
| where uploadStatus !in ('OK') //comment this out to see all upload stats
| order by uploadStatus desc
SQL-extensies zoeken die al lange tijd niet zijn verbonden met DPS
Voer een query uit Azure Resource Graph- om extensies te vinden die onlangs niet zijn verbonden met DPS.
resources
| where type =~ 'microsoft.hybridcompute/machines/extensions'
| where properties.type in ('WindowsAgent.SqlServer','LinuxAgent.SqlServer')
| parse id with * '/providers/Microsoft.HybridCompute/machines/' machineName '/extensions/' *
| parse properties with * 'timestampUTC : ' timestampUTC ';' *
| project timestampUTC, subscriptionId, resourceGroup, machineName
| order by timestampUTC desc
Foutcodes
In de volgende tabel ziet u enkele algemene uploadstatuswaarden van DPS en wat u kunt doen om problemen verder op te lossen.
DPS-uploadstatuswaarde | HTTP-foutcode | Suggesties voor probleemoplossing |
---|---|---|
0 |
Waarschijnlijke oorzaak: een firewall blokkeert de overdracht van de gegevens naar de DPS. Open de firewall naar het DNS-eindpunt voor de DPS (TCP, poort: 443). | |
OK |
200 | De verbinding werkt zoals verwacht. |
Bad request |
400 | Mogelijke oorzaak: de resourcenaam (SQL Server-exemplaar of databasenaam) voldoet niet aan de naamgevingsconventies van Azure-resources. Als de databasenaam bijvoorbeeld een gereserveerd woord is. |
Unauthorized |
401 | Waarschijnlijke oorzaak: de extensie is geconfigureerd voor het verzenden van gegevens via een HTTP-proxy waarvoor verificatie is vereist. Het gebruik van een HTTP-proxy waarvoor verificatie is vereist, wordt momenteel niet ondersteund. Gebruik een niet-geverifieerde HTTP-proxy of geen proxy. |
Forbidden |
403 | Als de Azure Connected Machine-agent anders werkt zoals verwacht en deze fout na het opnieuw opstarten niet wordt opgelost, maakt u een ondersteuningsaanvraag met Microsoft Ondersteuning via Azure Portal. |
NotFound |
404 | Het eindpunt waarmee de extensie verbinding probeert te maken, bestaat niet. Als u wilt controleren met welk eindpunt het verbinding probeert te maken, zoekt u in de logboeken naar dataprocessingservice . Deze voorwaarde kan zich voordoen als de Azure Connected Machine-agent is geïmplementeerd en is verbonden met een Azure-regio waarin de Microsoft.AzureArcData resourceprovider nog niet beschikbaar is.
de Azure Connected Machine-agent opnieuw implementeren in een regio waarin de Microsoft.AzureArcData resourceprovider voor eenSQL-server die door Azure Arc is ingeschakeld, beschikbaar is. Zie ook Regiobeschikbaarheid.Het is mogelijk dat de cache van de DNS-resolver niet wordt vernieuwd voor uw computer. Om te vernieuwen: - Uitvoeren op Windows: ipconfig /flushdns - Op Linux (als systemd wordt gebruikt) voert u het volgende uit: sudo resolvectl flush-caches |
Conflict |
409 | Waarschijnlijke oorzaak: tijdelijke fout die zich in de DPS voordoet. Als dit niet zelf wordt opgelost, maakt u een ondersteuningsaanvraag met Microsoft Ondersteuning via Azure Portal. |
InternalServerError |
500 | Dit is een fout die zich in de DPS voordoet. Maak een ondersteuningsaanvraag met Microsoft Ondersteuning via Azure Portal. |
Verwante inhoud
- problemen met azure-extensie voor SQL Server-oplossen
- Problemen oplossen met de evaluatie van best practices op SQL Server-
- De evaluatie van best practices voor SQL configureren
- SQL Server-databases weergeven - Azure Arc
- Sql Server-licentie- en factureringsopties beheren
- SQL Server ondersteund door Azure Arc en activiteitenlogboeken van Databases
- Door Arc ingeschakelde gegevens verzameld door SQL Server