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.
Saat Anda mengaktifkan pengumpulan metrik Prometheus dari kluster Kubernetes, ia menggunakan koleksi default untuk menentukan metrik apa yang akan dikumpulkan. Artikel ini menjelaskan bagaimana Anda dapat menyesuaikan koleksi ini untuk memenuhi persyaratan pemantauan spesifik Anda.
Peta Konfigurasi
ConfigMap berikut digunakan untuk mengonfigurasi pengaturan untuk scraping dan pengaturan lain untuk tambahan metrik. ConfigMap ini tidak ada secara default di kluster saat Prometheus Terkelola diaktifkan.
| Peta Konfigurasi | Deskripsi |
|---|---|
ama-metrics-settings-configmap |
Menyertakan pengaturan dasar berikut. - Alias kluster. Mengubah nilai cluster label di setiap metrik yang diserap dari kluster.- Aktifkan/nonaktifkan target pengumpulan data default. - Aktifkan pengumpulan data berbasis anotasi pod per namespace. - Metrik mengelola daftar. Mengontrol metrik mana yang diizinkan dari setiap target default. - Mengikis interval untuk target yang telah ditentukan sebelumnya. - Kontrol terpisah untuk target metrik kluster dan target metrik controlplane. - Mode debug untuk mengidentifikasi masalah metrik yang hilang. Lihat pemecahan masalah. |
Ubah pengaturan di ConfigMap berdasarkan panduan di bawah ini lalu terapkan menggunakan perintah berikut. AMA-Metrics pod akan mengambilnya dan memulai ulang dalam 2-3 menit untuk menerapkan pengaturan konfigurasi yang ditentukan.
Catatan
Perubahan skema v2: Konfigurasi untuk target sekarang secara terpisah di bawah metrik kluster dan metrik controlplane yang memungkinkan kontrol terpisah dari volume penyerapan untuk target tingkat kluster dan target sarana kontrol. Jika Anda bermigrasi dari v1, ganti konfigurasi ke bagian yang sesuai dalam metrik kluster dan controlplane-metrics, perhatikan juga hal berikut:
- Ubah nama kunci dari 'default-scrape-settings-enabled' menjadi 'default-targets-scrape-enabled'
- Untuk target dalam bagian controlplane-metrics, hilangkan awalan "controlplane-"
- Ubah minimalingestionprofile = true di keep-list ke minimal-ingestion-profile: |- / enabled = true sebagai bagiannya sendiri
kubectl apply -f .\ama-metrics-settings-configmap.yaml
Mengaktifkan dan menonaktifkan target bawaan
Konfigurasi metrik Prometheus default di Azure Monitor mencantumkan target dan metrik default yang dikumpulkan secara default dari kluster Kubernetes Anda. Untuk mengaktifkan/menonaktifkan pengikisan salah satu target ini, perbarui pengaturan untuk target di bagian cluster-metrics.default-targets-scrape-enabled atau controlplane-metrics.default-targets-scrape-enabled dari ConfigMap ke true atau false.
Misalnya, untuk mengaktifkan pengikisan coredns yang dinonaktifkan secara default, perbarui pengaturan sebagai berikut:
cluster-metrics: |-
default-targets-scrape-enabled: |-
kubelet = true
coredns = true
cadvisor = true
kubeproxy = false
...
Pengaturan interval penggalian
Interval pengambilan data default untuk semua target adalah 30 detik. Untuk mengubah interval ini untuk target apa pun, Anda dapat memperbarui pengaturan di default-targets-scrape-interval-settings dalam cluster-metrics atau controlplane-metrics bagian dari ConfigMap.
Misalnya, untuk mengubah interval scrape selama kubelet menjadi 60 detik, perbarui pengaturan sebagai berikut:
cluster-metrics: |-
default-targets-scrape-interval-settings: |-
kubelet = "60s"
coredns = "30s"
cadvisor = "30s"
...
Mengaktifkan pemindaian berbasis anotasi pod
Tambahkan anotasi ke pod di kluster Anda untuk mengambil data dari pod aplikasi tanpa membuat konfigurasi Prometheus kustom. Untuk mengaktifkan pengambilan data dari pod dengan anotasi tertentu, tambahkan regex untuk namespace dari pod dengan anotasi yang ingin Anda ambil datanya ke podannotationnamespaceregex di bagian podannotationnamespaceregex ConfigMap.
Misalnya, pengaturan berikut mengambil data dari pod dengan anotasi hanya di namespace kube-system dan my-namespace:
cluster-metrics: |-
pod-annotation-based-scraping: |-
podannotationnamespaceregex = "kube-system|my-namespace"
Tambahkan anotasi ke bagian metadata ConfigMap.
prometheus.io/scrape: "true" diperlukan agar pod diekstraksi, sementara prometheus.io/path dan prometheus.io/port menunjukkan jalur dan port yang dihosting metrik pada pod. Contoh berikut mendefinisikan anotasi untuk pod yang mengelola metrik di <pod IP>:8080/metrics.
metadata:
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: '/metrics'
prometheus.io/port: '8080'
Peringatan
Mengikis anotasi pod dari banyak namespace dapat menghasilkan volume metrik yang sangat besar tergantung pada jumlah pod yang memiliki anotasi.
Sesuaikan metrik yang dikumpulkan pada target default
Hanya metrik minimal yang dikumpulkan untuk target default seperti yang dijelaskan dalam Profil penyerapan minimal untuk metrik Prometheus di Azure Monitor. Untuk mengumpulkan semua metrik dari target default, atur minimalingestionprofile ke false di dalam default-targets-metrics-keep-listcluster-metrics atau controlplane-metrics di bagian ConfigMap.
cluster-metrics: |-
minimal-ingestion-profile: |-
enabled = false
Atau, Anda dapat menambahkan metrik yang akan dikumpulkan untuk target default apa pun dengan memperbarui daftar simpan di bawah default-targets-metrics-keep-list.
Misalnya, kubelet adalah pengaturan pemfilteran metrik untuk kubelet target default. Gunakan skrip berikut untuk memfilter dalam metrik yang dikumpulkan untuk target default dengan menggunakan pemfilteran berbasis regex.
kubelet = "metricX|metricY"
apiserver = "mymetric.*"
Catatan
Jika Anda menggunakan tanda kutip atau garis miring terbalik di regex, Anda perlu menghindarinya dengan menggunakan garis miring terbalik seperti contoh "test\'smetric\"s\"" dan testbackslash\\*.
Jika Anda ingin menyesuaikan target default lebih lanjut untuk mengubah properti seperti frekuensi koleksi atau label, nonaktifkan target tersebut dengan mengatur nilainya ke false. Kemudian buat tugas kustom untuk target seperti yang dijelaskan dalam Menyesuaikan pencarian data metrik Prometheus di Azure Monitor.
Alias kluster
Bagian terakhir dari ID sumber daya kluster ditambahkan ke setiap rangkaian waktu untuk mengidentifikasi data secara unik. Misalnya, jika ID sumber daya adalah /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-name/providers/Microsoft.ContainerService/managedClusters/myclustername, label kluster adalah myclustername. Untuk mengambil alih label kluster ini, perbarui pengaturan cluster_alias di bawah prometheus-collector-settings.
Catatan
Hanya karakter alfanumerik yang diizinkan. Karakter lain diganti dengan _.
Jika Anda mengaktifkan aturan perekaman dan peringatan, pastikan untuk menggunakan nama alias kluster dalam parameter nama kluster pada templat pendaftaran aturan agar aturan tersebut dapat berfungsi.
prometheus-collector-settings: |-
cluster_alias = ""
Mode pemecahan kesalahan
Untuk melihat setiap metrik yang sedang diambil untuk tujuan penelusuran kesalahan, agen add-on metrik dapat dikonfigurasi dengan memperbarui pengaturan untuk dijalankan dalam mode debug dari enabled ke true di bawah pengaturan debug-mode.
Peringatan
Mode ini dapat memengaruhi performa dan hanya boleh diaktifkan untuk waktu yang singkat untuk tujuan penelusuran kesalahan.
Metrik Bidang Kontrol
Untuk detail selengkapnya tentang menyesuaikan target untuk metrik sarana kontrol, lihat menyesuaikan metrik sarana kontrol.
Kube-state-metrics
Untuk mengambil alih parameter startup default (sumber daya, metric-labels-allowlist dan metric-annotations-allowlist) dari penyebaran kube-state-metrics (ama-metrics-ksm) yang diinstal sebagai bagian dari pengaktifan Prometheus Terkelola, gunakan ama-metrics-settings-configmap.
Pengaturan ConfigMap untuk labels_allow_list dan annotations_allow_list menggantikan parameter yang ditetapkan selama onboarding untuk ksm-metrics-labels-allow-list dan ksm-metrics-annotations-allow-list
Pengaturan dalam configmap untuk sumber daya menggantikan pengumpul default yang ditetapkan untuk penyebaran ama-metrics-ksm
Perhatikan bahwa di bawah ini adalah konfigurasi YAML -
ksm-config: |-
resources:
secrets: {}
configmaps: {}
labels_allow_list: # object name and label names
pods:
- app8
annotations_allow_list: # object name and annotation names
namespaces:
- kube-system
- default
Catatan
Menyesuaikan nilai-nilai ini dapat memengaruhi data default yang dikumpulkan sebagai bagian dari pekerjaan metrik kube-state-metrics dan dapat mengakibatkan dasbor tertentu tidak memuat data.
Menghapus seluruh bagian (ksm-config) dalam configmap pengaturan perlu dilakukan agar penerapan ama-metrics-ksm dapat dibuat ulang. Hal ini dapat dilakukan dengan menghapus pod ama-metrics-ksm atau dengan melakukan perintah kubectl rollout restart deployment/ama-metrics -n kube-system.
Disarankan untuk hanya menyesuaikan 3 parameter ini ketika diperlukan; pengaturan parameter tambahan sebagai penimpaan adalah skenario yang tidak didukung. Meskipun memungkinkan, harus digunakan dengan hati-hati.
Dokumentasi perangkat lunak sumber terbuka untuk argumen CLI kube-state-metrics
Langkah berikutnya
Menyiapkan Pemberitahuan pada metrik Prometheus
Mengkueri metrik Prometheus
Pelajari selengkapnya tentang mengumpulkan metrik Prometheus