Rozwiązywanie problemów z łącznością z usługą przetwarzania danych i punktami końcowymi telemetrii
Dotyczy:programu SQL Server
Oprócz zwykłych punktów końcowych rozszerzenie usługi Azure Arc dla programu SQL Server łączy się z dwoma innymi punktami końcowymi:
Punkt końcowy usługi przetwarzania danych (DPS)
Zebrane informacje dotyczące spisu instancji SQL Server, baz danych, grup dostępności i danych użytkowania na potrzeby rozliczeń są wysyłane do tego punktu końcowego.
Punkt końcowy telemetrii
Dzienniki agenta połączonej maszyny platformy Azure, rozszerzenie platformy Azure dla dzienników programu SQL Server oraz dane dynamicznych widoków zarządzania (DMV) są wysyłane do tego punktu końcowego.
Komunikacja z tymi punktami końcowymi używa protokołu HTTPS z protokołem SSL/TLS i portem TCP/443 na potrzeby szyfrowanych bezpiecznych połączeń. Agent inicjuje komunikację w celu wysyłania danych do platformy Azure. Platforma Azure nigdy nie inicjuje komunikacji. Łączność z tymi punktami końcowymi jest zatem tylko jednym ze sposobów.
Gdy komunikacja z tymi punktami końcowymi jest zablokowana, usługa ma następujące objawy:
- Wystąpienia programu SQL Server nie są widoczne w witrynie Azure Portal. Punkt końcowy usługi DPS jest zablokowany.
- Dane nie są widoczne w dashbordzie wydajności instancji programu SQL Server. Jeśli punkt końcowy usługi DPS zostanie odblokowany, ale punkt końcowy telemetrii zostanie zablokowany.
- W witrynie Azure Portal zostanie wyświetlony błąd dotyczący stanu programu SQL Server dla rozszerzenia platformy Azure. Przejrzyj i sprawdź stan rozszerzenia platformy Azure dla SQL Server w Azure Portal.
- Widzisz błąd w rozszerzeniu platformy Azure dla dziennika programu SQL Server. Przejrzyj . Sprawdź dzienniki rozszerzenia platformy Azure dla programu SQL Server.
Bieżący stan rozszerzenia platformy Azure
Bieżący stan rozszerzenia platformy Azure dla programu SQL Server można wyświetlić w portalu. Stan jest odświeżany co 15 minut.
Stan dobrej kondycji:
Stan złej kondycji:
Sprawdź, czy masz problem z nawiązywaniem połączenia z punktami końcowymi usługi DPS lub telemetrii
Istnieją dwa sposoby sprawdzania, czy występują problemy z łącznością z punktami końcowymi usługi DPS lub telemetrii.
Sprawdź stan rozszerzenia platformy Azure pod kątem programu SQL Server w witrynie Azure Portal
Jeśli połączenie jest ogólnie połączone z platformą Azure, rozszerzenie platformy Azure dla programu SQL Server zgłasza stan w witrynie Azure Portal.
- Przejdź do widoku Machines — Azure Arc w witrynie Azure Portal i znajdź maszynę według nazwy i wybierz ją.
- Wybierz Extensions.
- Wybierz windowsAgent.SqlServer lub LinuxAgent.SqlServer, aby wyświetlić szczegóły.
- Przyjrzyj się komunikatu o stanie i wartości
uploadStatus
. Jeśli jest to coś innego niż OK, jest problem z połączeniem z systemem DPS. Jeśli 0, prawdopodobnie zapora blokuje komunikację z punktem końcowym usługi DPS. W komunikacie o stanie może być więcej szczegółów lub kod błęduuploadStatus
, który może zapewnić wgląd w problem z łącznością.
Sprawdzanie dzienników rozszerzenia platformy Azure dla programu SQL Server
Plik dziennika rozszerzenia znajduje się pod adresem:
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer\
Nazwa pliku dziennika zależy od wersji rozszerzenia platformy Azure dla programu SQL Server. W przypadku najnowszej wersji rozszerzenia platformy Azure dla programu SQL Server plik dziennika to:
unifiedagent.log
W przypadku wersji rozszerzenia 1.1.24724.69
i starszych plik dziennika to:
ExtensionLog_0.log
Sprawdź wpisy dziennika wskazujące problem podczas nawiązywania połączenia z punktami końcowymi usługi DPS lub telemetrii.
Sonduj punkty końcowe serwera internetowego
Za pomocą różnych narzędzi można sondować punkty końcowe serwera WWW pod kątem DPS i telemetrii. Na przykład Invoke-WebRequest
lub curl
.
W poniższym przykładzie użyto Invoke-Webrequest
:
Invoke-WebRequest telemetry.<region>.arcdataservices.com
Możliwy kod stanu odpowiedzi to:
Invoke-WebRequest: Response status code does not indicate success: 401 (Unauthorized).
Oczekiwano wartości 401, ponieważ nie ma żadnej nieuwierzytelnionej ścieżki w punkcie końcowym telemetrii.
W przypadku usługi DPS:
Invoke-WebRequest dataprocessingservice.<region>.arcdataservices.com
Możliwy kod stanu odpowiedzi to:
StatusCode : 200
StatusDescription : OK
Ten przypadek powinien zwrócić wartość 200, ponieważ istnieje nieuwierzytelniona trasa.
Łączność sondy ze wszystkimi regionami
Możesz sondować łączność ze wszystkimi regionami za pomocą skryptu programu test-connectivity.ps1 PowerShell.
#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)
Referencja punktu końcowego
Aby nawiązać połączenie z platformą Azure, punkty końcowe używają *.arcdataservices.com
.
Dodatkowe informacje
Począwszy od 12 marca, 2024 r., rozszerzenie usługi Azure dla programu SQL Server używa następujących punktów końcowych:
- DPS:
dataprocessingservice.<region>.arcdataservices.com
- Telemetria
telemetry.<region>.arcdataservices.com
Zastąp <region>
krótką nazwą regionu świadczenia usługi Azure, w którym znajduje się zasób maszyny arc. Krótka nazwa pochodzi z nazwy regionu platformy Azure bez spacji i wszystkich małych liter.
Jeśli na przykład zasób maszyny Arc znajduje się w Wschodnie USA 2, krótką nazwą regionu jest eastus2
, a punkt końcowy telemetrii to:
telemetry.eastus2.arcdataservices.com
Jeśli rozszerzenie jest starsze niż 11 marca 2024 r., może używać starszych punktów końcowych. Zaktualizuj rozszerzenie, aby używało bieżącego punktu końcowego.
Notatka
Wartości punktu końcowego przed *.arcdataservices.com
mogą ulec zmianie.
Używanie serwera proxy HTTPS na potrzeby łączności wychodzącej
Jeśli Twoja sieć wymaga używania serwera proxy HTTPS dla łączności wychodzącej, możesz dowiedzieć się więcej na temat konfigurowania tych ustawień w Aktualizuj lub usuń ustawienia serwera proxy.
Wykonywanie zapytań względem usługi Azure Resource Graph pod kątem statystyk przekazywania danych telemetrycznych
Użyj usługi Azure Resource Graph, aby zapytać o status przesyłania dla Twojego środowiska.
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
Znajdowanie rozszerzeń SQL, które nie nawiązały połączenia z usługą DPS przez długi czas
Wykonaj zapytanie usługi Azure Resource Graph, aby znaleźć rozszerzenia, które nie zostały ostatnio połączone z usługą 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
Kody błędów
W poniższej tabeli przedstawiono niektóre z typowych wartości statusu przesyłania DPS oraz czynności, które można podjąć w celu dalszego rozwiązywania problemów.
Wartość stanu przekazywania usługi DPS | Kod błędu HTTP | Sugestie dotyczące rozwiązywania problemów |
---|---|---|
0 |
Prawdopodobna przyczyna: zapora blokuje przesyłanie danych do usługi DPS. Otwórz zaporę do punktu końcowego DNS dla usługi DPS (TCP, port: 443). | |
OK |
200 | Połączenie działa zgodnie z oczekiwaniami. |
Bad request |
400 | Możliwa przyczyna: nazwa zasobu (wystąpienie programu SQL Server lub nazwa bazy danych) nie jest zgodna z konwencjami nazewnictwa zasobów platformy Azure. Jeśli na przykład nazwa bazy danych to zastrzeżone słowo. |
Unauthorized |
401 | Prawdopodobna przyczyna: rozszerzenie jest skonfigurowane do wysyłania danych za pośrednictwem serwera proxy HTTP, który wymaga uwierzytelniania. Korzystanie z serwera proxy HTTP wymagającego uwierzytelniania nie jest obecnie obsługiwane. Użyj nieuwierzytelnionego serwera proxy HTTP lub bez serwera proxy. |
Forbidden |
403 | Jeśli agent usługi Azure Connected Machine działa zgodnie z oczekiwaniami i ten błąd nie zostanie rozwiązany po ponownym uruchomieniu, utwórz zgłoszenie do pomocy technicznej firmy Microsoft za pośrednictwem witryny Azure Portal. |
NotFound |
404 | Punkt końcowy, z którego próbuje nawiązać połączenie rozszerzenie, nie istnieje. Aby sprawdzić, z którym punktem końcowym próbuje nawiązać połączenie, przeszukaj dzienniki pod kątem dataprocessingservice . Ten warunek może wystąpić, jeśli agent usługi Azure Connected Machine został wdrożony i połączony z regionem świadczenia usługi Azure, w którym dostawca zasobów Microsoft.AzureArcData nie jest jeszcze dostępny.
ponownie wdrożyć agenta połączonej maszyny platformy Azure w regionie, w którym jest dostępny dostawca zasobów Microsoft.AzureArcData dla serwera aSQL włączonego przez usługę Azure Arc. Zobacz również Dostępność regionów.Istnieje możliwość, że pamięć podręczna programu rozpoznawania nazw DNS nie jest odświeżona na Twoim komputerze. Aby odświeżyć: — W systemie Windows uruchom polecenie: ipconfig /flushdns — w systemie Linux (jeśli jest używana systemd ) uruchom polecenie: sudo resolvectl flush-caches |
Conflict |
409 | Prawdopodobna przyczyna: tymczasowy błąd występujący wewnątrz usługi DPS. Jeśli to nie rozwiąże problemu, utwórz zgłoszenie do pomocy technicznej firmy Microsoft za pośrednictwem witryny Azure Portal. |
InternalServerError |
500 | Jest to błąd, który występuje wewnątrz usługi DPS. Utwórz zgłoszenie do pomocy technicznej firmy Microsoft za pośrednictwem witryny Azure Portal. |
Powiązana zawartość
- Rozwiązywanie problemów z rozszerzeniem platformy Azure dla programu SQL Server
- Rozwiązywanie problemów związanych z oceną najlepszych praktyk w SQL Server
- Konfigurowanie oceny najlepszych praktyk SQL
- Wyświetlanie baz danych programu SQL Server — Azure Arc
- Zarządzanie licencjami i opcjami rozliczeń programu SQL Server
- Serwer SQL włączony przez Azure Arc i dzienniki aktywności baz danych
- dane zebrane przez SQL Server z obsługą Arc