Řešení potíží s připojením ke službě pro zpracování dat a koncovým bodům telemetrie

platí pro:SQL Server

Kromě obvyklých koncových bodů se rozšíření Azure Arc pro SQL Server připojuje ke dvěma dalším koncovým bodům:

  • Koncový bod služby pro zpracování dat (DPS)

    Shromážděné informace o inventáři o instancích SQL Serveru, databázích, skupinách dostupnosti a datech o využití pro účely fakturace se odešlou do tohoto koncového bodu.

  • Koncový bod telemetrie

    Do tohoto koncového bodu se odesílají protokoly agenta Azure Connected Machine, rozšíření Azure pro protokoly SQL Serveru a data zobrazení dynamické správy (DMV).

Komunikace s těmito koncovými body používá protokol HTTPS s protokolem SSL/TLS a portem TCP/443 pro šifrovaná zabezpečená připojení. Agent zahájí komunikaci pro odeslání dat do Azure. Azure nikdy neicializuje komunikaci. Připojení k těmto koncovým bodům je proto pouze jedním ze způsobů.

Pokud je komunikace s těmito koncovými body zablokovaná, služba má následující příznaky:

Aktuální stav rozšíření Azure

Aktuální stav rozšíření Azure pro SQL Server můžete zobrazit na portálu. Stav se aktualizuje každých 15 minut.

Stav v pořádku:

Snímek obrazovky portálu pro rozšíření Azure pro SQL Server ve zdravém stavu.

Stav není v pořádku:

Snímek obrazovky s portálem pro rozšíření Azure pro SQL Server v špatném stavu

Zkontrolujte, jestli máte potíže s připojením ke koncovým bodům DPS nebo telemetrie.

Existují dva způsoby, jak zkontrolovat, jestli máte problémy s připojením ke koncovým bodům DPS nebo telemetrie.

Kontrola stavu rozšíření Azure pro SQL Server na webu Azure Portal

Pokud je obecně připojené k Azure, rozšíření Azure pro SQL Server hlásí stav na webu Azure Portal.

  • Přejděte na zobrazení Machines – Azure Arc v Azure portálu a vyhledejte počítač dle jména a vyberte jej.
  • Vyberte rozšíření.
  • Výběrem WindowsAgent.SqlServer nebo LinuxAgent.SqlServer zobrazte podrobnosti.
  • Podívejte se na stavové zprávy a na hodnotu uploadStatus. Pokud je to něco jiného než OK, je problém s připojením k DPS. Pokud 0, je pravděpodobné, že firewall blokuje komunikaci k koncovému bodu DPS. Ve stavové zprávě nebo v kódu chyby uploadStatus mohou být další podrobnosti, které můžou poskytnout přehled o problému s připojením.

Kontrola protokolů SQL Serveru v rozšíření Azure

Soubor protokolu přípony se nachází na:

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

Název souboru protokolu závisí na verzi rozšíření Azure pro SQL Server. Pro nejnovější verzi rozšíření Azure pro SQL Server je soubor protokolu následující:

unifiedagent.log

Pro verzi rozšíření 1.1.24724.69 a starší je soubor protokolu:

ExtensionLog_0.log

Zkontrolujte položky protokolu, které značí problém s připojením ke koncovým bodům DPS nebo telemetrie.

Zkoumat koncové body webového serveru

Pomocí různých nástrojů můžete testovat koncové body webového serveru pro DPS a telemetrii. Například Invoke-WebRequest nebo curl.

Následující příklad používá Invoke-Webrequest:

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

Možným stavovým kódem odpovědi je:

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

401 se očekává, protože v koncovém bodu telemetrie neexistuje žádná neověřená trasa.

Pro DPS:

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

Pro státní správu USA – Virginie nahraďte arcdataservices.com .arcdataservices.azure.us Tento příklad by byl:

Invoke-WebRequest dataprocessingservice.<region>.arcdataservices.azure.us

Možným stavovým kódem odpovědi je:

StatusCode        : 200

StatusDescription : OK

200 se očekává, protože existuje neověřená trasa.

Testování připojení ve všech oblastech

Připojení ke všem oblastem můžete testovat pomocí skriptu test-connectivity.ps1 PowerShellu.

Poznámka

Pro oblast Virginie v rámci státní správy USA nahraďte arcdataservices.com znakem arcdataservices.azure.us.

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

Zkontrolovat kompatibilitu verzí protokolu TLS

Koncový bod služby pro zpracování dat podporuje následující verze protokolu TLS: TLS 1.2 a 1.3. Verze Windows Server starší než Windows Server 2016 nejsou podporovány.

Pokud se používá nepodporovaná verze protokolu TLS, může se v protokolu zobrazit chyba.

<date time>|ERROR|SqlServerExtension.Service|Request failed with exception 'System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.

---> System.Security.Authentication.AuthenticationException: Authentication failed because the remote party sent a TLS alert: 'HandshakeFailure'.

---> System.ComponentModel.Win32Exception (0x80090326): The message received was unexpected or badly formatted.

Referenční informace ke koncovému bodu

Pokud se chcete připojit k Azure, koncové body používají *.arcdataservices.com.

Další informace

Rozšíření Azure pro SQL Server používá následující koncové body:

  • DPS: dataprocessingservice.<region>.arcdataservices.com nebo pro oblast státní správy USA Virginie *.<region>.arcdataservices.azure.us.
  • Telemetrie telemetry.<region>.arcdataservices.com

Nahraďte <region> krátkým názvem oblasti Azure, ve které se nachází prostředek počítače Arc. Krátký název je odvozený z názvu oblasti Azure bez mezer a všech malých písmen.

Pokud se například prostředek počítače Arc nachází v Východ USA 2, krátký název oblasti je eastus2 a koncový bod telemetrie je:

telemetry.eastus2.arcdataservices.com

Pokud je vaše rozšíření starší než 11. března 2024, může používat starší koncové body. Aktualizujte rozšíření tak, aby používalo aktuální koncový bod.

Poznámka

Hodnoty koncového bodu před *.arcdataservices.com se můžou změnit.

Použití proxy serveru HTTPS pro odchozí připojení

Pokud vaše síť vyžaduje použití proxy serveru HTTPS pro odchozí připojení, můžete si přečíst další informace o konfiguraci nastavení Aktualizovat nebo odebrat nastavení proxy serveru.

Dotazování Azure Resource Graphu na statistiky telemetrického nahrávání

K dotazování stavu nahrávání pro vaše prostředí použijte Azure Resource Graph.

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

Vyhledání rozšíření SQL, která se dlouho nepřipojila k DPS

Dotazem na Azure Resource Graph vyhledejte rozšíření, která se nedávno nepřipojila k 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

Kódy chyb

Následující tabulka uvádí některé běžné hodnoty stavu nahrání DPS a co můžete udělat při dalším řešení potíží.

Hodnota stavu uploadování DPS Kód chyby HTTP Návrhy řešení potíží
0 Pravděpodobná příčina: brána firewall blokuje přenos dat do DPS. Otevřete firewall pro koncový bod DNS pro DPS (TCP, port: 443).
OK 200 Připojení funguje podle očekávání.
Bad request 400 Možná příčina: Název prostředku (instance SQL Serveru nebo název databáze) neodpovídá zásadám vytváření názvů prostředků Azure. Pokud je například název databáze rezervované slovo.
Unauthorized 401 Pravděpodobná příčina: Rozšíření je nakonfigurované tak, aby odesílala data přes proxy server HTTP, který vyžaduje ověření. Použití proxy serveru HTTP, který vyžaduje ověřování, se v současné době nepodporuje. Použijte neověřený proxy server HTTP nebo žádný proxy server.
Forbidden 403 Zkontrolujte, zda je poskytovatel prostředků Microsoft.AzureArcData zaregistrovaný v předplatném. Pokud agent Azure Connected Machine jinak funguje podle očekávání a tato chyba se po restartování nevyřeší, vytvořte případ podpory s podporou Microsoftu prostřednictvím webu Azure Portal.
NotFound 404 Koncový bod, ke kterému se rozšíření pokouší připojit, neexistuje.

Pokud chcete zkontrolovat, ke kterému koncovému bodu se pokouší připojit, prohledejte logy pro dataprocessingservice. K této podmínce může dojít v případě, že byl agent Azure Connected Machine nasazen a připojen k oblasti Azure, ve které ještě není dostupný poskytovatel prostředků Microsoft.AzureArcData. Znovu nasadit agenta Azure Connected Machine v oblasti, kde je poskytovatel prostředků pro SQL Server, povolený službou Azure Arc, k dispozici. Viz také dostupnost v regionu.
Je možné, že se mezipaměť překladače DNS pro váš počítač neaktualizuje. Obnovit:
- Ve Windows spusťte: ipconfig /flushdns
– V Linuxu (pokud systemd se používá) spusťte: sudo resolvectl flush-caches
Conflict 409 Pravděpodobná příčina: dočasná chyba v rámci DPS. Pokud se to nevyřeší, vytvořte případ podpory s podporou Microsoftu prostřednictvím webu Azure Portal.
InternalServerError 500 Jedná se o chybu, ke které dochází v rámci DPS. Vytvořte případ podpory s podporou Microsoftu prostřednictvím webu Azure Portal.