Pengumpulan log skala tinggi di Container Insights

Mode skala tinggi adalah fitur dalam Container Insights yang memungkinkan Anda mengumpulkan log konsol kontainer (stdout & stderr) dengan throughput tinggi dari node kluster Azure Kubernetes Service (AKS) Anda. Fitur ini memungkinkan Anda mengumpulkan hingga 50.000 log/detik per simpul.

Overview

Saat mode skala tinggi diaktifkan, Container Insights melakukan beberapa perubahan konfigurasi yang menghasilkan throughput keseluruhan yang lebih tinggi. Ini termasuk menggunakan agen yang telah ditingkatkan dan alur data Azure Monitor untuk peningkatan skala. Perubahan ini semua dilakukan di latar belakang oleh Azure Monitor dan tidak memerlukan input atau konfigurasi setelah fitur diaktifkan.

Mode skala tinggi hanya memengaruhi lapisan pengumpulan data. Pengalaman Container Insights lainnya tetap sama, dengan log diolah ke dalam tabel yang sama ContainerLogV2. Kueri dan pemberitahuan yang ada terus berfungsi sejak data yang sama dikumpulkan.

Untuk mencapai throughput log maksimum yang didukung, Anda harus menggunakan SKU VM kelas atas dengan 16 inti CPU atau lebih untuk node kluster AKS Anda. Menggunakan SKU VM kelas rendah memengaruhi kapasitas log Anda.

Apakah kluster saya memenuhi syarat?

Pengumpulan log skala tinggi cocok untuk lingkungan yang mengirim lebih dari 2.000 log/detik (atau 2 MB/detik) per simpul dalam kluster Kubernetes mereka dan telah dirancang dan diuji untuk mengirim hingga 50.000 log/detik per node. Gunakan kueri log berikut untuk menentukan apakah kluster Anda cocok untuk pengumpulan log skala tinggi.

Log per detik dan per simpul

ContainerLogV2 
| where _ResourceId =~ "<cluster-resource-id>" 
| summarize count() by bin(TimeGenerated, 1s), Computer 
| render timechart 

Ukuran log (dalam MB) per detik per simpul

 ContainerLogV2 
| where _ResourceId =~ "<cluster-resource-id>"
| summarize BillableDataMB = sum(_BilledSize)/1024/1024 by bin(TimeGenerated, 1s), Computer 
| render timechart 

Prerequisites

  • Azure CLI versi 2.74.0 atau yang lebih tinggi.
  • Azure CLI k8s-extension versi 1.6.7 atau lebih tinggi jika Anda mengelola Kubernetes dengan dukungan Azure Arc.
  • Skema kluster harus dikonfigurasi untuk ContainerLogV2.
  • Jika batas sumber daya default (CPU dan memori) pada kontainer set daemon ama-logs tidak memenuhi persyaratan skala log Anda, hubungi saluran dukungan Microsoft untuk meningkatkan batas sumber daya kontainer ama-logs Anda.

Persyaratan firewall jaringan

Selain persyaratan firewall jaringan untuk memantau kluster Kubernetes, konfigurasi tambahan dalam tabel berikut diperlukan untuk mengaktifkan mode skala tinggi tergantung pada cloud Anda.

Cloud Endpoint Port
Azure Public Cloud <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.com 443
Microsoft Azure dioperasikan oleh cloud 21Vianet <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.cn 443
komputasi awan Azure Government <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.us 443

Titik akhir adalah titik akhir Penyerapan Log dari titik akhir pengumpulan data (DCE) untuk aturan pengumpulan data (DCR) yang digunakan oleh kluster. DCE ini dibuat ketika Anda mengaktifkan mode skala tinggi untuk kluster dan dimulai dengan awalan MSCI-ingest.

Cuplikan layar titik akhir penyerapan log untuk DCE.

Limitations

Skenario berikut tidak didukung:

  • Proksi HTTP dengan sertifikat tepercaya
  • Onboarding melalui portal Azure
  • Mengonfigurasi melalui Pengaturan Monitor di pengalaman portal Wawasan AKS
  • Migrasi otomatis dari Container Insights yang ada
  • Pengenalan melalui Bicep, Terraform, Azure Policy untuk Azure Arc yang mendukung Kubernetes

Aktifkan pengumpulan log skala tinggi

Ikuti dua langkah di bagian berikut untuk mengaktifkan mode skala tinggi untuk kluster Anda.

Note

Mode skala log tinggi memerlukan titik akhir pengumpulan data (DCE) untuk penyerapan. DCE untuk penyerapan dibuat dengan awalan MSCI-ingest untuk setiap kluster ketika Anda melakukan onboarding. Jika cakupan tautan privat Azure Monitor dikonfigurasi, maka juga akan ada konfigurasi DCE yang dibuat dengan awalan MSCI-config.

Perbarui peta konfigurasi

Langkah pertama adalah memperbarui configmap untuk kluster guna menginstruksikan pod daemonset Container Insights ama-logs untuk dijalankan dalam mode skala tinggi.

  1. Ikuti panduan di Mengonfigurasi dan menyebarkan ConfigMap untuk mengunduh dan memperbarui ConfigMap untuk kluster.

  2. Aktifkan mode skala tinggi dengan pengaturan berikut di bawah agent-settings.

    [agent_settings.high_log_scale] 
      enabled = true 
    
  3. Aktifkan pengumpulan metrik internal untuk mengisi dasbor QoS Grafana yang dijelaskan di bawah ini dengan pengaturan berikut di bawah agent-settings.

    [agent_settings.fbit_config]
      enable_internal_metrics = "true"
    
  4. Terapkan ConfigMap ke kluster dengan perintah berikut.

    kubectl config set-context <cluster-name>
    kubectl apply -f <configmap_yaml_file.yaml>
    

Setelah menerapkan configmap ini, ama-logs-* pod akan dimulai ulang secara otomatis dan mengonfigurasi pod daemonset ama-logs untuk berjalan dalam mode skala tinggi.

Mengaktifkan mode skala tinggi untuk Memantau add-on

Aktifkan Add-on Pemantauan dengan mode skala tinggi menggunakan perintah Azure CLI berikut untuk mengaktifkan mode log skala tinggi untuk add-on Pemantauan tergantung pada konfigurasi AKS Anda.

Note

Lihat Enable Container Insights untuk panduan tentang mengaktifkan Container Insights metode lain seperti ARM, Bicep, dan Terraform. Untuk mengaktifkan mode skala tinggi, gunakan Microsoft-ContainerLogV2-HighScale alih-alih Microsoft-ContainerLogV2 dalam parameter streams seperti yang dijelaskan dalam log Container.

Kluster AKS yang ada

az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --workspace-resource-id <workspace-resource-id> --enable-high-log-scale-mode

Kluster Privat AKS yang ada

az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --workspace-resource-id <workspace-resource-id> --enable-high-log-scale-mode --ampls-resource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/privatelinkscopes/<resourceName> 

Kluster AKS baru

az aks create -g <resource-group-name> -n <cluster-name> --enable-addons monitoring --workspace-resource-id <workspace-resource-id> --enable-high-log-scale-mode

Kluster Privat AKS baru

Lihat Buat kluster Azure Kubernetes Service (AKS) privat untuk detail tentang membuat kluster AKS Private. Gunakan parameter tambahan --enable-high-scale-mode dan --ampls-resource-id untuk mengonfigurasi mode skala log tinggi dengan ID Sumber Daya Cakupan Azure Monitor Private Link.

Kluster dengan dukungan ARC

az k8s-extension create --name azuremonitor-containers --resource-group <resource-group-name>  --cluster-name <cluster-name>  --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.enableHighLogScaleMode=true logAnalyticsWorkspaceResourceID=<workspace-resource-id> 

Migration

Jika Container Insights sudah diaktifkan untuk kluster Anda, maka Anda perlu menonaktifkannya lalu mengaktifkannya kembali dengan mode skala tinggi.

  • Karena mode skala tinggi menggunakan alur data yang berbeda, Anda harus memastikan bahwa titik akhir alur tidak diblokir oleh firewall atau koneksi jaringan lainnya.
  • Mode skala besar memerlukan titik akhir pengumpulan data (DCE) untuk pemrosesan selain DCR standar untuk pengumpulan data. Jika Anda telah membuat DCR yang menggunakan Microsoft-ContainerLogV2, Anda harus mengganti ini dengan Microsoft-ContainerLogV2-HighScale atau data akan diduplikasi. Anda juga harus membuat DCE untuk penyerapan dan menautkannya ke DCR jika DCR belum menggunakannya. Lihat orientasi Container Insights melalui Azure Resource Manager untuk referensi untuk dependensi.

Memantau metrik QoS dengan Prometheus dan Grafana

Ketika volume log yang dihasilkan bersifat substansial, hal ini dapat menyebabkan penghambatan dan kehilangan log. Lihat artikel Mengonfigurasi pembatasan untuk Container Insights untuk panduan tentang mengonfigurasi parameter pembatasan dan memantau kehilangan log.