Anda dapat menggunakan Managed Service for Prometheus untuk melihat dasbor dan metrik kinerja yang telah ditentukan sebelumnya untuk ACK Edge cluster. Topik ini menjelaskan cara menghubungkan ACK Edge cluster ke Managed Service for Prometheus.
Prasyarat
ACK Edge cluster, versi 1.18.8-aliyunedge.1 atau yang lebih baru.
Pastikan komponen ack-arms-prometheus di ACK Edge cluster berada pada versi 1.1.4 atau yang lebih baru. Jika tidak, tingkatkan komponen ack-arms-prometheus.
Jika kluster Anda menjalankan versi sebelum 1.26, pastikan penerusan port diaktifkan untuk Node Exporter port 9100 dan GPU Exporter port 9445 dalam ConfigMap
kube-system/edge-tunnel-server-cfg. Konfigurasi berikut diperlukan:http-proxy-ports: 9445 https-proxy-ports: 9100
Pengantar pemantauan Managed Service for Prometheus
Managed Service for Prometheus terintegrasi sepenuhnya dengan ekosistem Prometheus open source. Layanan ini mendukung pemantauan berbagai komponen, menyediakan berbagai dasbor yang telah ditentukan sebelumnya, serta layanan Prometheus yang sepenuhnya dikelola. Dengan Managed Service for Prometheus, Anda tidak perlu membangun sistem pemantauan sendiri atau mengelola isu-isu mendasar seperti penyimpanan data, visualisasi data, dan O&M.
ACK Edge cluster mendukung Edisi Dasar Pemantauan Kontainer.
Lihat dasbor Grafana di Managed Service for Prometheus
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster target. Di panel navigasi sisi kiri, pilih .
CatatanJika ini pertama kalinya Anda masuk, ikuti petunjuk di layar dan klik Install di bawah komponen tersebut. Konsol akan secara otomatis menginstal add-on dan memeriksa dasbor. Setelah instalasi selesai, konsol akan mengarahkan Anda ke halaman detail Prometheus Monitoring.
Di halaman Prometheus Monitoring, Anda dapat menggunakan dasbor bawaan, seperti Node Monitoring, Application Monitoring, dan GPU Monitoring, untuk melihat data pemantauan untuk node, aplikasi, dan GPU di kluster.
Konfigurasikan aturan peringatan Prometheus
Buat aturan peringatan untuk menerima notifikasi real-time terkait event tertentu. Anda dapat mengirim notifikasi melalui berbagai saluran, seperti panggilan telepon, email, pesan teks, DingTalk, WeCom, dan webhook, yang membantu Anda mengidentifikasi anomali secara proaktif. Peringatan dialihkan melalui kebijakan notifikasi ke kontak atau grup kontak yang sesuai.
Untuk informasi lebih lanjut tentang cara membuat robot DingTalk, lihat DingTalk Robot.
Untuk informasi lebih lanjut tentang cara membuat robot WeCom, lihat WeCom Robot.
Langkah 1: Buat kontak
-
Masuk ke Konsol ARMS. Di panel navigasi sebelah kiri, pilih .
Di tab Contacts, klik Create Contact.
Di kotak dialog Create Contact, konfigurasikan parameter dan klik Confirm.
Parameter
Deskripsi
Name
Nama kontak.
Phone Number
Memungkinkan kontak menerima notifikasi peringatan melalui panggilan telepon dan pesan teks.
CatatanHanya nomor telepon yang telah diverifikasi yang dapat digunakan untuk notifikasi panggilan telepon dalam kebijakan notifikasi. Untuk mengetahui cara memverifikasi nomor telepon, lihat Verify a phone number.
Email
Memungkinkan kontak menerima notifikasi peringatan melalui email.
PentingAnda dapat membuat hingga 100 kontak.
Langkah 2: Buat aturan peringatan Prometheus
Buat aturan peringatan ambang batas statis
Jenis pemeriksaan ambang batas statis menyediakan metrik yang telah ditentukan sebelumnya. Dengan memilih metrik yang sudah ada, Anda dapat dengan cepat membuat aturan peringatan.
Masuk ke Konsol ARMS.
Di panel navigasi kiri, pilih .
Di halaman Prometheus Alert Rules, klik Create Prometheus Alert Rule.
Di halaman Create Prometheus Alert Rule, konfigurasikan parameter peringatan dan klik Save.
Parameter
Deskripsi
Contoh
Alert Name
Nama peringatan.
prod-cluster-container-cpu-alert
Check Type
Pilih Static threshold.
Static threshold
Prometheus Instance
Pilih instans Prometheus tempat Anda ingin membuat peringatan.
Production Cluster
Alert Group
Pilih grup peringatan.
Tipe Prometheus yang berbeda mendukung grup peringatan yang berbeda. Opsi grup peringatan yang tersedia berubah berdasarkan tipe instans Prometheus yang dipilih.
Kubernetes Workloads
Alert Metric
Pilih metrik yang ingin Anda konfigurasikan peringatannya. Setiap grup peringatan memiliki metrik yang berbeda.
Container CPU utilization
Alert Condition
Tetapkan kondisi yang memicu event peringatan berdasarkan konten yang telah ditentukan dari metrik peringatan.
Kondisi peringatan terpenuhi saat utilisasi CPU Kontainer adalah
greater than80%.Filter Condition
Tentukan cakupan aturan peringatan berdasarkan metrik peringatan. Event peringatan dipicu ketika resource apa pun yang memenuhi kondisi filter memenuhi aturan peringatan.
Kondisi filter berikut tersedia:
Traverse: Aturan peringatan berlaku untuk semua resource di instans Prometheus saat ini. Traverse adalah kondisi filter default.
Equal To: Setelah memilih kondisi ini, masukkan nama resource tertentu. Aturan peringatan hanya berlaku untuk resource tersebut. Anda tidak dapat memasukkan beberapa nama resource.
Not Equal To: Setelah memilih kondisi ini, masukkan nama resource tertentu. Aturan peringatan berlaku untuk semua resource kecuali yang ditentukan. Anda tidak dapat memasukkan beberapa nama resource.
Match Regular Expression: Setelah memilih kondisi ini, masukkan ekspresi reguler untuk mencocokkan nama resource sesuai kebutuhan. Aturan peringatan berlaku untuk semua resource yang cocok dengan ekspresi reguler tersebut.
Do Not Match Regular Expression: Setelah memilih kondisi ini, masukkan ekspresi reguler untuk mencocokkan nama resource sesuai kebutuhan. Aturan peringatan mengecualikan semua resource yang cocok dengan ekspresi reguler tersebut.
CatatanSetelah menetapkan kondisi filter, area Data Preview akan muncul.
Kondisi filter tidak boleh melebihi 300 karakter.
Traverse
Data Preview
Area Data Preview menampilkan pernyataan Prometheus Query Language (PromQL) yang sesuai dengan kondisi peringatan. Area ini juga menampilkan nilai metrik pemantauan sebagai kurva deret waktu.
Secara default, hanya nilai real-time satu resource yang ditampilkan. Anda dapat memilih resource target dan rentang waktu di kotak filter area ini untuk melihat nilai resource dan rentang waktu yang berbeda.
CatatanAmbang batas peringatan ditampilkan sebagai garis lurus merah pada kurva deret waktu. Bagian kurva yang memenuhi ambang batas peringatan ditampilkan dalam warna merah tua, sedangkan bagian yang tidak memenuhi ditampilkan dalam warna biru.
Arahkan kursor ke kurva deret waktu untuk melihat detail resource pada titik waktu tertentu.
Pilih rentang waktu pada kurva deret waktu untuk melihat kurva periode tersebut.
None
Duration
Jika kondisi peringatan terpenuhi, event peringatan dipicu segera: Event peringatan dipicu jika ada titik data yang memenuhi ambang batas.
Event peringatan dipicu hanya setelah kondisi peringatan bertahan selama N menit: Event peringatan dipicu hanya jika durasi ambang batas terpenuhi lebih besar dari atau sama dengan N menit.
Anda tidak dapat mengonfigurasi durasi dalam satuan detik. Ini merupakan keterbatasan produk dan merupakan perilaku yang diharapkan.
1
Alert Level
Sesuaikan tingkat peringatan. Tingkat peringatan default adalah Default. Tingkat keparahan meningkat dari Default, P4, P3, P2, hingga P1.
Default
Alert Content
Informasi peringatan yang diterima pengguna. Anda dapat menggunakan sintaks templat Go untuk menyesuaikan variabel parameter peringatan dalam konten peringatan.
Namespace: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / Container: {{$labels.container}} CPU utilization {{$labels.metrics_params_opt_label_value}} {{$labels.metrics_params_value}}%, Current value: {{ printf "%.2f" $value }}%
Alert Notification
Simple Mode: Anda dapat mengatur Notification Receiver, Notification Period, dan Whether to Resend Notifications.
Standard Mode:
Do not specify a notification policy: Jika Anda memilih opsi ini, setelah membuat aturan peringatan, Anda dapat membuat kebijakan notifikasi baru di halaman Notification Policy dan menentukan aturan pencocokan serta kondisi pencocokan, seperti nama aturan peringatan, untuk mencocokkan aturan peringatan tersebut. Saat aturan peringatan dipicu dan menghasilkan event peringatan, informasi peringatan dikirim ke kontak atau grup kontak yang ditentukan dalam kebijakan notifikasi. Untuk informasi lebih lanjut, lihat Notification policies.
Specify a notification policy: Jika Anda memilih opsi ini, ARMS secara otomatis menambahkan aturan pencocokan ke kebijakan notifikasi yang sesuai. Isi aturan pencocokan adalah ID aturan peringatan, yang ditampilkan sebagai nama aturan peringatan. Hal ini memastikan bahwa event peringatan yang dihasilkan oleh aturan peringatan saat ini dicocokkan oleh kebijakan notifikasi yang dipilih.
PentingMenentukan kebijakan notifikasi secara cepat hanya memastikan bahwa event peringatan dari aturan peringatan saat ini dicocokkan oleh kebijakan notifikasi yang dipilih dan menghasilkan peringatan yang sesuai. Namun, event dari aturan peringatan saat ini juga dapat dicocokkan oleh kebijakan notifikasi lain yang dikonfigurasi dengan pencocokan kabur, yang juga menghasilkan peringatan. Hubungan antara event peringatan dan kebijakan notifikasi adalah pemetaan banyak-ke-banyak.
Do not specify a notification rule
Advanced Settings
Alert Check Interval
Interval sistem memeriksa aturan peringatan untuk menentukan apakah data memenuhi kondisi peringatan. Nilai default adalah 1 menit, dan minimum adalah 1 menit. Bahkan jika Anda memasukkan nilai kurang dari 1 menit, seperti 15 detik, sistem tetap melakukan pemeriksaan setiap 1 menit. Ini merupakan keterbatasan produk dan merupakan perilaku yang diharapkan.
1
Check after data is complete
Yes
No
Yes
Tags
Tetapkan tag untuk peringatan. Tag dapat digunakan sebagai opsi untuk aturan pencocokan kebijakan notifikasi.
None
Annotations
Tetapkan anotasi untuk peringatan.
None
Buat aturan peringatan dengan PromQL kustom
Untuk memantau metrik yang tidak tersedia dalam daftar ambang batas statis, gunakan jenis pemeriksaan PromQL kustom untuk membuat aturan peringatan.
Di halaman Create Prometheus Alert Rule, konfigurasikan parameter peringatan berikut dan klik Save.
Parameter | Deskripsi | Contoh |
Alert Name | Nama peringatan. | Pod CPU usage is greater than 8% |
Check Type | Atur ke Custom PromQL query. | Custom PromQL query |
Prometheus Instance | Pilih instans Prometheus tempat Anda ingin membuat peringatan. | None |
Reference Alert Group | Pilih grup peringatan. Tipe Prometheus yang berbeda mendukung grup peringatan yang berbeda. Opsi grup peringatan yang tersedia berubah berdasarkan tipe instans Prometheus yang dipilih. | Kubernetes Workload |
Reference Alert Metric | Opsional. Metrik referensi menyediakan konfigurasi PromQL kustom untuk metrik umum. Pilih metrik serupa untuk mengisi awal bidang-bidang tersebut. Kemudian, modifikasi konfigurasi sesuai kebutuhan. Parameter Reference Metric secara otomatis memfilter metrik peringatan yang didukung berdasarkan tipe instans Prometheus yang dipilih. | Pod disk usage alert |
Custom PromQL Statement | Gunakan pernyataan PromQL untuk menetapkan ekspresi aturan peringatan. | Namespace: {{$labels.namespace}}/Pod: {{$labels.pod_name}}/Disk device: {{$labels.device}} usage exceeds 90%, current value {{ printf "%.2f" $value }}%max(container_fs_usage_bytes{pod!="", namespace!="arms-prom",namespace!="monitoring"}) by (pod_name, namespace, device)/max(container_fs_limit_bytes{pod!=""}) by (pod_name,namespace, device) * 100 > 90 |
Data Preview | Area Data Preview menampilkan pernyataan Prometheus Query Language (PromQL) yang sesuai dengan kondisi peringatan. Area ini juga menampilkan nilai metrik pemantauan sebagai kurva deret waktu. Secara default, hanya nilai real-time satu resource yang ditampilkan. Anda dapat memilih resource target dan rentang waktu di kotak filter area ini untuk melihat nilai resource dan rentang waktu yang berbeda. Catatan
| None |
Duration |
Mengonfigurasi durasi dalam satuan detik tidak didukung. Ini merupakan keterbatasan produk dan merupakan perilaku yang diharapkan. | 1 |
Alert Level | Sesuaikan tingkat peringatan. Tingkat peringatan default adalah Default. Tingkat keparahan meningkat dari Default, P4, P3, P2, hingga P1. | Default |
Alert Content | Informasi peringatan yang diterima pengguna. Gunakan sintaks templat Go untuk menyesuaikan variabel parameter dalam konten peringatan. Contoh berikut menunjukkan templat untuk peringatan restart pod. Hal ini membantu Anda mengonfigurasi konten notifikasi yang mudah dibaca: Namespace: {{$labels.namespace}}/Pod: {{$labels.pod_name}} restarted more than {{ $labels.metrics_params_value}} times in {{$labels.metrics_params_time}} minutes. Current restarts: {{ $value }} | Namespace: {{$labels.namespace}}/Pod: {{$labels.pod_name}}/Disk device: {{$labels.device}} usage exceeds 90%, current value {{ printf "%.2f" $value }}% |
Alert Notification |
| Do not specify a notification rule |
Advanced Settings | ||
Alert Check Period | Interval, dalam menit, untuk memeriksa aturan peringatan. Nilai minimum adalah 1 menit. Jika Anda memasukkan nilai kurang dari 1 menit, seperti 15 detik, sistem tetap memeriksa setiap 1 menit. Ini merupakan keterbatasan produk dan merupakan perilaku yang diharapkan. | 1 |
Check After Data Is Complete |
| Yes |
Tags | Tetapkan tag untuk peringatan. Tag dapat digunakan sebagai opsi untuk aturan pencocokan kebijakan notifikasi. | None |
Annotations | Tetapkan anotasi untuk peringatan. | None |
FAQ
Bagaimana cara memeriksa versi add-on ack-arms-prometheus?
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Components and Add-ons .
Di halaman Add-ons, klik tab Logs and Monitoring dan temukan add-on ack-arms-prometheus.
Versi saat ini ditampilkan pada kartu komponen. Jika tersedia versi baru, klik Upgrade untuk memperbarui komponen.
CatatanTombol Upgrade hanya ditampilkan jika komponen yang terinstal bukan versi terbaru.
ACK Edge cluster: Bagaimana cara memperoleh data pemantauan?
Dalam skenario komputasi tepi, node tepi biasanya berada di lingkungan pusat data lokal yang relatif terisolasi. Artinya, VPC berbasis cloud dan node tepi beroperasi di jaringan yang terpisah. Agen Prometheus yang ditempatkan di cloud tidak dapat langsung mengakses titik akhir komponen sisi tepi seperti Node Exporter dan GPU Exporter untuk mengumpulkan metrik. Mulai dari versi ack-arms-prometheus 1.1.4, komponen komunikasi O&M cloud-native bawaan Tunnel di ACK Edge cluster memungkinkan ack-arms-prometheus secara otomatis membuat saluran pengumpulan data antara cloud dan tepi.
Mengapa penerapan pemantauan GPU gagal?
Penerapan pemantauan GPU dapat gagal jika node GPU memiliki taint. Untuk mengatasi masalah ini, pertama-tama periksa taint node tersebut.
Jalankan perintah berikut untuk memeriksa taint pada node GPU target.
Jika node GPU memiliki taint kustom, Anda akan menemukan entri terkait. Contoh ini menggunakan taint dengan
keytest-key,valuetest-value, daneffectNoSchedule:kubectl describe node cn-beijing.47.100.***.***Output yang diharapkan:
Taints:test-key=test-value:NoScheduleTangani taint node GPU dengan salah satu dari dua cara berikut:
Jalankan perintah berikut untuk menghapus taint dari node GPU.
kubectl taint node cn-beijing.47.100.***.*** test-key=test-value:NoSchedule-Deklarasikan toleransi terhadap taint agar pod dapat dijadwalkan ke node tersebut.
# 1. Jalankan perintah berikut untuk mengedit DaemonSet ack-prometheus-gpu-exporter. kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter # 2. Tambahkan bidang berikut ke file YAML untuk mendeklarasikan toleransi terhadap taint. # Bidang lain dihilangkan. # Bidang `tolerations` ditambahkan di atas bidang `containers` dan berada pada level yang sama. tolerations: - key: "test-key" operator: "Equal" value: "test-value" effect: "NoSchedule" containers: # Bidang lain dihilangkan.
Bagaimana cara menghapus sepenuhnya resource ARMS-Prometheus?
Hanya menghapus namespace Managed Service for Prometheus akan menyisakan konfigurasi sisa setelah resource dihapus. Hal ini memengaruhi instalasi ulang. Anda dapat melakukan operasi berikut untuk menghapus sepenuhnya dan secara manual konfigurasi sisa ARMS-Prometheus.
Hapus namespace arms-prom.
kubectl delete namespace arms-promHapus ClusterRole.
kubectl delete ClusterRole arms-kube-state-metrics kubectl delete ClusterRole arms-node-exporter kubectl delete ClusterRole arms-prom-ack-arms-prometheus-role kubectl delete ClusterRole arms-prometheus-oper3 kubectl delete ClusterRole arms-prometheus-ack-arms-prometheus-role kubectl delete ClusterRole arms-pilot-prom-k8s kubectl delete ClusterRole gpu-prometheus-exporter kubectl delete ClusterRole o11y:addon-controller:role kubectl delete ClusterRole arms-aliyunserviceroleforarms-clusterroleHapus ClusterRoleBinding.
kubectl delete ClusterRoleBinding arms-node-exporter kubectl delete ClusterRoleBinding arms-prom-ack-arms-prometheus-role-binding kubectl delete ClusterRoleBinding arms-prometheus-oper-bind2 kubectl delete ClusterRoleBinding arms-kube-state-metrics kubectl delete ClusterRoleBinding arms-pilot-prom-k8s kubectl delete ClusterRoleBinding arms-prometheus-ack-arms-prometheus-role-binding kubectl delete ClusterRoleBinding gpu-prometheus-exporter kubectl delete ClusterRoleBinding o11y:addon-controller:rolebinding kubectl delete ClusterRoleBinding arms-kube-state-metrics-agent kubectl delete ClusterRoleBinding arms-node-exporter-agent kubectl delete ClusterRoleBinding arms-aliyunserviceroleforarms-clusterrolebindingHapus Role dan RoleBinding.
kubectl delete Role arms-pilot-prom-spec-ns-k8s kubectl delete Role arms-pilot-prom-spec-ns-k8s -n kube-system kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s -n kube-system
Setelah menghapus resource, kembali ke Konsol ACK, pilih Operations > Add-ons, dan instal ulang add-on ack-arms-prometheus.