Mengonfigurasi pengumpulan log dalam wawasan Kontainer
Artikel ini menyediakan detail tentang cara mengonfigurasi pengumpulan data dalam wawasan Kontainer untuk kluster Kubernetes Setelah di-onboard. Untuk panduan tentang mengaktifkan wawasan Kontainer pada kluster Anda, lihat Mengaktifkan pemantauan untuk kluster Kubernetes.
Metode konfigurasi
Ada dua metode yang digunakan untuk mengonfigurasi dan memfilter data yang dikumpulkan dalam wawasan Kontainer. Tergantung pada pengaturannya, Anda mungkin dapat memilih antara dua metode atau Anda mungkin diharuskan untuk menggunakan satu atau yang lain. Dua metode dijelaskan dalam tabel di bawah ini dengan informasi terperinci di bagian berikut.
Metode | Deskripsi |
---|---|
Aturan pengumpulan data (DCR) | Aturan pengumpulan data adalah sekumpulan instruksi yang mendukung pengumpulan data menggunakan alur Azure Monitor. DCR dibuat saat Anda mengaktifkan wawasan Kontainer, dan Anda dapat memodifikasi pengaturan di DCR ini baik menggunakan portal Azure atau metode lainnya. |
ConfigMap | ConfigMaps adalah mekanisme Kubernetes yang memungkinkan Anda menyimpan data non-rahasia seperti file konfigurasi atau variabel lingkungan. Wawasan kontainer mencari ConfigMap pada setiap kluster dengan pengaturan tertentu yang menentukan data yang harus dikumpulkannya. |
Mengonfigurasi pengumpulan data menggunakan DCR
DCR yang dibuat oleh wawasan Kontainer diberi nama MSCI-cluster-region-cluster-name><<>. Anda dapat melihat DCR ini bersama dengan orang lain dalam langganan Anda, dan Anda dapat mengeditnya menggunakan metode yang dijelaskan dalam Membuat dan mengedit aturan pengumpulan data (DCR) di Azure Monitor. Meskipun Anda dapat langsung memodifikasi DCR untuk penyesuaian tertentu, Anda dapat melakukan konfigurasi yang paling diperlukan menggunakan metode yang dijelaskan di bawah ini. Lihat Transformasi data dalam wawasan Kontainer untuk detail tentang mengedit DCR secara langsung untuk konfigurasi yang lebih canggih.
Penting
Kluster AKS harus menggunakan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna. Jika kluster menggunakan perwakilan layanan, Anda harus memperbarui kluster untuk menggunakan identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna.
Mengonfigurasi DCR dengan portal Azure
Dengan menggunakan portal Azure, Anda dapat memilih dari beberapa konfigurasi prasetel untuk pengumpulan data dalam wawasan Kontainer. Konfigurasi ini mencakup serangkaian tabel dan frekuensi pengumpulan yang berbeda tergantung pada prioritas khusus Anda. Anda juga dapat menyesuaikan pengaturan untuk mengumpulkan hanya data yang Anda butuhkan. Anda dapat menggunakan portal Azure untuk menyesuaikan konfigurasi pada kluster yang ada setelah wawasan Kontainer diaktifkan, atau Anda dapat melakukan konfigurasi ini saat mengaktifkan wawasan Kontainer pada kluster Anda.
Pilih kluster di portal Azure.
Pilih opsi Wawasan di bagian Pemantauan pada menu.
Jika Wawasan kontainer telah diaktifkan pada kluster, pilih tombol Pengaturan Pemantauan. Jika tidak, pilih Konfigurasikan Azure Monitor dan lihat Mengaktifkan pemantauan pada kluster Kubernetes Anda dengan Azure Monitor untuk detail tentang mengaktifkan pemantauan.
Untuk Kubernetes dengan dukungan AKS dan Arc, pilih Gunakan identitas terkelola jika Anda belum memigrasikan kluster ke autentikasi identitas terkelola.
Pilih salah satu preset biaya.
Prasetel biaya Frekuensi pengumpulan Filter namespace Kumpulan Syslog Data yang dikumpulkan Standard 1 m Tidak Tidak diaktifkan Semua tabel wawasan kontainer standar Biaya yang dioptimalkan 5 m Mengecualikan kube-system, gatekeeper-system, azure-arc Tidak diaktifkan Semua tabel wawasan kontainer standar Syslog 1 m Tidak Diaktifkan secara default Semua tabel wawasan kontainer standar Log dan Peristiwa 1 m Tidak Tidak diaktifkan ContainerLog/ContainerLogV2
KubeEvents
KubePodInventoryJika Anda ingin menyesuaikan pengaturan, klik Edit pengaturan koleksi.
Nama Deskripsi Frekuensi pengumpulan Menentukan seberapa sering agen mengumpulkan data. Nilai yang valid adalah 1m - 30m dalam interval 1m Nilai default adalah 1m. Pemfilteran namespace Nonaktif: Mengumpulkan data di semua namespace layanan.
Sertakan: Hanya mengumpulkan data dari nilai di bidang namespace .
Kecualikan: Mengumpulkan data dari semua namespace kecuali untuk nilai di bidang namespace .
Array namespace Layanan Kubernetes yang dipisahkan koma untuk mengumpulkan data inventori dan perf berdasarkan namespaceFilteringMode. Misalnya, namespace = ["kube-system", "default"] dengan pengaturan Sertakan hanya mengumpulkan kedua namespace ini. Dengan pengaturan Kecualikan, agen mengumpulkan data dari semua namespace layanan lain kecuali untuk kube-system dan default.Data yang Dikumpulkan Menentukan tabel wawasan Kontainer mana yang akan dikumpulkan. Lihat di bawah ini untuk deskripsi setiap pengelompokan. Mengaktifkan ContainerLogV2 Bendera Boolean untuk mengaktifkan skema ContainerLogV2. Jika diatur ke true, Log stdout/stderr diserap ke tabel ContainerLogV2 . Jika tidak, log kontainer diserap ke tabel ContainerLog , kecuali ditentukan lain dalam ConfigMap. Saat menentukan aliran individual, Anda harus menyertakan tabel yang sesuai untuk ContainerLog atau ContainerLogV2. Aktifkan koleksi Syslog Mengaktifkan koleksi Syslog dari kluster. Opsi Data yang dikumpulkan memungkinkan Anda memilih tabel yang diisi untuk kluster. Tabel dikelompokkan menurut skenario yang paling umum. Untuk menentukan tabel individual, Anda harus mengubah DCR menggunakan metode lain.
Pengelompokan Tabel Catatan Semua (Default) Semua tabel wawasan kontainer standar Diperlukan untuk mengaktifkan visualisasi wawasan Kontainer default Performa Perf, InsightsMetrics Log dan peristiwa ContainerLog atau ContainerLogV2, KubeEvents, KubePodInventory Disarankan jika Anda telah mengaktifkan metrik Prometheus terkelola Beban Kerja, Penyebaran, dan HPAs InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices Volume Persisten InsightsMetrics, KubePVInventory Klik Konfigurasikan untuk menyimpan pengaturan.
Tabel dan metrik yang berlaku untuk DCR
Pengaturan untuk frekuensi pengumpulan dan pemfilteran namespace di DCR tidak berlaku untuk semua data wawasan Kontainer. Tabel berikut mencantumkan tabel di ruang kerja Analitik Log yang digunakan oleh wawasan Kontainer dan metrik yang dikumpulkannya bersama dengan pengaturan yang berlaku untuk masing-masing.
Nama tabel | Interval? | Namespace? | Keterangan |
---|---|---|---|
ContainerInventory | Ya | Ya | |
ContainerNodeInventory | Ya | Tidak | Pengaturan pengumpulan data untuk namespace tidak berlaku karena Node Kubernetes bukan sumber daya cakupan namespace |
KubeNodeInventory | Ya | Tidak | Pengaturan pengumpulan data untuk namespace tidak berlaku Kubernetes Node bukan sumber daya cakupan namespace |
KubePodInventory | Ya | Ya | |
KubePVInventory | Ya | Ya | |
KubeServices | Ya | Ya | |
KubeEvents | Tidak | Ya | Pengaturan pengumpulan data untuk interval tidak berlaku untuk Peristiwa Kubernetes |
Perf | Ya | Ya | Pengaturan pengumpulan data untuk namespace tidak berlaku untuk metrik terkait Simpul Kubernetes karena Node Kubernetes bukan objek cakupan namespace. |
InsightsMetrics | Ya | Ya | Pengaturan pengumpulan data hanya berlaku untuk metrik yang mengumpulkan namespace berikut: container.azm.ms/kubestate, container.azm.ms/pv, dan container.azm.ms/gpu |
Namespace metrik | Interval? | Namespace? | Keterangan |
---|---|---|---|
Insights.container/nodes | Ya | Tidak | Simpul bukan sumber daya cakupan namespace |
Insights.container/pods | Ya | Ya | |
Insights.container/containers | Ya | Ya | |
Insights.container/persistentvolumes | Ya | Ya |
Nilai streaming di DCR
Saat Anda menentukan tabel yang akan dikumpulkan menggunakan CLI atau ARM, Anda menentukan nama streaming yang sesuai dengan tabel tertentu di ruang kerja Analitik Log. Tabel berikut mencantumkan nama aliran untuk setiap tabel.
Catatan
Jika Anda terbiasa dengan struktur aturan pengumpulan data, nama aliran dalam tabel ini ditentukan di bagian Aliran data DCR.
Stream | Tabel wawasan kontainer |
---|---|
Microsoft-ContainerInventory | ContainerInventory |
Microsoft-ContainerLog | ContainerLog |
Microsoft-ContainerLogV2 | ContainerLogV2 |
Microsoft-ContainerLogV2-HighScale | ContainerLogV2 (Mode skala tinggi)1 |
Microsoft-ContainerNodeInventory | ContainerNodeInventory |
Microsoft-InsightsMetrics | InsightsMetrics |
Microsoft-KubeEvents | KubeEvents |
Microsoft-KubeMonAgentEvents | KubeMonAgentEvents |
Microsoft-KubeNodeInventory | KubeNodeInventory |
Microsoft-KubePodInventory | KubePodInventory |
Microsoft-KubePVInventory | KubePVInventory |
Microsoft-KubeServices | KubeServices |
Microsoft-Perf | Perf |
1 Anda tidak boleh menggunakan Microsoft-ContainerLogV2 dan Microsoft-ContainerLogV2-HighScale dalam DCR yang sama. Ini akan menghasilkan data duplikat.
Berbagi DCR dengan beberapa kluster
Saat Anda mengaktifkan wawasan Kontainer pada kluster Kubernetes, DCR baru dibuat untuk kluster tersebut, dan DCR untuk setiap kluster dapat dimodifikasi secara independen. Jika Anda memiliki beberapa kluster dengan konfigurasi pemantauan kustom, Anda mungkin ingin berbagi satu DCR dengan beberapa kluster. Anda kemudian dapat membuat perubahan pada satu DCR yang secara otomatis diimplementasikan untuk kluster apa pun yang terkait dengannya.
DCR dikaitkan dengan kluster dengan kait aturan pengumpulan data (DCRA). Gunakan pengalaman DCR pratinjau untuk melihat dan menghapus asosiasi DCR yang ada untuk setiap kluster. Anda kemudian dapat menggunakan fitur ini untuk menambahkan asosiasi ke satu DCR untuk beberapa kluster.
Mengonfigurasi pengumpulan data menggunakan ConfigMap
ConfigMaps adalah mekanisme Kubernetes yang memungkinkan Anda menyimpan data non-rahasia seperti file konfigurasi atau variabel lingkungan. Wawasan kontainer mencari ConfigMap pada setiap kluster dengan pengaturan tertentu yang menentukan data yang harus dikumpulkannya.
Penting
ConfigMap adalah daftar global dan hanya ada satu ConfigMap yang diterapkan ke agen untuk wawasan Kontainer. Menerapkan ConfigMap lain akan menimpa pengaturan koleksi ConfigMap sebelumnya.
Prasyarat
- Versi agen minimum yang didukung untuk mengumpulkan variabel stdout, stderr, dan lingkungan dari beban kerja kontainer adalah ciprod06142019 atau yang lebih baru.
Mengonfigurasi dan menyebarkan ConfigMap
Gunakan prosedur berikut untuk mengonfigurasi dan menyebarkan file konfigurasi ConfigMap Anda ke kluster Anda:
Jika Anda belum memiliki ConfigMap untuk wawasan Kontainer, unduh file YAML ConfigMap templat dan buka di editor.
Edit file YAML ConfigMap dengan kustomisasi Anda. Templat mencakup semua pengaturan yang valid dengan deskripsi. Untuk mengaktifkan pengaturan, hapus karakter komentar (#) dan atur nilainya.
Buat ConfigMap dengan menjalankan perintah kubectl berikut:
kubectl config set-context <cluster-name> kubectl apply -f <configmap_yaml_file.yaml> # Example: kubectl config set-context my-cluster kubectl apply -f container-azm-ms-agentconfig.yaml
Perubahan konfigurasi dapat memakan waktu beberapa menit untuk selesai sebelum diterapkan. Kemudian semua pod Agen Azure Monitor di kluster akan dimulai ulang. Mulai ulang adalah mulai ulang bergulir untuk semua pod Agen Azure Monitor, jadi tidak semuanya dimulai ulang secara bersamaan. Setelah mulai ulang selesai, Anda akan menerima pesan yang mirip dengan hasil berikut:
configmap "container-azm-ms-agentconfig" created`.
Memverifikasi konfigurasi
Untuk memverifikasi konfigurasi berhasil diterapkan ke kluster, gunakan perintah berikut untuk meninjau log dari pod agen.
kubectl logs ama-logs-fdf58 -n kube-system -c ama-logs
Jika ada kesalahan konfigurasi dari pod Agen Azure Monitor, output akan menampilkan kesalahan yang mirip dengan yang berikut:
***************Start Config Processing********************
config::unsupported/missing config schema version - 'v21' , using defaults
Gunakan opsi berikut untuk melakukan lebih banyak pemecahan masalah perubahan konfigurasi:
Gunakan perintah yang sama
kubectl logs
dari pod agen.Tinjau log langsung untuk kesalahan yang mirip dengan yang berikut ini:
config::error::Exception while parsing config map for log collection/env variable settings: \nparse error on value \"$\" ($end), using defaults, please check config map for errors
Data dikirim ke
KubeMonAgentEvents
tabel di ruang kerja Analitik Log Anda setiap jam dengan tingkat keparahan kesalahan untuk kesalahan konfigurasi. Jika tidak ada kesalahan, entri dalam tabel akan memiliki data dengan info tingkat keparahan, yang melaporkan tidak ada kesalahan. KolomTags
berisi informasi lebih lanjut tentang pod dan ID kontainer tempat kesalahan terjadi dan juga kemunculan pertama, kemunculan terakhir, dan hitungan dalam satu jam terakhir.
Memverifikasi versi skema
Versi skema konfigurasi yang didukung tersedia sebagai anotasi pod (versi skema) pada pod Agen Azure Monitor. Anda dapat melihatnya dengan perintah kubectl berikut.
kubectl describe pod ama-logs-fdf58 -n=kube-system.
Pengaturan ConfigMap
Tabel berikut ini menjelaskan pengaturan yang bisa Anda konfigurasi untuk mengontrol pengumpulan data dengan ConfigMap.
Pengaturan | Jenis Data | Nilai | Deskripsi |
---|---|---|---|
schema-version |
String (peka huruf besar kecil) | v1 | Digunakan oleh agen saat mengurai ConfigMap ini. Versi skema yang saat ini didukung adalah v1. Mengubah nilai ini tidak didukung dan akan ditolak saat ConfigMap dievaluasi. |
config-version |
String | Memungkinkan Anda melacak versi file konfigurasi ini di sistem/repositori kontrol sumber Anda. Karakter maksimum yang diizinkan adalah 10, dan semua karakter lainnya terpotong. | |
[log_collection_settings] | |||
[stdout] enabled |
Boolean | benar salah |
Mengontrol apakah pengumpulan log kontainer stdout diaktifkan. Ketika diatur ke true dan tidak ada namespace yang dikecualikan untuk pengumpulan log stdout, log stdout akan dikumpulkan dari semua kontainer di semua pod dan simpul dalam kluster. Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah true . |
[stdout] exclude_namespaces |
String | Array yang dipisahkan koma | Array namespace Layanan Kubernetes yang log stdout-nya tidak akan dikumpulkan. Pengaturan ini hanya efektif jika enabled diatur ke true . Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah["kube-system","gatekeeper-system"] . |
[stderr] enabled |
Boolean | benar salah |
Mengontrol apakah pengumpulan log kontainer stderr diaktifkan. Ketika diatur ke true dan tidak ada namespace yang dikecualikan untuk koleksi log stderr, log stderr akan dikumpulkan dari semua kontainer di semua pod dan simpul dalam kluster. Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah true . |
[stderr] exclude_namespaces |
String | Array yang dipisahkan koma | Array namespace Layanan Kubernetes yang log stderrnya tidak akan dikumpulkan. Pengaturan ini hanya efektif jika enabled diatur ke true . Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah["kube-system","gatekeeper-system"] . |
[env_var] enabled |
Boolean | benar salah |
Mengontrol pengumpulan variabel lingkungan di semua pod dan simpul dalam kluster. Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah true . |
[enrich_container_logs] enabled |
Boolean | benar salah |
Mengontrol pengayaan log kontainer untuk mengisi Name nilai properti dan Image untuk setiap rekaman log yang ditulis ke tabel ContainerLog untuk semua log kontainer di kluster. Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah false . |
[collect_all_kube_events] enabled |
Boolean | benar salah |
Mengontrol apakah peristiwa Kube dari semua jenis dikumpulkan. Secara default, peristiwa Kube dengan jenis Normal tidak dikumpulkan. Ketika pengaturan ini adalah true , peristiwa Normal tidak lagi difilter, dan semua peristiwa dikumpulkan. Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah false . |
[schema] containerlog_schema_version |
String (peka huruf besar kecil) | v2 v1 |
Mengatur format penyerapan log. Jika v2 , tabel ContainerLogV2 digunakan. Jika v1 , tabel ContainerLog digunakan (tabel ini tidak digunakan lagi). Untuk kluster yang mengaktifkan wawasan kontainer menggunakan Azure CLI versi 2.54.0 atau lebih tinggi, pengaturan defaultnya adalah v2 . Lihat Skema log wawasan kontainer untuk detailnya. |
[enable_multiline_logs] enabled |
Boolean | benar salah |
Mengontrol apakah log kontainer multibaris diaktifkan. Lihat Pengelogan multibaris di Container Insights untuk detailnya. Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah false . Ini mengharuskan schema pengaturan menjadi v2 . |
[metadata_collection] enabled |
Boolean | benar salah |
Mengontrol apakah metadata dikumpulkan dalam KubernetesMetadata kolom ContainerLogV2 tabel. |
[metadata_collection] include_fields |
String | Array yang dipisahkan koma | Daftar bidang metadata yang akan disertakan. Jika pengaturan tidak digunakan, semua bidang dikumpulkan. Nilai yang valid adalah ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"] |
[metric_collection_settings] | |||
[collect_kube_system_pv_metrics] enabled |
Boolean | benar salah |
Memungkinkan metrik penggunaan volume persisten (PV) dikumpulkan di namespace layanan kube-system. Secara default, metrik penggunaan untuk volume persisten dengan klaim volume persisten di namespace layanan sistem kube tidak dikumpulkan. Ketika pengaturan ini diatur ke true , metrik penggunaan PV untuk semua namespace layanan akan dikumpulkan. Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah false . |
[agent_settings] | |||
[proxy_config] ignore_proxy_settings |
Boolean | benar salah |
Ketika true , pengaturan proksi diabaikan. Untuk lingkungan Kubernetes dengan dukungan AKS dan Arc, jika kluster Anda dikonfigurasi dengan proksi penerusan, maka pengaturan proksi secara otomatis diterapkan dan digunakan untuk agen. Untuk konfigurasi tertentu, seperti dengan AMPLS + Proxy, Anda mungkin ingin konfigurasi proksi diabaikan. Jika tidak ditentukan dalam ConfigMap, nilai defaultnya adalah false . |
Langkah berikutnya
- Lihat Memfilter pengumpulan log di Wawasan kontainer untuk detail tentang menghemat biaya dengan mengonfigurasi wawasan Kontainer untuk memfilter data yang tidak Anda perlukan.