Pemantauan, metrik, dan akses Log real-time untuk Azure CDN

Dengan Azure CDN dari Microsoft, Anda bisa memantau sumber daya untuk membantu Anda melacak, men-debug, dan memecahkan masalah dengan cara berikut.

  • Log mentah memberikan informasi lengkap tentang setiap permintaan yang diterima CDN. Log diagnostik berbeda dengan log aktivitas. Log aktivitas memberikan wawasan tentang operasi yang dilakukan pada sumber daya Azure.
  • Metrik, yang menampilkan empat metrik utama di CDN, termasuk Rasio Byte Hit, Jumlah Permintaan, Ukuran Respons, dan Latensi Total. Ini juga menyediakan dimensi yang berbeda untuk membongkar metrik.
  • Pemberitahuan, yang memungkinkan pelanggan menyiapkan pemberitahuan untuk metrik utama
  • Lebih banyak metrik, yang memungkinkan pelanggan menggunakan Azure Log Analytics untuk mengaktifkan lebih banyak metrik nilai. Kami juga menyediakan kueri sampel untuk beberapa metrik lain dalam Azure Log Analytics.

Penting

Fitur log mentah HTTP tersedia untuk Azure CDN dari Microsoft.

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Masuk ke Azure

Masuk ke portal Azure.

Konfigurasi - portal Azure

Untuk mengonfigurasi log Mentah untuk Azure CDN Anda dari profil Microsoft:

  1. Dari menu portal Azure, pilih Semua Sumber Daya>><profil-CDN-Anda>.

  2. Di bawah Pemantauan, pilih Pengaturan diagnostik.

  3. Pilih + Tambah pengaturan diagnostik.

    Tambahkan pengaturan diagnostik untuk profil CDN.

    Penting

    Log mentah hanya tersedia di tingkat profil sementara log kode status HTTP agregat tersedia di tingkat titik akhir.

  4. Pada Pengaturan diagnostik, masukkan nama untuk pengaturan diagnostik di bagian Nama pengaturan diagnostik.

  5. Pilih AzureCdnAccessLog dan atur retensi dalam beberapa hari.

  6. Pilih Detail tujuan. Opsi tujuan adalah:

    • Mengirim ke Log Analytics
      • Pilih Langganan dan Ruang kerja Analitik Log.
    • Mengarsipkan ke akun penyimpanan
      • Pilih Langganan dan Akun Penyimpanan.
    • Melakukan streaming ke hub acara
      • Pilih Langganan, Namespace hub peristiwa, Nama hub peristiwa (opsional), dan Nama kebijakan hub peristiwa.

    Mengonfigurasi tujuan untuk pengaturan log

  7. Pilih Simpan.

Konfigurasi - Azure PowerShell

Gunakan Set-AzDiagnosticSetting untuk mengonfigurasi pengaturan diagnostik log mentah.

Data retensi ditentukan oleh opsi -RetentionInDays dalam perintah.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Mengaktifkan log diagnostik di akun penyimpanan

  1. Masuk ke Azure PowerShell:

    Connect-AzAccount 
    
  2. Untuk mengaktifkan Log Diagnostik di akun penyimpanan, masukkan perintah ini. Ganti variabel dengan nilai Anda:

    ## Variables for the commands ##
    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $storageacct = <your-storage-account-name>
    $diagname = <your-diagnostic-setting-name>
    $days = '30'
    
    $cdn = Get-AzCdnProfile -ResourceGroupName $rsg -ProfileName $cdnprofile
    
    $storage = Get-AzStorageAccount -ResourceGroupName $rsg -Name $storageacct
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -StorageAccountId $storage.id -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
    

Mengaktifkan log diagnostik untuk ruang kerja Log Analytics

  1. Masuk ke Azure PowerShell:

    Connect-AzAccount 
    
  2. Untuk mengaktifkan Log Diagnostik untuk ruang kerja Analitik Log, masukkan perintah ini. Ganti variabel dengan nilai Anda:

    ## Variables for the commands ##
    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $workspacename = <your-log-analytics-workspace-name>
    $diagname = <your-diagnostic-setting-name>
    $days = '30'
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    $workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $rsg -Name $workspacename
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -WorkspaceId $workspace.ResourceId -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
    

Mengaktifkan log diagnostik untuk namespace layanan hub peristiwa

  1. Masuk ke Azure PowerShell:

    Connect-AzAccount 
    
  2. Untuk mengaktifkan Log Diagnostik untuk namespace hub peristiwa, masukkan perintah ini. Ganti variabel dengan nilai Anda:

    ## Variables for the commands ##
    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $evthubnamespace = <your-event-hub-namespace-name>
    $diagname = <your-diagnostic-setting-name>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    $eventhub = Get-AzEventHubNamespace -ResourceGroupName $rsg -Name $eventhubname
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -EventHubName $eventhub.id -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
    

Properti log mentah

Azure CDN dari Microsoft Service saat ini menyediakan log Mentah. Log mentah menyediakan permintaan API individu dengan setiap entri memiliki skema berikut:

Properti Deskripsi
BackendHostname Jika permintaan diteruskan ke backend, bidang ini akan mewakili nama host backend. Bidang ini kosong jika permintaan dialihkan atau diteruskan ke cache regional (saat penembolokan diaktifkan untuk aturan perutean).
CacheStatus Untuk skenario penembolokan, bidang ini menentukan miss/hit singgahan di POP
ClientIp Alamat IP klien yang membuat permintaan. Jika ada header X-Forwarded-For dalam permintaan, maka IP Klien dipilih dari yang sama.
ClientPort Alamat IP klien yang membuat permintaan.
HttpMethod Metode HTTP yang digunakan oleh permintaan.
HttpStatusCode Kode status HTTP yang dikembalikan dari proxy. Jika permintaan ke batas waktu asal, nilai untuk HttpStatusCode diatur ke 0.
HttpStatusDetails Status yang dihasilkan atas permintaan. Arti dari nilai string ini dapat ditemukan di tabel referensi Status.
HttpVersion Jenis permintaan atau koneksi.
POP Nama pendek tepi tempat permintaan mendarat.
RequestBytes Ukuran pesan permintaan HTTP dalam byte, termasuk header permintaan dan isi permintaan.
RequestUri URI permintaan yang diterima.
Pusat Respons Byte dikirim oleh server backend sebagai respons.
RoutingRuleName Nama aturan perutean yang cocok dengan permintaan.
RulesEngineMatchNames Nama aturan yang cocok dengan permintaan.
SecurityProtocol Versi protokol TLS/SSL yang digunakan oleh permintaan atau null jika tidak ada enkripsi.
SentToOriginShield
(tidak digunakan lagi) * Lihat catatan tentang penghentian di bagian berikut.
Jika true, artinya permintaan itu dijawab dari cache perisai asal, bukan pop tepi. Perisai asal adalah cache induk yang digunakan untuk meningkatkan rasio hit cache.
isReceivedFromClient Jika True, itu artinya permintaan berasal dari klien. Jika False, permintaan adalah ketinggalan di tepi (POP anak) dan ditanggapi dari perisai asal (POP induk).
TimeTaken Lamanya waktu dari byte pertama permintaan ke Azure Front Door hingga byte terakhir respons keluar, dalam hitungan detik.
TrackingReference String referensi unik yang mengidentifikasi permintaan yang dilayani oleh Azure Front Door, juga dikirim sebagai header X-Azure-Ref ke klien. Diperlukan untuk mencari detail dalam log akses untuk permintaan tertentu.
UserAgent Jenis browser yang digunakan klien.
ErrorInfo Bidang ini berisi jenis kesalahan tertentu untuk mempersempit area pemecahan masalah.
Kemungkinan nilai meliputi:
NoError: Menunjukkan tidak ada kesalahan yang ditemukan.
CertificateError: Galat sertifikat SSL umum.
CertificateNameCheckFailed: Nama host dalam sertifikat SSL tidak valid atau tidak cocok.
ClientDisconnected: Permintaan gagal karena koneksi jaringan klien.
UnspecifiedClientError: Galat klien umum.
InvalidRequest: Permintaan tidak valid. Ini mungkin terjadi karena header, isi, dan URL yang salah bentuk.
DNSFailure: Kegagalan DNS.
DNSNameNotResolved: Nama atau alamat server tidak dapat diselesaikan.
OriginConnectionAborted: Sambungan dengan asal dihentikan secara tiba-tiba.
OriginConnectionError: Kesalahan koneksi asal generik.
OriginConnectionRefused: Sambungan dengan asal tidak dapat dibuat.
OriginError: Kesalahan asal umum.
OriginInvalidResponse: Asal menampilkan respons yang tidak valid atau tidak dikenali.
OriginTimeout: Periode batas waktu untuk permintaan asal kedaluwarsa.
ResponseHeaderTooBig: Asal menampilkan header respons yang terlalu besar.
RestrictedIP: Permintaan diblokir karena IP terbatas.
SSLHandshakeError: Tidak dapat membuat sambungan dengan asal karena kegagalan jabat tangan SSL.
UnspecifiedError: Terjadi kesalahan yang tidak sesuai dalam salah satu kesalahan dalam tabel.
TimeToFirstByte Lamanya waktu dalam milidetik sejak Microsoft CDN menerima permintaan hingga saat byte pertama dikirim ke klien. Waktu hanya diukur dari sisi Microsoft. Data sisi klien tidak diukur.
Hasil SSLMismatchedSNI adalah kode status yang menandakan permintaan yang berhasil dengan peringatan yang tidak cocok antara Indikasi Nama Server (SNI) dan header host. Kode status ini menyiratkan fronting domain, teknik yang melanggar ketentuan layanan Azure Front Door. Permintaan dengan SSLMismatchedSNI akan ditolak setelah 22 Januari 2024.
SNI Bidang ini menentukan Indikasi Nama Server (SNI) yang dikirim selama jabat tangan TLS/SSL. Ini dapat digunakan untuk mengidentifikasi nilai SNI yang tepat jika ada SSLMismatchedSNI kode status. Selain itu, dapat dibandingkan dengan nilai host di requestUri bidang untuk mendeteksi dan mengatasi masalah ketidakcocokan.

Catatan

Log dapat dilihat dalam profil Analitik Log Anda dengan menjalankan kueri. Contoh kueri akan terlihat seperti: AzureDiagnostics | where Category == "AzureCdnAccessLog"

Dikirim ke penghentian perisai asal

Properti log mentah isSentToOriginShield tidak digunakan lagi dan digantikan oleh bidang baru isReceivedFromClient. Gunakan bidang baru jika Anda sudah menggunakan bidang yang tidak digunakan lagi.

Log mentah termasuk log yang dihasilkan dari tepi CDN (POP anak) dan perisai asal. Perisai asal mengacu pada node induk yang berlokasi strategis di seluruh dunia. Node ini berkomunikasi dengan server asal dan mengurangi beban lalu lintas pada asal.

Untuk setiap permintaan yang masuk ke perisai asal, ada dua entri log:

  • Satu untuk node tepi
  • Satu untuk perisai asal.

Untuk membedakan egress atau respons dari node tepi vs perisai asal, Anda dapat menggunakan bidang isReceivedFromClient untuk mendapatkan data yang benar.

Jika nilainya false, maka itu berarti permintaan direspons dari perisai asal ke node tepi. Pendekatan ini efektif untuk membandingkan log mentah dengan data penagihan. Biaya tidak dikenakan untuk egress dari perisai asal ke node tepi. Biaya dikeluarkan untuk egress dari node tepi ke klien.

Sampel kueri Kusto untuk mengecualikan log yang dihasilkan pada perisai asal di Analitik Log.

AzureDiagnostics
| where OperationName == "Microsoft.Cdn/Profiles/AccessLog/Write" and Category == "AzureCdnAccessLog"
| where isReceivedFromClient == true

Penting

Fitur log Mentah HTTP tersedia secara otomatis untuk profil yang dibuat atau diperbarui setelah 25 Februari 2020. Untuk profil CDN yang dibuat sebelumnya, pengguna harus memperbarui titik akhir CDN setelah menyiapkan pembuatan log. Misalnya, pengguna dapat membuka pemfilteran geografis di bagian titik akhir CDN dan memblokir negara/wilayah mana pun yang tidak relevan dengan beban kerja mereka lalu menyimpan.

Metrik

Azure CDN dari Microsoft terintegrasi dengan Azure Monitor dan menerbitkan empat metrik CDN untuk membantu melacak, men-debug, dan memecahkan masalah.

Metrik ditampilkan dalam bagan dan dapat diakses melalui PowerShell, CLI, dan API. Metrik CDN tidak dikenakan biaya.

Azure CDN dari Microsoft mengukur dan mengirimkan metriknya dalam interval 60 detik. Metrik dapat memakan waktu hingga 3 menit untuk muncul di portal.

Untuk informasi lebih lengkap, lihat Metrik Azure Monitor .

Metrik yang didukung oleh Azure CDN dari Microsoft

Metrik Deskripsi Dimensi
Rasio Byte Hit* Persentase egress dari cache CDN, dihitung pada total egress. Titik akhir
RequestCount Jumlah permintaan klien yang dilayani oleh Microsoft Azure Content Delivery Network. Titik akhir
Negara klien.
Wilayah klien.
status HTTP.
grup status HTTP.
ResponseSize Jumlah byte yang dikirim sebagai tanggapan dari CDN kepada klien. Titik akhir
Negara klien.
Wilayah klien.
status HTTP.
grup status HTTP.
TotalLatency Total waktu dari permintaan klien yang diterima oleh CDN sampai byte respons terakhir dikirim dari CDN ke klien. Titik akhir
Negara klien.
Wilayah klien.
status HTTP.
grup status HTTP.

Catatan

Jika permintaan ke batas waktu asal, nilai untuk HttpStatusCode diatur ke 0.

*Byte Hit Ratio = (egress from edge - egress from origin)/egress from edge

Skenario yang dikecualikan dalam perhitungan rasio byte hit:

  • Anda secara eksplisit mengonfigurasi tidak ada cache baik melalui Mesin Aturan atau perilaku penembolokan String Kueri.
  • Anda secara eksplisit mengonfigurasi direktif kontrol cache dengan cache no-store atau privat.

Konfigurasi metrik

  1. Dari menu portal Azure, pilih Semua Sumber Daya>><profil-CDN-Anda>.

  2. Di bawah Pemantauan, pilih Metrik:

    Metrik untuk profil CDN.

  3. Pilih Tambahkan metrik, pilih metrik yang akan ditambahkan:

    Tambahkan dan pilih metrik untuk profil CDN.

  4. Pilih Tambahkan filter untuk menambahkan filter:

    Terapkan filter ke metrik.

  5. Pilih Terapkan pemisahan untuk melihat tren menurut dimensi yang berbeda:

    Terapkan pemisahan pada metrik.

  6. Pilih Bagan baru untuk menambahkan bagan baru:

    Tambahkan bagan baru ke tampilan metrik.

Peringatan

Anda dapat mengatur pemberitahuan di Microsoft CDN dengan memilih Pemantauan>>Pemberitahuan.

Pilih Aturan pemberitahuan baru untuk metrik yang tercantum di bagian Metrik:

Konfigurasi pemberitahuan untuk titik akhir CDN.

Pemberitahuan dikenakan biaya berdasarkan Azure Monitor. Untuk informasi selengkapnya tentang pemberitahuan, lihat Pemberitahuan Azure Monitor.

Metrik Lainnya

Anda dapat mengaktifkan lebih banyak metrik menggunakan Azure Log Analytics dan log mentah dengan biaya tambahan.

  1. Ikuti langkah-langkah di bagian sebelumnya untuk mengaktifkan diagnostik untuk mengirim log mentah ke Analitik Log.

  2. Pilih ruang kerja Analitik Log yang Anda buat:

    Cuplikan layar menu pilih ruang kerja Analitik Log.

  3. Pilih Log di bawah Umum di ruang kerja Analitik Log. lalu pilih Memulai:

    Cuplikan layar ruang kerja sumber daya Analitik Log.

  4. Pilih Profil CDN. Pilih contoh kueri untuk yang akan DIJALANKAN atau tutup layar contoh untuk memasukkan kueri kustom:

    Cuplikan layar contoh layar kueri.

    Cuplikan layar eksekusi kueri.

  5. Untuk menampilkan data menurut bagan, pilih Bagan. Pilih Sematkan ke dasbor untuk menyematkan bagan ke dasbor Azure:

    Cuplikan layar sematkan bagan ke dasbor.

Langkah berikutnya

Dalam artikel ini, Anda sudah mengaktifkan log mentah HTTP untuk layanan Microsoft CDN.

Untuk informasi selengkapnya tentang Azure CDN dan layanan Azure lainnya yang disebutkan dalam artikel ini, lihat: