Bagikan melalui


Memecahkan masalah konektivitas ke layanan pemrosesan data dan titik akhir telemetri

Berlaku untuk:SQL Server

Selain titik akhir yang biasa, ekstensi Azure Arc untuk SQL Server terhubung ke dua titik akhir lainnya:

  • Titik akhir layanan pemrosesan data (DPS)

    Informasi inventori yang dikumpulkan tentang instans SQL Server, database, grup ketersediaan, dan data penggunaan untuk tujuan penagihan dikirim ke titik akhir ini.

  • Titik akhir telemetri

    Log agen Azure Connected Machine, log ekstensi Azure untuk SQL Server, dan data Tampilan Manajemen Dinamis (DMV) dikirim ke titik akhir ini.

Komunikasi ke titik akhir ini menggunakan HTTPS dengan SSL/TLS dan port TCP/443 untuk koneksi aman terenkripsi. Agen memulai komunikasi untuk mengirim data ke Azure. Azure tidak pernah memulai komunikasi. Oleh karena itu, konektivitas ke titik akhir ini hanya satu cara.

Ketika komunikasi ke titik akhir ini diblokir, layanan memiliki gejala berikut:

  • Anda tidak melihat instans SQL Server di portal Azure. Titik akhir DPS diblokir.
  • Anda tidak melihat data dalam tampilan dasbor performa instans SQL Server. Jika titik akhir DPS tidak diblokir tetapi titik akhir telemetri diblokir.
  • Anda melihat kesalahan dalam ekstensi Azure untuk status SQL Server di portal Azure. Tinjau Periksa status Ekstensi Azure untuk SQL Server di portal Azure.
  • Anda melihat kesalahan di ekstensi Azure untuk log SQL Server. Tinjau Ekstensi Azure untuk log SQL Server.

Status ekstensi Azure saat ini

Anda dapat melihat status ekstensi Azure saat ini untuk SQL Server di portal. Status di-refresh setiap 15 menit.

Status sehat:

Tangkapan layar portal untuk ekstensi Azure untuk SQL Server dalam kondisi baik.

Status tidak sehat:

Cuplikan layar portal untuk ekstensi Azure untuk SQL Server dalam status tidak sehat.

Periksa apakah Anda mengalami masalah saat menyambungkan ke titik akhir DPS atau telemetri

Ada dua cara untuk memeriksa apakah Anda memiliki masalah konektivitas ke titik akhir DPS atau telemetri.

Periksa status Ekstensi Azure untuk SQL Server di portal Azure

Jika tersambung ke Azure secara umum, Ekstensi Azure untuk SQL Server melaporkan statusnya di portal Azure.

  • Navigasikan ke tampilan Machines - Azure Arc di portal Azure dan temukan komputer berdasarkan nama dan pilih.
  • Pilih Ekstensi.
  • Pilih WindowsAgent.SqlServer atau LinuxAgent.SqlServer untuk memunculkan detailnya.
  • Lihat pesan status dan nilai . Jika itu sesuatu selain OK, ada masalah dengan menyambungkan ke DPS. Jika itu 0, kemungkinan ada firewall yang memblokir komunikasi ke titik akhir DPS. Mungkin ada detail lebih lanjut dalam pesan status atau uploadStatus kode kesalahan yang dapat memberikan wawasan tentang masalah konektivitas.

Periksa Ekstensi Azure untuk log SQL Server

File log ekstensi berada di:

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

Nama file log bergantung pada versi Ekstensi Azure untuk SQL Server. Untuk versi terbaru Ekstensi Azure untuk SQL Server, file lognya adalah:

unifiedagent.log

Untuk ekstensi versi 1.1.24724.69 tersebut dan versi sebelumnya, file log adalah:

ExtensionLog_0.log

Periksa entri log yang menunjukkan masalah saat menyambungkan ke DPS atau titik akhir telemetri.

Uji titik akhir server web

Anda dapat menggunakan berbagai alat untuk memeriksa titik akhir server web untuk DPS dan telemetri. Misalnya, Invoke-WebRequest atau curl.

Contoh berikut menggunakan Invoke-Webrequest:

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

Kemungkinan kode status respons adalah:

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

401 diharapkan karena tidak tersedia rute yang tidak terotentikasi pada titik akhir telemetri.

Untuk DPS:

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

Untuk Virginia Pemerintah AS, ganti arcdataservices.com dengan arcdataservices.azure.us. Contoh ini adalah:

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

Kemungkinan kode status respons adalah:

StatusCode        : 200

StatusDescription : OK

200 diperkirakan karena ada rute yang tidak terautentikasi.

Periksa konektivitas ke semua wilayah

Anda dapat memeriksa konektivitas ke semua wilayah dengan skrip PowerShell test-connectivity.ps1 .

Nota

Untuk wilayah Virginia Pemerintah AS, ganti arcdataservices.com dengan 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)

Periksa kompatibilitas versi TLS

Titik akhir layanan pemrosesan data mendukung versi TLS berikut: TLS 1.2 dan 1.3. Windows Server 2012 dan versi yang lebih lama tidak didukung.

Untuk titik akhir telemetri, Windows Server 2012 R2 dan yang lebih lama tidak didukung.

Jika versi TLS yang tidak didukung sedang digunakan, Anda mungkin melihat kesalahan di log

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

Referensi titik akhir

Untuk menyambungkan titik akhir ke Azure, gunakan *.arcdataservices.com.

Latar belakang tambahan

Ekstensi Azure untuk SQL Server menggunakan titik akhir berikut:

  • DPS: dataprocessingservice.<region>.arcdataservices.com, atau untuk wilayah Pemerintah AS di Virginia, *.<region>.arcdataservices.azure.us.
  • Telemetri telemetry.<region>.arcdataservices.com

Ganti <region> dengan nama pendek wilayah Azure tempat sumber daya komputer Arc berada. Nama pendek berasal dari nama wilayah Azure tanpa spasi dan menggunakan huruf kecil semua.

Misalnya, jika sumber daya komputer Arc Anda terletak di US Timur 2 , nama pendek wilayah tersebut adalah eastus2 dan titik akhir telemetri adalah:

telemetry.eastus2.arcdataservices.com

Jika ekstensi Anda lebih lama dari 11 Maret 2024, ekstensi tersebut mungkin menggunakan titik akhir yang lebih lama. Perbarui ekstensi Anda untuk menggunakan titik akhir saat ini.

Nota

Nilai titik akhir sebelum *.arcdataservices.com dapat berubah.

Menggunakan server proksi HTTPS untuk konektivitas keluar

Jika jaringan Anda memerlukan penggunaan server proksi HTTPS untuk konektivitas keluar, Anda dapat membaca selengkapnya tentang mengonfigurasinya di Memperbarui atau menghapus pengaturan proksi.

Mengkueri Azure Resource Graph untuk statistik unggahan telemetri

Gunakan Azure Resource Graph untuk mengkueri status unggahan untuk lingkungan Anda.

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

Menemukan ekstensi SQL yang belum tersambung ke DPS dalam waktu yang lama

Kueri Azure Resource Graph untuk menemukan ekstensi yang belum tersambung ke DPS baru-baru ini.

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

Kode kesalahan

Tabel berikut ini memperlihatkan beberapa nilai status unggahan DPS umum dan apa yang bisa Anda lakukan untuk memecahkan masalah lebih lanjut.

Nilai status unggahan DPS Kode galat HTTP Saran pemecahan masalah
0 Kemungkinan penyebabnya: firewall memblokir transmisi data ke DPS. Buka firewall ke titik akhir DNS untuk DPS (TCP, port: 443).
OK 200 Koneksi berfungsi seperti yang diharapkan.
Bad request 400 Kemungkinan penyebab: Nama sumber daya (instans SQL Server atau nama database) tidak sesuai dengan konvensi penamaan sumber daya Azure. Misalnya, jika nama database adalah kata yang dicadangkan.
Unauthorized 401 Kemungkinan penyebabnya: ekstensi dikonfigurasi untuk mengirim data melalui proksi HTTP yang memerlukan autentikasi. Menggunakan proksi HTTP yang memerlukan autentikasi saat ini tidak didukung. Gunakan proksi HTTP yang tidak terotentikasi atau tidak menggunakan proksi.
Forbidden 403 Periksa untuk memastikan Microsoft.AzureArcData penyedia sumber daya terdaftar pada langganan. Jika agen Azure Connected Machine berfungsi seperti yang diharapkan dan kesalahan ini tidak teratasi setelah boot ulang, buat laporan dukungan kepada Dukungan Microsoft melalui portal Azure.
NotFound 404 Titik akhir yang coba disambungkan ekstensi tidak ada.

Untuk memeriksa titik akhir mana yang coba disambungkan, cari log untuk dataprocessingservice. Kondisi ini bisa terjadi jika agen Azure Connected Machine dipasang dan tersambung ke wilayah Azure di mana Microsoft.AzureArcData penyedia sumber daya belum tersedia. Terapkan kembali agen Azure Connected Machine di wilayah tempat penyedia sumber daya untuk SQL Server yang diaktifkan oleh Azure Arc tersedia. Lihat juga Ketersediaan wilayah.
Ada kemungkinan bahwa cache pemecah masalah DNS tidak disegarkan untuk komputer Anda. Untuk memperbarui:
- Pada Windows jalankan: ipconfig /flushdns
- Pada Linux (jika systemd sedang digunakan) jalankan: sudo resolvectl flush-caches
Conflict 409 Kemungkinan penyebab: kesalahan sementara yang terjadi di dalam DPS. Jika ini tidak mengatasinya sendiri, buat kasus dukungan dengan Dukungan Microsoft melalui portal Microsoft Azure.
InternalServerError 500 Ini adalah kesalahan yang terjadi di dalam DPS. Buat kasus dukungan dengan Dukungan Microsoft melalui portal Azure.