Anda dapat melihat dasbor dan metrik kinerja yang telah ditentukan sebelumnya untuk kluster ACK Edge di Managed Service for Prometheus. Topik ini menjelaskan cara menghubungkan Managed Service for Prometheus ke kluster ACK Edge.
Prasyarat
Kluster ACK Edge versi 1.18.8-aliyunedge.1 atau yang lebih baru telah dibuat.
Komponen ack-arms-prometheus versi 1.1.4 atau yang lebih baru telah diinstal di kluster ACK Edge. Jika komponen menggunakan versi yang lebih lama, perbarui ack-arms-prometheus.
Jika kluster Anda menjalankan versi Kubernetes yang lebih lama dari 1.26, pastikan penerusan port diaktifkan untuk port Node Exporter 9100 dan port GPU Exporter 9445 di ConfigMap kluster
kube-system/edge-tunnel-server-cfg. Kode berikut menyediakan detail konfigurasi:http-proxy-ports: 9445 https-proxy-ports: 9100
Pengenalan Managed Service for Prometheus
Managed Service for Prometheus adalah layanan pemantauan terkelola penuh yang terintegrasi dengan ekosistem Prometheus sumber terbuka. Layanan ini memantau berbagai komponen, menyediakan beberapa dasbor siap pakai yang telah ditentukan sebelumnya, serta menawarkan layanan Prometheus terkelola penuh. Dengan menggunakan Managed Service for Prometheus, Anda tidak perlu membangun sistem pemantauan Prometheus atau mengelola penyimpanan data, tampilan data, maupun operasi dan pemeliharaan (O&M) yang mendasarinya.
Kluster ACK Edge mendukung Edisi Dasar Pemantauan Kontainer.
Lihat dasbor Grafana di Managed Service for Prometheus
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, pilih .
CatatanJika ini pertama kalinya Anda masuk, ikuti petunjuk di layar dan klik Install untuk komponen tersebut. Konsol akan secara otomatis menginstal komponen dan memeriksa dasbor. Setelah instalasi selesai, Anda akan diarahkan ke halaman detail Prometheus Monitoring.
Di halaman Prometheus Monitoring, Anda dapat melihat data pemantauan untuk node, aplikasi, dan GPU di kluster pada dasbor yang telah ditentukan sebelumnya.
Konfigurasi aturan peringatan Prometheus
Anda dapat membuat aturan peringatan untuk pekerjaan pemantauan guna menerima notifikasi real-time saat peringatan dipicu. Notifikasi dapat dikirim melalui telepon, email, pesan teks, DingTalk, WeCom, atau webhook, sehingga membantu Anda mengidentifikasi anomali secara proaktif. Saat aturan peringatan dipicu, notifikasi dikirim ke kelompok kontak tertentu. Sebelum membuat kelompok kontak, Anda harus membuat kontak terlebih dahulu. Saat membuat kontak, Anda dapat menentukan nomor ponsel dan alamat email. Anda juga dapat menentukan kelompok penerima dalam kebijakan notifikasi untuk memastikan peringatan dikelola secara tepat waktu.
Untuk informasi selengkapnya tentang cara membuat robot DingTalk, lihat Robot DingTalk.
Untuk informasi selengkapnya tentang cara membuat robot WeCom, lihat Robot WeCom.
Step 1: Create A Contact
Masuk ke Konsol ARMS. Di panel navigasi sebelah kiri, pilih .
Pada tab Contacts, klik Create Contact.
Di kotak dialog Create Contact, konfigurasikan parameter dan klik OK.
Parameter
Deskripsi
Nama
Nama kontak.
Nomor Telepon
Setelah Anda menentukan nomor ponsel kontak, kontak tersebut dapat diberi tahu melalui panggilan telepon dan pesan teks.
CatatanAnda hanya dapat menentukan nomor ponsel yang telah diverifikasi dalam kebijakan notifikasi. Untuk informasi selengkapnya tentang cara memverifikasi nomor ponsel, lihat Verifikasi nomor ponsel.
Email
Setelah Anda menentukan alamat email kontak, kontak tersebut dapat diberi tahu melalui email.
PentingAnda dapat membuat maksimal 100 kontak.
Step 2: Create A Prometheus Alert Rule
Create a Prometheus alert rule based on a static threshold
Jenis pemeriksaan ambang batas statis menyediakan metrik yang telah ditentukan sebelumnya. Anda dapat memilih metrik tersebut dan langsung membuat aturan peringatan.
Masuk ke Konsol ARMS.
Di panel navigasi sebelah kiri, pilih .
Di halaman Prometheus Alert Rules, klik Create Prometheus Alert Rule.
Di halaman Create Prometheus Alert Rule, atur parameter peringatan berikut dan klik Save.
Parameter
Deskripsi
Contoh
Nama Aturan Peringatan
Masukkan nama aturan peringatan.
Peringatan penggunaan CPU kontainer - kluster produksi
Jenis Pemeriksaan
Pilih Ambang Batas Statis.
Ambang Batas Statis
Instans Prometheus
Pilih instans Prometheus.
Kluster produksi
Kelompok Kontak Peringatan
Pilih kelompok kontak peringatan.
Kelompok kontak peringatan yang didukung oleh instans Prometheus bervariasi tergantung jenis instans Prometheus.
Beban Kubernetes
Metrik Peringatan
Pilih metrik. Metrik yang berbeda tersedia untuk kelompok kontak peringatan yang berbeda.
Penggunaan CPU Kontainer
Kondisi Peringatan
Tentukan kondisi yang menjadi dasar pembuatan event peringatan.
Jika penggunaan CPU kontainer
lebih besardari 80%, sebuah event peringatan akan dibuat.Kondisi Filter
Tentukan ruang lingkup yang berlaku untuk aturan peringatan. Jika suatu sumber daya memenuhi kondisi filter dan kondisi peringatan, sebuah event peringatan akan dibuat.
Jenis kondisi filter berikut ini didukung:
Traverse: Aturan peringatan berlaku untuk semua sumber daya dalam instans Prometheus saat ini. Secara default, Traverse dipilih.
Equal: Jika Anda memilih kondisi filter ini, Anda harus memasukkan nama sumber daya. Aturan peringatan hanya berlaku untuk sumber daya yang ditentukan. Anda tidak dapat menentukan beberapa sumber daya sekaligus.
Not Equal: Jika Anda memilih kondisi filter ini, Anda harus memasukkan nama sumber daya. Aturan peringatan berlaku untuk sumber daya selain sumber daya yang ditentukan. Anda tidak dapat menentukan beberapa sumber daya sekaligus.
Regex match: Jika Anda memilih kondisi filter ini, Anda harus memasukkan ekspresi reguler untuk mencocokkan nama sumber daya. Aturan peringatan yang Anda buat menggunakan templat berlaku untuk semua sumber daya yang cocok dengan ekspresi reguler tersebut.
Regex not match: Jika Anda memilih kondisi filter ini, Anda harus memasukkan ekspresi reguler untuk mencocokkan nama sumber daya. Aturan peringatan berlaku untuk sumber daya yang tidak cocok dengan ekspresi reguler tersebut.
CatatanSetelah Anda mengatur kondisi filter, bagian Data Preview akan muncul.
Pastikan panjang kondisi filter tidak melebihi 300 karakter.
Traverse
Pratinjau Data
Data Preview menampilkan pernyataan PromQL yang sesuai dengan kondisi peringatan. Bagian ini juga menampilkan nilai metrik yang ditentukan dalam grafik deret waktu.
Secara default, hanya nilai real-time dari satu sumber daya yang ditampilkan. Anda dapat menentukan kondisi filter untuk melihat nilai metrik dari sumber daya berbeda dalam rentang waktu berbeda.
CatatanAmbang batas dalam grafik deret waktu ditampilkan sebagai garis merah. Bagian kurva yang memenuhi kondisi peringatan ditampilkan dalam warna merah tua, sedangkan bagian kurva yang tidak memenuhi kondisi peringatan ditampilkan dalam warna biru.
Anda dapat mengarahkan penunjuk mouse ke kurva untuk melihat detail sumber daya pada titik waktu tertentu.
Anda juga dapat memilih periode waktu pada kurva deret waktu untuk melihat kurva deret waktu periode waktu yang dipilih.
Tidak ada
Durasi
Jika kondisi peringatan terpenuhi, sebuah event peringatan akan dibuat: Jika satu titik data mencapai ambang batas, sebuah event peringatan akan dibuat.
Jika kondisi peringatan terpenuhi secara terus-menerus selama N menit, sebuah event peringatan akan dibuat: Event peringatan hanya dibuat jika durasi pencapaian ambang batas lebih besar dari atau sama dengan N menit.
1
Tingkat Peringatan
Tentukan tingkat peringatan. Nilai default: Default. Nilai yang valid: Default, P4, P3, P2, dan P1. Default menunjukkan tingkat keparahan terendah, sedangkan P1 menunjukkan tingkat keparahan tertinggi.
Default
Pesan Peringatan
Tentukan pesan peringatan yang ingin Anda kirim kepada pengguna akhir. Anda dapat menentukan variabel kustom dalam pesan peringatan berdasarkan sintaks templat Go.
Namespace: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / Kontainer: {{$labels.container}} Penggunaan CPU: {{$labels.metrics_params_opt_label_value}} {{$labels.metrics_params_value}}%. Nilai saat ini: {{ printf "%.2f" $value }}%
Notifikasi Peringatan
Simple Mode: Anda perlu mengatur Notification Objects, Notification Period, dan Whether to Resend Notifications.
Standard Mode:
Jangan Tentukan Kebijakan Notifikasi: Jika Anda memilih opsi ini, Anda dapat membuat kebijakan notifikasi di halaman Notification Policy setelah membuat aturan peringatan. Di halaman Kebijakan Notifikasi, Anda dapat menentukan aturan pencocokan dan kondisi pencocokan. Misalnya, Anda dapat menentukan nama aturan peringatan sebagai kondisi pencocokan. Saat aturan peringatan dipicu, sebuah event peringatan akan dibuat dan notifikasi peringatan dikirim ke kontak atau kelompok kontak yang ditentukan dalam kebijakan notifikasi. Untuk informasi selengkapnya, lihat Buat dan kelola kebijakan notifikasi.
Anda juga dapat memilih kebijakan notifikasi dari daftar tarik-turun. ARMS secara otomatis menambahkan aturan pencocokan ke kebijakan notifikasi yang dipilih dan menentukan ID aturan peringatan sebagai kondisi pencocokan. Nama aturan peringatan akan ditampilkan di halaman Kebijakan Notifikasi. Dengan cara ini, event peringatan yang dihasilkan berdasarkan aturan peringatan dapat dicocokkan oleh kebijakan notifikasi yang dipilih.
PentingSetelah Anda memilih kebijakan notifikasi, event peringatan yang dihasilkan berdasarkan aturan peringatan dapat dicocokkan oleh kebijakan notifikasi tersebut dan peringatan dapat dibuat. Event peringatan tersebut juga dapat dicocokkan oleh kebijakan notifikasi lain yang menggunakan pencocokan fuzzy, sehingga peringatan dapat dibuat. Satu atau beberapa event peringatan dapat dicocokkan oleh satu atau beberapa kebijakan notifikasi.
Jangan Tentukan Kebijakan Notifikasi
Advanced Settings
Siklus Pemeriksaan Peringatan
Aturan peringatan dipicu setiap N menit untuk memeriksa apakah kondisi peringatan terpenuhi. Nilai default: 1. Nilai minimum: 1.
1
Periksa setelah data lengkap
Ya
Tidak
Ya
Tag
Tentukan tag untuk aturan peringatan. Tag yang ditentukan dapat digunakan untuk mencocokkan kebijakan notifikasi.
Tidak ada
Anotasi
Tentukan anotasi untuk aturan peringatan.
Tidak ada
Create a Prometheus alert rule using a custom PromQL statement
Untuk memantau metrik yang tidak ditentukan sebelumnya dalam pemeriksaan ambang batas statis, Anda dapat menggunakan jenis pemeriksaan PromQL kustom untuk membuat aturan peringatan.
Di halaman Create Prometheus Alert Rule, atur parameter peringatan berikut dan klik Save.
Parameter | Deskripsi | Contoh |
Nama Aturan Peringatan | Masukkan nama aturan peringatan. | Penggunaan CPU Pod melebihi 8% |
Jenis Pemeriksaan | Pilih PromQL Kustom. | PromQL Kustom |
Instans Prometheus | Pilih instans Prometheus. | Tidak ada |
Kelompok Kontak Peringatan Referensi | Pilih kelompok kontak peringatan. Kelompok kontak peringatan yang didukung oleh instans Prometheus bervariasi tergantung jenis instans Prometheus. | Beban Kubernetes |
Metrik Referensi | Opsional. Daftar tarik-turun Metrik Referensi menampilkan metrik umum. Setelah Anda memilih metrik, pernyataan PromQL metrik tersebut akan ditampilkan di kolom Pernyataan PromQL Kustom. Anda dapat memodifikasi pernyataan tersebut sesuai kebutuhan bisnis Anda. Nilai dalam daftar tarik-turun Metrik Referensi bervariasi tergantung jenis instans Prometheus. | Peringatan penggunaan disk Pod |
Pernyataan PromQL Kustom | Masukkan pernyataan PromQL. | Namespace: {{$labels.namespace}}/Pod: {{$labels.pod_name}} / Penggunaan disk {{$labels.device}} melebihi 90%. Nilai saat ini: {{ 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 |
Pratinjau Data | Data Preview menampilkan pernyataan PromQL yang sesuai dengan kondisi peringatan. Bagian ini juga menampilkan nilai metrik yang ditentukan dalam grafik deret waktu. Secara default, hanya nilai real-time dari satu sumber daya yang ditampilkan. Anda dapat menentukan kondisi filter untuk melihat nilai metrik dari sumber daya berbeda dalam rentang waktu berbeda. Catatan
| Tidak ada |
Durasi |
| 1 |
Tingkat Peringatan | Tentukan tingkat peringatan. Nilai default: Default. Nilai yang valid: Default, P4, P3, P2, dan P1. Default menunjukkan tingkat keparahan terendah, sedangkan P1 menunjukkan tingkat keparahan tertinggi. | Default |
Pesan Peringatan | Tentukan pesan peringatan yang ingin Anda kirim kepada pengguna akhir. Anda dapat menentukan variabel kustom dalam pesan peringatan berdasarkan sintaks templat Go. | Namespace: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / Penggunaan disk {{$labels.device}} melebihi 90%. Nilai saat ini: {{ printf "%.2f" $value }}% |
Notifikasi Peringatan |
| Jangan Tentukan Kebijakan Notifikasi |
Pengaturan Lanjutan | ||
Siklus Pemeriksaan Peringatan | Aturan peringatan dipicu setiap N menit untuk memeriksa apakah kondisi peringatan terpenuhi. Nilai default: 1. Nilai minimum: 1. | 1 |
Periksa setelah data lengkap |
| Ya |
Tag | Tentukan tag untuk aturan peringatan. Tag yang ditentukan dapat digunakan untuk mencocokkan kebijakan notifikasi. | Tidak ada |
Anotasi | Tentukan anotasi untuk aturan peringatan. | Tidak ada |
FAQ
How Do I Check The Version Of The Ack-arms-prometheus Component?
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, klik Add-ons.
Di halaman Add-ons, klik tab Logs and Monitoring dan temukan komponen ack-arms-prometheus.
Nomor versi ditampilkan pada kartu komponen. Jika tersedia versi baru, klik Upgrade untuk memperbarui komponen.
CatatanTombol Upgrade hanya ditampilkan jika komponen bukan versi terbaru.
How is monitoring data collected from ACK Edge clusters?
Dalam skenario komputasi tepi, node tepi ditempatkan di pusat data offline. Oleh karena itu, virtual private cloud (VPC) di cloud dan node tepi berada pada bidang jaringan yang berbeda. Agen Prometheus yang ditempatkan di cloud tidak dapat mengakses titik akhir Node Exporter dan GPU Exporter untuk mengumpulkan metrik pemantauan. Mulai dari versi ack-arms-prometheus 1.1.4, dengan bantuan komponen komunikasi O&M cloud-native Tunnel bawaan di kluster ACK Edge, ack-arms-prometheus dapat secara otomatis membuat tautan untuk mengumpulkan data pemantauan antara cloud dan tepi.
Why Cannot GPU Monitoring Be Deployed?
Jika node GPU memiliki taint, penerapan pemantauan GPU mungkin gagal. Anda dapat melakukan langkah-langkah berikut untuk melihat taint pada node GPU.
Jalankan perintah berikut untuk melihat taint pada node GPU target.
Jika node GPU memiliki taint khusus, Anda dapat menemukan entri terkait taint tersebut. Topik ini menggunakan taint dengan
keytest-key,valuetest-value, daneffectNoSchedulesebagai contoh:kubectl describe node cn-beijing.47.100.***.***Output yang diharapkan:
Taints:test-key=test-value:NoScheduleTangani taint pada node GPU dengan salah satu 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 pada node GPU agar pod dapat dijadwalkan ke node yang memiliki taint tersebut.
# 1. Jalankan perintah berikut untuk mengedit ack-prometheus-gpu-exporter. kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter # 2. Tambahkan field berikut ke file YAML untuk mendeklarasikan toleransi terhadap taint. # Field lainnya dihilangkan. # Field tolerations ditambahkan di atas field containers dan berada pada level yang sama dengan field containers. tolerations: - key: "test-key" operator: "Equal" value: "test-value" effect: "NoSchedule" containers: # Field lainnya dihilangkan.
Cara menghapus sepenuhnya konfigurasi ARMS-Prometheus jika penghapusan manual menyebabkan kegagalan instalasi ulang
Jika Anda hanya menghapus namespace Managed Service for Prometheus, konfigurasi sisa akan tetap ada, yang dapat menyebabkan kegagalan instalasi ulang. Lakukan langkah-langkah berikut untuk menghapus sepenuhnya 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 secara manual sumber daya ARMS-Prometheus, buka Konsol Container Service, pilih Operations > Add-ons, lalu instal ulang komponen ack-arms-prometheus.