Dela via


Felsöka anslutningen till databehandlingstjänsten och telemetrislutpunkter

gäller för:SQL Server

Utöver de vanliga slutpunkterna ansluter Azure Arc-tillägget för SQL Server till två andra slutpunkter:

  • Slutpunkt för databearbetningstjänst (DPS)

    Den insamlade inventeringsinformationen om SQL Server-instanser, databaser, tillgänglighetsgrupper och användningsdata i faktureringssyfte skickas till den här slutpunkten.

  • Telemetrislutpunkt

    Azure Connected Machine-agentloggarna, Azure-tillägget för SQL Server-loggar och DMV-data (Dynamic Management Views) skickas till den här slutpunkten.

Kommunikation till dessa slutpunkter använder HTTPS med SSL/TLS och port TCP/443 för krypterade säkra anslutningar. Agenten initierar kommunikation för att skicka data till Azure. Azure initierar aldrig kommunikation. Anslutningen till dessa slutpunkter är därför bara ett sätt.

När kommunikationen till dessa slutpunkter blockeras har tjänsten följande symtom:

Aktuellt tillstånd för Azure-tillägg

Du kan visa det aktuella tillståndet för Azure-tillägget för SQL Server i portalen. Statusen uppdateras var 15:e minut.

Hälsosamt tillstånd

Skärmbild av portalen för Azure-tillägget för SQL Server i ett fungerande tillstånd.

Feltillstånd:

Skärmbild av portalen för Azure-tillägget för SQL Server i ett ohälsosamt tillstånd.

Kontrollera om du har problem med att ansluta till DPS- eller telemetrislutpunkterna

Det finns två sätt att kontrollera om du har anslutningsproblem med DPS- eller telemetrislutpunkterna.

Kontrollera Azure-tillägget för SQL Server-status i Azure-portalen

Om den är ansluten till Azure i allmänhet rapporterar Azure-tillägget för SQL Server dess status i Azure-portalen.

  • Gå till vyn Machines – Azure Arc i Azure-portalen och leta reda på datorn efter namn och välj den.
  • Välj tillägg.
  • Välj WindowsAgent.SqlServer eller LinuxAgent.SqlServer för att visa informationen.
  • Titta på statusmeddelandet och värdet för uploadStatus. Om det är något annat än OK, finns det ett problem med att ansluta till DPS. Om det är 0är det troligt att det finns en brandvägg som blockerar kommunikationen till DPS-slutpunkten. Det kan finnas mer information i statusmeddelandet eller uploadStatus felkod som kan ge insikter om anslutningsproblemet.

Kontrollera Azure-tillägget för SQL Server-loggar

Loggfilen för tillägg finns på:

C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer\

Loggfilens namn beror på versionen av Azure-tillägget för SQL Server. För den senaste versionen av Azure-tillägget för SQL Server är loggfilen:

unifiedagent.log

För tilläggsversion 1.1.24724.69 och tidigare är loggfilen:

ExtensionLog_0.log

Sök efter loggposter som anger ett problem med att ansluta till DPS- eller telemetrislutpunkterna.

Avsöka webbserverslutpunkter

Du kan använda olika verktyg för att avsöka webbserverslutpunkterna för DPS och telemetri. Till exempel Invoke-WebRequest eller curl.

I följande exempel används Invoke-Webrequest:

Invoke-WebRequest telemetry.<region>.arcdataservices.com

En möjlig svarsstatuskod är:

Invoke-WebRequest: Response status code does not indicate success: 401 (Unauthorized).

401 förväntas eftersom det inte finns någon oautentiserad väg på telemetrislutpunkten.

För DPS:

Invoke-WebRequest dataprocessingservice.<region>.arcdataservices.com

En möjlig svarsstatuskod är:

StatusCode        : 200

StatusDescription : OK

Den här bör returnera en 200 eftersom det finns en oautentiserad rutt.

Testa anslutning till alla regioner

Du kan avsöka anslutningen till alla regioner med test-connectivity.ps1 PowerShell-skript.

#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)

Endpunktsreferens

För att ansluta till Azure använder slutpunkterna *.arcdataservices.com.

Ytterligare bakgrund

Från och med den 12 mars 2024använder Azure-tillägget för SQL Server följande slutpunkter:

  • DPS: dataprocessingservice.<region>.arcdataservices.com
  • Telemetri telemetry.<region>.arcdataservices.com

Ersätt <region> med det korta namnet på den Azure-region där Arc-datorresursen finns. Det korta namnet härleds från namnet på Azure-regionen utan blanksteg och med alla gemener.

Om din Arc-datorresurs till exempel finns i USA, östra 2 är det korta namnet på regionen eastus2 och telemetrislutpunkten är:

telemetry.eastus2.arcdataservices.com

Om tillägget har funnits längre än den 11 mars 2024 kan det använda äldre slutpunkter. Uppdatera tillägget så att det använder den aktuella slutpunkten.

Not

Slutpunktsvärdena före *.arcdataservices.com kan komma att ändras.

Använda en HTTPS-proxyserver för utgående anslutning

Om nätverket kräver att du använder en HTTPS-proxyserver för utgående anslutning kan du läsa mer om hur du konfigurerar det på Uppdatera eller ta bort proxyinställningar.

Fråga Azure Resource Graph om telemetriuppladdningsstatistik

Använd Azure Resource Graph- för att fråga efter uppladdningsstatus för din miljö.

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

Hitta SQL-tillägg som inte har anslutit till DPS på länge

Fråga Azure Resource Graph för att hitta tillägg som inte har anslutit till DPS nyligen.

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

Felkoder

I följande tabell visas några av de vanliga dps-uppladdningsstatusvärdena och vad du kan göra för att felsöka ytterligare.

Statusvärde för DPS-uppladdning HTTP-felkod Felsökningsförslag
0 Sannolik orsak: en brandvägg blockerar överföringen av data till DPS. Öppna brandväggen till DNS-slutpunkten för DPS (TCP, port: 443).
OK 200 Anslutningen fungerar som förväntat.
Bad request 400 Möjlig orsak: Resursnamnet (SQL Server-instansen eller databasnamnet) överensstämmer inte med namngivningskonventionerna för Azure-resurser. Till exempel, om databasnamnet är ett reserverat ord.
Unauthorized 401 Sannolik orsak: tillägget är konfigurerat för att skicka data via en HTTP-proxy som kräver autentisering. Det finns för närvarande inte stöd för att använda en HTTP-proxy som kräver autentisering. Använd en oautentiserad HTTP-proxy eller ingen proxy.
Forbidden 403 Om Azure Connected Machine-agenten annars fungerar som förväntat och det här felet inte löser sig efter en omstart skapar du ett supportärende med Microsoft Support via Azure-portalen.
NotFound 404 Slutpunkten som tillägget försöker ansluta till finns inte.

Om du vill kontrollera vilken slutpunkt den försöker ansluta till söker du i loggarna efter dataprocessingservice. Det här villkoret kan inträffa om Azure Connected Machine-agenten har distribuerats och anslutits till en Azure-region där Microsoft.AzureArcData resursprovidern ännu inte är tillgänglig. distribuera om Azure Connected Machine-agenten i en region där Microsoft.AzureArcData resursleverantören för en SQL-server som är aktiverad av Azure Arc är tillgänglig. Se även Region tillgänglighet.

Det är möjligt att DNS-lösarcachen inte har uppdaterats för din dator. Så här uppdaterar du:
– Kör i Windows: ipconfig /flushdns
– På Linux (om systemd används) kör du: sudo resolvectl flush-caches
Conflict 409 Sannolik orsak: ett tillfälligt fel inträffar i DPS. Om detta inte löser sig skapar du ett supportärende med Microsoft Support via Azure-portalen.
InternalServerError 500 Det här är ett fel som inträffar i DPS. Skapa ett supportärende med Microsoft Support via Azure-portalen.