Delen via


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:

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

Schermopname van portal voor Azure-extensie voor SQL Server in een goede status.

Ongezonde staat

Schermopname van portal voor Azure-extensie voor SQL Server met een slechte status.

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 de uploadStatus 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-Webrequestgebruikt:

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.comom 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.