Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kontainer Insights menyimpan data log yang dikumpulkannya dalam tabel bernama ContainerLogV2 di workspace Log Analytics. Artikel ini menjelaskan skema tabel ini dan opsi konfigurasi untuknya. Ini juga membandingkan tabel ini dengan tabel ContainerLog warisan dan menyediakan detail untuk bermigrasi dari tabel tersebut.
Perbandingan tabel
ContainerLogV2 adalah skema default untuk CLI versi 2.54.0 dan yang lebih besar. Ini adalah tabel default untuk pelanggan yang bergabung dengan wawasan Kontainer dengan autentikasi identitas terkelola. ContainerLogV2 dapat diaktifkan secara eksplisit melalui CLI versi 2.51.0 atau yang lebih tinggi menggunakan pengaturan pengumpulan data.
Penting
Dukungan untuk tabel ContainerLog akan dihentikan pada 30 September 2026.
Tabel berikut menyoroti perbedaan utama antara menggunakan skema ContainerLogV2 dan ContainerLog.
| Perbedaan fitur | ContainerLog | ContainerLogV2 |
|---|---|---|
| Skema | Detail di ContainerLog. | Detail di ContainerLogV2. Kolom tambahan adalah: - ContainerName- PodName- PodNamespace- LogLevel
1- KubernetesMetadata
2 |
| Orientasi | Hanya dapat dikonfigurasi melalui ConfigMap. | Dapat dikonfigurasi melalui ConfigMap dan DCR. 3 |
| Harga | Hanya kompatibel dengan log analitik dengan harga penuh. | Mendukung tingkat log dasar berbiaya rendah selain log analitik. |
| Melakukan Permintaan | Memerlukan beberapa operasi gabungan dengan tabel inventaris untuk kueri standar. | Termasuk metadata pod dan kontainer tambahan untuk mengurangi kompleksitas kueri dan menggabungkan operasi. |
| Multibaris | Tidak didukung, entri multibaris dibagi menjadi beberapa baris. | Dukungan untuk pengelogan multibaris untuk memungkinkan entri tunggal terkonsolidasi untuk output multibaris. |
1 Jika LogMessage JSON valid dan memiliki kunci bernama level, nilainya akan digunakan. Jika tidak, pencocokan kata kunci berbasis regex digunakan untuk menyimpulkan LogLevel dari LogMessage. Inferensi ini dapat mengakibatkan beberapa kesalahan klasifikasi.
LogLevel adalah bidang string dengan nilai kesehatan seperti CRITICAL, ERROR, WARNING, INFO, DEBUG, TRACE, atau UNKNOWN.
2KubernetesMetadata adalah kolom opsional yang dapat diaktifkan menggunakan metadata Kubernetes. Nilai bidang ini adalah JSON dengan bidang podLabels, , podAnnotations, podUidImage, ImageTag, dan Image repo.
3 Konfigurasi DCR memerlukan autentikasi identitas terkelola.
Catatan
Bidang LogMessage ini dinamis dan mendukung penyerapan format string JSON dan teks biasa.
Ekspor data log ke Azure Event Hubs dan Akun Penyimpanan didukung jika JSON yang masuk LogMessage valid atau string biasa yang valid.
LogMessage Jika JSON cacat maka pesan log tersebut akan diserap dengan pelepasan. Secara default, pesan log yang lebih besar dari 16KB dipotong. Dengan pengelogan multibaris diaktifkan, pesan log yang lebih besar dari 64KB dipotong.
Mengaktifkan skema ContainerLogV2
Aktifkan skema ContainerLogV2 untuk kluster baik menggunakan profil log kluster atau ConfigMap. Jika kedua pengaturan diaktifkan, ConfigMap lebih diutamakan. Tabel ContainerLog hanya digunakan ketika keduanya secara eksplisit diatur ke nonaktif.
Penting
Pengaturan ContainerLogV2 tidak mengontrol apakah data dikumpulkan atau tidak. Ini hanya menentukan tabel mana data dikirim ke saat dikumpulkan.
Sebelum mengaktifkan skema ContainerLogsV2 , Anda harus menilai apakah Anda memiliki aturan pemberitahuan yang bergantung pada tabel ContainerLog . Setiap pemberitahuan tersebut perlu diperbarui untuk menggunakan tabel baru. Jalankan kueri Azure Resource Graph berikut untuk memindai aturan pemberitahuan yang mereferensikan tabel ContainerLog.
resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "ContainerLog"
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc
Pemfilteran metadata dan log Kubernetes
Pemfilteran metadata dan log Kubernetes memperluas skema ContainerLogsV2 dengan metadata Kubernetes tambahan. Fitur pemfilteran log menyediakan kemampuan pemfilteran untuk beban kerja dan kontainer platform. Fitur-fitur ini memberi Anda konteks yang lebih kaya dan visibilitas yang ditingkatkan ke dalam beban kerja Anda.
Catatan
Dasbor Grafana untuk memfilter metadata dan log Kubernetes saat ini tidak mendukung log sederhana.
Fitur
Skema ContainerLogV2 yang Ditingkatkan Ketika Metadata Log Kubernetes diaktifkan, ia menambahkan kolom ke
ContainerLogV2yang disebutKubernetesMetadatayang mempermudah pemecahan masalah dengan kueri log yang sederhana dan menghilangkan kebutuhan untuk menggabungkan dengan tabel lain. Bidang dalam kolom ini meliputi:PodLabels, ,PodAnnotations,PodUid,Image,ImageID,ImageRepo.ImageTagBidang ini meningkatkan pengalaman pemecahan masalah menggunakan kueri log tanpa harus bergabung dengan tabel lain. Lihat di bawah ini untuk detail tentang mengaktifkan fitur metadata Kubernetes.Tingkat log Fitur ini menambahkan
LogLevelkolom ke ContainerLogV2 dengan kemungkinan nilai penting, kesalahan, peringatan, info, debug, jejak, atau tidak diketahui. Ini membantu Anda menilai kesehatan aplikasi berdasarkan tingkat keparahan. Menambahkan dasbor Grafana, Anda dapat memvisualisasikan tren tingkat log dari waktu ke waktu dan dengan cepat menentukan sumber daya yang terpengaruh.Dasbor Grafana untuk visualisasi Dasbor Grafana menyediakan visualisasi berkode warna dari tingkat log dan juga memberikan wawasan tentang Volume Log, Laju Log, Catatan Log, dan Log Secara Keseluruhan. Anda bisa mendapatkan analisis yang peka terhadap waktu, wawasan dinamis tentang tren tingkat log dari waktu ke waktu, dan pemantauan waktu nyata yang krusial. Dasbor juga menyediakan perincian terperinci berdasarkan komputer, pod, dan kontainer, yang memberdayakan analisis mendalam dan pemecahan masalah yang ditentukan. Lihat di bawah ini untuk detail tentang menginstal dasbor Grafana.
Pemfilteran log berbasis anotasi untuk beban kerja Pemfilteran log yang efisien melalui anotasi pod. Ini memungkinkan Anda untuk fokus pada informasi yang relevan tanpa harus melewati kebisingan. Pemfilteran berbasis anotasi memungkinkan Anda mengecualikan pengumpulan log untuk pod dan kontainer tertentu dengan membuat anotasi pod, yang akan membantu mengurangi biaya analitik log secara signifikan. Lihat pemfilteran log berbasis anotasi untuk detail tentang konfigurasi pemfilteran berbasis anotasi.
Pemfilteran log berbasis ConfigMap untuk log platform (System Kubernetes Namespaces) Log platform dihasilkan oleh kontainer dalam namespace sistem (atau namespace serupa yang dibatasi). Secara default, semua log kontainer dari namespace layanan sistem dikecualikan untuk meminimalkan biaya data di ruang kerja Log Analytics Anda. Dalam skenario pemecahan masalah tertentu, log dari kontainer sistem memainkan peran penting. Salah satu contohnya adalah wadah di ruang nama
coredns.
Mengaktifkan metadata Kubernetes
Penting
Pengumpulan metadata Kubernetes memerlukan autentikasi identitas terkelola dan ContainerLogsV2
Aktifkan metadata Kubernetes menggunakan ConfigMap dengan pengaturan berikut. Semua bidang metadata dikumpulkan secara default saat metadata_collection diaktifkan. Hapus komentar include_fields untuk menentukan bidang individual yang akan dikumpulkan.
[log_collection_settings.metadata_collection]
enabled = true
include_fields = ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
Setelah beberapa menit, kolom KubernetesMetadata harus disertakan dengan kueri log apa pun untuk tabel ContainerLogV2 seperti yang ditunjukkan di bawah ini.
Memasang dasbor Grafana
Penting
Jika Anda mengaktifkan Grafana menggunakan panduan di Enable monitoring for Kubernetes clusters maka instans Grafana Anda seharusnya sudah memiliki akses ke area kerja Azure Monitor untuk metrik Prometheus. Dasbor Metadata Log Kubernetes juga memerlukan akses ke ruang kerja Log Analytics yang berisi data log. Lihat Cara mengubah izin akses ke Azure Monitor untuk panduan tentang memberikan instans Grafana Anda peran Pembaca Pemantauan untuk ruang kerja Log Analytics Anda.
Impor dasbor dari galeri Grafana di Dasbor ContainerLogV2. Anda kemudian dapat membuka dasbor dan memilih nilai untuk DataSource, Langganan, ResourceGroup, Kluster, Namespace, dan Label.
Catatan
Ketika Anda awalnya memuat Dasbor Grafana, Anda mungkin melihat kesalahan karena variabel belum dipilih. Untuk mencegah ini berulang, simpan dasbor setelah memilih sekumpulan variabel sehingga menjadi default pada pembukaan pertama.
Pengelogan multibaris
Dengan pengelogan multibaris diaktifkan, log kontainer yang dibagi sebelumnya dijahit bersama-sama dan dikirim sebagai entri tunggal ke tabel ContainerLogV2. Aktifkan pengelogan multibaris dengan ConfigMap seperti yang dijelaskan dalam Mengonfigurasi pengumpulan data dalam wawasan Kontainer menggunakan ConfigMap.
Catatan
Peta konfigurasi sekarang memiliki opsi spesifikasi bahasa yang memungkinkan Anda memilih hanya bahasa yang Anda minati. Fitur ini dapat diaktifkan dengan mengedit bahasa dalam opsi stacktrace_languages di peta konfigurasi.
Keterbatasan
- Pengelogan multibaris hanya menjahit jejak tumpukan pengecualian dari kontainer menggunakan Java, Python, .NET, dan Go. Entri log multibaris lainnya, termasuk pengecualian kustom dan pesan log acak, tidak digabungkan.
- Pencatatan multibaris tidak didukung untuk tumpukan jejak pengecualian Python dengan fine-grained-error-locations-in-tracebacks. Agar pengelogan multibaris berfungsi, Anda perlu menolak fitur ini seperti yang dijelaskan dalam dokumentasi Python.
- Jika garis log lebih besar dari 16KB, alih-alih dipotong secara default oleh runtime kontainer, garis log tersebut akan didukung hingga 64KB.
Contoh
Jejak tumpukan pengecualian Go untuk pencatatan multi-baris dinonaktifkan
Pencatatan multi-baris pengecualian stack trace diaktifkan
Pelacakan jejak tumpukan Java multibaris diaktifkan
Python mengaktifkan pembuatan log multibaris
Langkah berikutnya
- Mengonfigurasi Log Dasar untuk ContainerLogv2.
- Pelajari cara mengkueri data dari ContainerLogV2