Aracılığıyla paylaş


Veri işleme hizmeti ve telemetri uç noktalarına bağlantı sorunlarını giderme

Şunlar için geçerlidir: SQL Server

Sql Server için Azure Arc uzantısı, her zamanki uç noktalara ek olarak iki uç noktaya daha bağlanır:

  • Veri işleme hizmeti (DPS) uç noktası

    Faturalama amacıyla SQL Server örnekleri, veritabanları, kullanılabilirlik grupları ve kullanım verileri hakkında toplanan envanter bilgileri bu uç noktaya gönderilir.

  • Telemetri uç noktası

    Azure Connected Machine aracı günlükleri, SQL Server günlükleri için Azure uzantısı ve Dinamik Yönetim Görünümleri (DMV) verileri bu uç noktaya gönderilir.

Bu uç noktalarla iletişim, şifrelenmiş güvenli bağlantılar için SSL/TLS ile HTTPS ve TCP/443 bağlantı noktası kullanır. Aracı, verileri Azure'a göndermekiçin iletişim başlatır. Azure hiçbir zaman iletişim başlatmaz. Bu nedenle bu uç noktalara bağlantı tek yönlüdür.

Bu uç noktalarla iletişim engellendiğinde, hizmet aşağıdaki belirtilere sahiptir:

Azure uzantısının mevcut durumu

SQL Server için Azure uzantısının geçerli durumunu portalda görüntüleyebilirsiniz. Durum her 15 dakikada bir yenilenir.

İyi durumda:

SQL Server için azure uzantısının iyi durumdaki portal ekran görüntüsü.

İyi durumda değil durumu:

Azure uzantısı için SQL Server'ın sağlıksız durumdaki portal ekran görüntüsü.

DPS veya telemetri uç noktalarına bağlanırken sorun olup olmadığınızı denetleyin

DPS veya telemetri uç noktalarıyla bağlantı sorunlarınız olup olmadığını denetlemenin iki yolu vardır.

Azure portalında SQL Server için Azure Uzantısı durumunu denetleme

Genel olarak Azure'a bağlıysa, SQL Server için Azure Uzantısı azure portalda durumunu bildirir.

  • Azure portalında Makineler - Azure Arc görünümüne gidin ve makineyi ada göre bulun ve seçin.
  • Uzantılar'ı seçin.
  • Ayrıntıları getirmek için WindowsAgent.SqlServer veya LinuxAgent.SqlServer'ı seçin.
  • Durum iletisine ve uploadStatus değerine bakın. Tamam dışında bir sorun varsa DPS'ye bağlanmayla ilgili bir sorun vardır. bu 0ise, DPS uç noktasıyla iletişimi engelleyen bir güvenlik duvarı olması muhtemeldir. Durum iletisinde veya uploadStatus hata kodunda bağlantı sorunuyla ilgili içgörüler sağlayabilecek daha fazla ayrıntı bulunabilir.

SQL Server günlükleri için Azure Uzantısı'nı denetleyin

Uzantı günlük dosyası şu adrestedir:

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

Günlük dosyası adı, SQL Server için Azure Uzantısı sürümüne bağlıdır. SQL Server için Azure Uzantısı'nın en son sürümü için günlük dosyası şöyledir:

unifiedagent.log

Uzantı sürümü 1.1.24724.69 ve önceki sürümler için günlük dosyası şu şekildedir:

ExtensionLog_0.log

DPS veya telemetri uç noktalarına bağlanırken sorun olduğunu gösteren günlük girdilerini denetleyin.

Web sunucusu uç noktalarını incele

DPS ve telemetri için web sunucusu uç noktalarını araştırmak için çeşitli araçlar kullanabilirsiniz. Örneğin, Invoke-WebRequest veya curl.

Aşağıdaki örnekte Invoke-Webrequestkullanılır:

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

Olası bir yanıt durum kodu:

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

Telemetri uç noktasındakimliği doğrulanmamış yol olmadığından 401 olması beklenir.

DPS için:

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

US Government Virginia için arcdataservices.com'yi arcdataservices.azure.us ile değiştirin. Bu örnek şöyle olabilir:

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

Olası bir yanıt durum kodu:

StatusCode        : 200

StatusDescription : OK

Kimliği doğrulanmamış bir yol olduğundan 200 beklenir.

Tüm bölgelere bağlantı kontrolü

test-connectivity.ps1 PowerShell betiğiyle tüm bölgelere bağlantıyı yoklayabilirsiniz.

Uyarı

US Government Virginia bölgesi için arcdataservices.com'yi arcdataservices.azure.us ile değiştirin.

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

TLS sürüm uyumluluğunu denetleme

Veri işleme hizmet uç noktası şu TLS sürümlerini destekler: TLS 1.2 ve 1.3. Windows Server 2012 ve daha eski sürümler desteklenmez.

Telemetri uç noktaları için Windows Server 2012 R2 ve üzeri desteklenmez.

Desteklenmeyen bir TLS sürümü kullanılıyorsa günlükte bir hata görebilirsiniz

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

Uç nokta referansı

Azure'a bağlanmak için uç noktalar *.arcdataservices.comkullanır.

Ek arka plan

SQL Server için Azure Uzantısı aşağıdaki uç noktaları kullanır:

  • DPS: dataprocessingservice.<region>.arcdataservices.com, veya ABD Hükümeti Virginia bölgesi için, *.<region>.arcdataservices.azure.us.
  • Telemetri telemetry.<region>.arcdataservices.com

<region> değerini Arc makine kaynağının bulunduğu Azure bölgesinin kısa adıyla değiştirin. Kısa ad, Azure bölgesi adından boşluk ve küçük harf olmadan türetilir.

Örneğin Arc makine kaynağınız Doğu ABD 2'de yer alıyorsa bölgenin kısa adı şudur eastus2 ve telemetri uç noktası:

telemetry.eastus2.arcdataservices.com

Uzantınız 11 Mart 2024'ten eskiyse eski uç noktaları kullanabilir. Geçerli uç noktayı kullanmak için uzantınızı güncelleştirin.

Uyarı

*.arcdataservices.com'dan önceki uç nokta değerleri değişikliğe tabi olabilir.

Giden bağlantı için HTTPS proxy sunucusu kullanma

Ağınız giden bağlantı için bir HTTPS proxy sunucusu kullanmayı gerektiriyorsa, bunu yapılandırma hakkında daha fazla bilgiyi Ara sunucu ayarlarını güncelleştirin veya kaldırın bölümünden okuyabilirsiniz.

Telemetri yükleme istatistikleri için Azure Resource Graph'i sorgulama

Ortamınızın yükleme durumunu sorgulamak için Azure Kaynak Grafiği'ni kullanın.

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

UZUN zamandır DPS'ye bağlanmamış SQL uzantılarını bulma

Yakın zamanda DPS'ye bağlanmamış uzantıları bulmak için Azure Kaynak Grafı'nı sorgula.

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

Hata kodları

Aşağıdaki tabloda bazı yaygın DPS yükleme durumu değerleri ve daha fazla sorun gidermek için yapabileceğiniz adımlar gösterilmektedir.

DPS karşıya yükleme durumu değeri HTTP hata kodu Sorun giderme önerileri
0 Olası neden: Güvenlik duvarı verilerin DPS'ye iletilmesini engelliyor. Güvenlik duvarını DPS için DNS uç noktasına açın (TCP, bağlantı noktası: 443).
OK 200 Bağlantı beklendiği gibi çalışıyor.
Bad request 400 Olası neden: Kaynak adı (SQL Server örneği veya veritabanı adı) Azure kaynak adlandırma kurallarına uymuyor. Örneğin, veritabanı adı ayrılmış kelime ise.
Unauthorized 401 Olası neden: Uzantı, kimlik doğrulaması gerektiren bir HTTP ara sunucusu aracılığıyla veri gönderecek şekilde yapılandırılmıştır. Kimlik doğrulaması gerektiren bir HTTP ara sunucusu kullanmak şu anda desteklenmemektedir. Kimliği doğrulanmamış bir HTTP proxy'si kullanın veya ara sunucu kullanmayın.
Forbidden 403 Kaynak sağlayıcısının abonelikte Microsoft.AzureArcData kayıtlı olduğundan emin olun. Azure Connected Machine aracısı aksi takdirde beklendiği gibi çalışıyorsa ve yeniden başlatma sonrasında bu hata kendi kendine çözülmezse, Azure portalı aracılığıyla Microsoft Desteği ile bir destek olayı oluşturun.
NotFound 404 Uzantının bağlanmaya çalıştığı uç nokta yok.

Hangi uç noktayla bağlantı kurulmaya çalışıldığını kontrol etmek için günlüklerde dataprocessingservice araması yapın. Azure Bağlı Makine aracısı dağıtıldıysa ve kaynak sağlayıcısının henüz kullanılabilir olmadığı bir Azure bölgesine Microsoft.AzureArcData bağlandıysa bu durum oluşabilir. yeniden dağıtın. Ayrıca bkz Bölge kullanılabilirliği.
DNS çözümleyici önbelleği makineniz için yenilenmemiş olabilir. Yenilemek için:
- Windows'ta çalıştır: ipconfig /flushdns
- Linux üzerinde (kullanılıyorsa systemd ) komutunu çalıştırın: sudo resolvectl flush-caches
Conflict 409 Olası neden: DPS'nin içinde geçici hata oluşuyor. Bu işlem kendi kendine çözülmezse Azure portalı aracılığıyla Microsoft Desteği ile bir destek olayı oluşturun.
InternalServerError beş yüz Bu, DPS'nin içinde gerçekleşen bir hatadır. Azure portalı aracılığıyla Microsoft Desteği ile bir destek olayı oluşturun.