Problembehandlung bei der Verbindung mit dem Datenverarbeitungsdienst und Telemetrieendpunkten
Gilt für:SQL Server
Zusätzlich zu den üblichen Endpunkten stellt die Azure Arc-Erweiterung für SQL Server stellt eine Verbindung mit zwei anderen Endpunkten her:
Data Processing Service (DPS)-Endpunkt
Die gesammelten Bestandsinformationen zu SQL Server-Instanzen, Datenbanken, Verfügbarkeitsgruppen und Nutzungsdaten für Abrechnungszwecke werden an diesen Endpunkt gesendet.
Telemetrieendpunkt
Die Azure Connected Machine Agent-Protokolle, die Azure-Erweiterung für SQL Server-Protokolle und die DMV-Daten (Dynamic Management Views) werden an diesen Endpunkt gesendet.
Die Kommunikation mit diesen Endpunkten verwendet HTTPS mit SSL/TLS und Port TCP/443 für verschlüsselte sichere Verbindungen. Der Agent initiiert die Kommunikation, um die Daten an Azure zu senden. Die Kommunikation wird nie von Azure initiiert. Die Konnektivität|Verbindung für diese Endpunkte ist daher nur unidirektional.
Wenn die Kommunikation mit diesen Endpunkten blockiert wird, hat der Dienst die folgenden Symptome:
- SQL Server-Instanzen werden im Azure-Portal nicht angezeigt. DER DPS-Endpunkt ist blockiert.
- In der SQL Server-Instanz-Leistungsdashboard-Ansicht werden keine Daten angezeigt. Wenn der DPS-Endpunkt entsperrt ist, der Telemetrieendpunkt jedoch blockiert ist.
- In der Azure-Erweiterung für den SQL Server-Status im Azure-Portal wird ein Fehler angezeigt. Prüfen Sie Überprüfen der Azure-Erweiterung für den SQL Server-Status im Azure-Portal.
- In der Azure-Erweiterung für das SQL Server-Protokoll wird ein Fehler angezeigt. Prüfen Sie Überprüfen der Azure-Erweiterung für SQL Server-Protokolle.
Aktueller Status der Azure-Erweiterung
Sie können den aktuellen Status der Azure-Erweiterung für SQL Server im Portal anzeigen. Der Status wird alle 15 Minuten aktualisiert.
Fehlerfreier Status:
Fehlerhafter Status:
Überprüfen Sie, ob beim Herstellen einer Verbindung mit den DPS- oder Telemetrieendpunkten ein Problem auftritt.
Es gibt zwei Möglichkeiten, zu überprüfen, ob Konnektivitätsprobleme mit den DPS- oder Telemetrieendpunkten auftreten.
Überprüfen Sie die Azure-Erweiterung für den SQL Server-Status im im Azure-Portal
Wenn sie mit Azure verbunden ist, meldet die Azure-Erweiterung für SQL Server in der Regel ihren Status im Azure-Portal.
- Navigieren Sie zur Ansicht Computer – Azure Arc im Azure-Portal, und suchen Sie den Computer anhand des Namens, und wählen Sie ihn aus.
- Wählen Sie Erweiterungen.
- Wählen Sie WindowsAgent.SqlServer oder LinuxAgent.SqlServer aus, um die Details anzuzeigen.
- Sehen Sie sich die Statusmeldung und den
uploadStatus
-Wert an. Wenn etwas Anderes als OK angezeigt wird, besteht ein Problem beim Herstellen einer Verbindung mit dem DPS. Wenn es 0 angezeigt wird, ist es wahrscheinlich, dass eine Firewall die Kommunikation mit dem DPS-Endpunkt blockiert. Möglicherweise werden weitere Details in der Statusmeldung oder demuploadStatus
-Fehlercode angezeigt, die Einblicke in das Konnektivitätsproblem liefern können.
Überprüfen Sie die Azure-Erweiterung für SQL Server-Protokolle
Das Erweiterungsprotokoll ist unter:
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer\
Der Name der Protokolldatei hängt von der Azure-Version für SQL Server ab. Für die neueste Version der Azure-Erweiterung für SQL Server ist die Protokolldatei:
unifiedagent.log
Für die Erweiterungsversion 1.1.24724.69
und frühere Versionen lautet die Protokolldatei:
ExtensionLog_0.log
Suchen Sie nach Protokolleinträgen, die ein Problem beim Herstellen einer Verbindung mit den DPS- oder Telemetrieendpunkten angeben.
Webserver-Endpunkte testen
Sie können verschiedene Tools verwenden, um die Webserverendpunkte für DPS und Telemetrie zu untersuchen. Zum Beispiel: Invoke-WebRequest
oder curl
.
Im folgenden Beispiel wird Invoke-Webrequest
verwendet:
Invoke-WebRequest telemetry.<region>.arcdataservices.com
Ein möglicher Antwortstatuscode ist:
Invoke-WebRequest: Response status code does not indicate success: 401 (Unauthorized).
401 wird erwartet, da es keine nicht authentifizierte Route auf dem Telemetrieendpunkt gibt.
Für DPS:
Invoke-WebRequest dataprocessingservice.<region>.arcdataservices.com
Ein möglicher Antwortstatuscode ist:
StatusCode : 200
StatusDescription : OK
Dieser sollte eine 200 zurückgeben, da es eine nicht authentifizierte Route gibt.
Probekonnektivität mit allen Regionen
Sie können die Konnektivität mit allen Regionen mit dem PowerShell-Skript test-connectivity.ps1 testen.
#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)
Endpunktverweis
Um eine Verbindung mit Azure herzustellen, verwenden die Endpunkte *.arcdataservices.com
.
Zusätzlicher Hintergrund
Ab dem 12. März 2024 verwendet die Azure-Erweiterung für SQL Server die folgenden Endpunkte:
- DPS:
dataprocessingservice.<region>.arcdataservices.com
- Telemetrie
telemetry.<region>.arcdataservices.com
Ersetzen Sie <region>
mit dem Kurznamen der Azure-Region, in der sich die Arc-Computerressource befindet. Der Kurzname wird aus dem Namen der Azure-Region ohne Leerzeichen und alle Kleinbuchstaben abgeleitet.
Wenn sich Ihre Arc-Computerressource beispielsweise in USA, Osten 2 befindet, lautet der Kurzname der Region eastus2
und der Telemetrie-Endpunkte ist:
telemetry.eastus2.arcdataservices.com
Wenn Ihre Erweiterung älter als der 11. März 2024 ist, können ältere Endpunkte verwendet werden. Aktualisieren Sie Ihre Erweiterung so, dass sie den aktuellen Endpunkt verwendet.
Anmerkung
Die Endpunktwerte vor *.arcdataservices.com
können sich ändern.
Verwenden eines HTTPS-Proxyservers für ausgehende Verbindungen
Wenn Ihr Netzwerk einen HTTPS-Proxyserver für ausgehende Konnektivität benötigt, können Sie weitere Informationen zum Konfigurieren der Proxyeinstellungen unter Aktualisieren oder Entfernen von Proxyeinstellungen lesen.
Abfragen von Azure Resource Graph für Telemetrieuploadstatistiken
Verwenden Sie Azure Resource Graph, um den Uploadstatus für Ihre Umgebung abzufragen.
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-Erweiterungen finden, die seit langem nicht mehr mit DPS verbunden sind
Fragen Sie Azure Resource Graph ab, um Erweiterungen zu finden, die nicht kürzlich DPS verbunden worden sind.
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
Fehlercodes
Die folgende Tabelle enthält einige gängige Werte für den DPS-Uploadstatus und Informationen zur weiteren Problembehandlung.
DPS-Uploadstatuswert | HTTP-Fehlercode | Vorschläge für die Problembehandlung |
---|---|---|
0 |
Wahrscheinliche Ursache: Eine Firewall blockiert die Übertragung der Daten zum DPS. Öffnen Sie die Firewall zum DNS-Endpunkt für das DPS (TCP, Port: 443). | |
OK |
200 | Die Verbindung funktioniert wie erwartet. |
Bad request |
400 | Mögliche Ursache: Der Ressourcenname (Name der SQL Server-Instanz oder -Datenbank) entspricht nicht den Namenskonventionen für Azure-Ressourcen. Wenn der Datenbankname beispielsweise ein reserviertes Wort ist. |
Unauthorized |
401 | Wahrscheinliche Ursache: Die Erweiterung ist so konfiguriert, dass Daten über einen HTTP-Proxy gesendet werden, der eine Authentifizierung erfordert. Die Verwendung eines HTTP-Proxys, der eine Authentifizierung erfordert, wird derzeit nicht unterstützt. Verwenden Sie einen nicht authentifizierten HTTP-Proxy oder keinen Proxy. |
Forbidden |
403 | Wenn der Azure Connected Machine-Agent ansonsten erwartungsgemäß funktioniert und dieser Fehler nach einem Neustart nicht von selbst behoben ist, erstellen Sie über das Azure-Portal einen Supportfall beim Microsoft-Support. |
NotFound |
404 | Der Endpunkt, mit dem die Erweiterung eine Verbindung herzustellen versucht, existiert nicht. Um zu überprüfen, mit welchem Endpunkt eine Verbindung hergestellt werden soll, durchsuchen Sie die Protokolle nach dataprocessingservice . Dieser Zustand kann vorkommen, wenn der Azure Connected Machine-Agent mit einer Azure-Region bereitgestellt und verbunden wurde, in der der Microsoft.AzureArcData -Ressourcenanbieter noch nicht verfügbar ist. Stellen Sie den Azure Connected Machine-Agent in einer Region erneut bereit, in der der Microsoft.AzureArcData -Ressourcenanbieter für den SQL Server mit Azure Arc-Unterstützung verfügbar ist. Weitere Informationen finden Sie auch unter Regionale Verfügbarkeit.Möglicherwiese wird der DNS-Resolver-Cache für Ihren Computer nicht aktualisiert. Zur Aktualisierung gehen Sie wie folgt vor: - Führen Sie unter Windows Folgendes aus: ipconfig /flushdns – Führen Sie unter Linux (bei Verwendung von systemd ) Folgendes aus: sudo resolvectl flush-caches |
Conflict |
409 | Wahrscheinliche Ursache: temporärer Fehler innerhalb des DPS. Wenn der Fehler nicht von selbst behoben wird, erstellen Sie über das Azure-Portal einen Supportfall beim Microsoft-Support. |
InternalServerError |
500 | Dies ist ein Fehler, der innerhalb des DPS auftritt. Erstellen Sie über das Azure-Portal einen Supportfall beim Microsoft-Support. |
Zugehöriger Inhalt
- Problembehandlung bei der Azure-Erweiterung für SQL Server
- Problembehandlung der Best-Practices-Bewertung für SQL Server
- Konfigurieren der SQL-Best-Practices-Bewertung
- Anzeigen von SQL Server-Datenbanken – Azure Arc
- Verwalten von SQL Server-Lizenzierungs- und Abrechnungsoptionen
- Aktivitätsprotokolle für SQL Server mit Azure Arc-Unterstützung und Datenbanken
- Von Arc-fähigem SQL Server gesammelte Daten