All Products
Search
Document Center

Container Service for Kubernetes:Pantau kluster ACK dengan Prometheus open-source

Last Updated:Jun 18, 2026

Prometheus adalah alat pemantauan open-source untuk aplikasi cloud-native. Topik ini menjelaskan cara men-deploy Prometheus pada kluster ACK.

Latar Belakang

Topik ini membahas cara memantau komponen sistem dan entitas sumber daya dalam kluster Kubernetes. Target pemantauan terbagi menjadi dua kategori:

  • Pemantauan sumber daya: Melacak penggunaan sumber daya node, kluster, dan Pod.

  • Pemantauan aplikasi: Melacak metrik internal aplikasi seperti jumlah pengguna real-time. Ekspos port untuk mengaktifkan pemantauan dan peringatan tingkat aplikasi.

Target pemantauan meliputi:

  • Komponen sistem: Komponen Kubernetes bawaan seperti API Server, cloud-controller-manager, dan etcd. Konfigurasikan pemantauan di file konfigurasi masing-masing.

  • Entitas sumber daya statis: Sumber daya seperti status node dan event kernel. Tentukan dalam file konfigurasi untuk mengaktifkan pemantauan.

  • Entitas sumber daya dinamis: Objek workload Kubernetes seperti Deployment, DaemonSet, dan Pod. Deploy Prometheus untuk memantaunya.

  • Aplikasi kustom: Ekspos port dan gunakan Prometheus untuk mengumpulkan metrik kustom dari aplikasi Anda.

Langkah 1: Deploy Prometheus open source

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Applications > Helm.

  3. Di halaman Helm, klik Deploy. Di bagian Chart, cari dan pilih ack-prometheus-operator, pertahankan pengaturan default, lalu klik Next.

    • Komponen diinstal di namespace monitoring secara default, sesuai dengan nama komponen tersebut.

    • Sesuaikan nama aplikasi dan namespace sesuai kebutuhan.

  4. Di halaman Parameters, pilih versi Chart 12.0.0, atur parameter yang diperlukan, lalu klik OK.

    Versi 12.0.0 mendukung konfigurasi alert dengan fitur bawaan.

    Parameter opsional:

    Setelah instalasi, periksa status komponen di daftar chart Helm pada halaman Helm.

Langkah 2: Lihat tugas koleksi Prometheus

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Network > Services.

  3. Di halaman Services, pilih namespace monitoring tempat ack-prometheus-operator di-deploy. Di kolom Actions untuk ack-prometheus-operator-prometheus, klik Update.

  4. Di kotak dialog, atur Type ke LoadBalancer. Pilih Create Resource, atur Access Method ke Public Access, dan atur Billing Method ke Pay-as-you-go (Pay-by-CU). Klik OK.

    Lihat Ikhtisar Penagihan CLB.
  5. Setelah pembaruan, salin alamat IP eksternal. Buka UI Prometheus di <external_IP_address>:9090, misalnya, 47.XX.XX.12:9090.

  6. Di UI Prometheus, navigasikan ke untuk melihat semua tugas pengumpulan data.

    Jika semua tugas menampilkan UP, pengumpulan data berjalan dengan benar.

    image

  7. Di bilah menu, klik Alerts untuk melihat aturan alert saat ini.

    Alerts

Langkah 3: Lihat data agregat di Grafana

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Network > Services.

  3. Di halaman Services, pilih namespace tempat ack-prometheus-operator di-deploy (default: monitoring). Klik Update di kolom Actions untuk Service bernama ack-prometheus-operator-grafana.

  4. Di kotak dialog, atur Type ke LoadBalancer. Pilih Create Resource, atur Access Method ke Public Access, dan atur Billing Method ke Pay-as-you-go (Pay-by-CU). Klik OK.

    Lihat Ikhtisar Penagihan CLB.
  5. Setelah pembaruan, salin alamat IP eksternal. Buka dasbor Grafana di <external_IP_address> (port default: 80), misalnya, 47.XX.XX.12.

    Dashboard

Konfigurasi alert

Komponen ack-prometheus-operator mendukung alert DingTalk dan email.

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Applications > Helm.

  3. Klik Create, temukan ack-prometheus-operator, lalu lanjutkan ke langkah Next. Di halaman Parameters, pilih versi Chart dan konfigurasikan parameter seperti dijelaskan di bawah.

    Jika ack-prometheus-operator sudah terinstal, klik namanya di daftar chart Helm, lalu klik Parameters untuk memperbarui konfigurasi.

Konfigurasi alert DingTalk

  1. Di file konfigurasi, temukan field dingtalk dan atur enabled ke true.

  2. Di field token, masukkan URL webhook DingTalk.

    Lihat Gunakan Chatbot DingTalk untuk Pemantauan dan Peringatan Kubernetes untuk URL webhook.
  3. Di field konfigurasi alertmanager config, temukan konfigurasi receiver dan masukkan nama alert DingTalk yang ditentukan di receivers. Nama default adalah webhook.

    Contoh: Konfigurasi beberapa chatbot DingTalk

    Jika Anda memiliki dua chatbot DingTalk, ikuti langkah-langkah berikut:

    1. Ganti konfigurasi token DingTalk.

      Di pengaturan chatbot DingTalk, ganti URL webhook dengan alamat untuk dingtalk1 dan dingtalk2. Ganti https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxx pada gambar dengan URL webhook aktual Anda.

      Token configuration

    2. Modifikasi receivers.

      Di field alertmanager config, temukan receiver dan masukkan nama alert DingTalk yang sesuai dari konfigurasi receivers Anda. Dalam contoh ini, nama-namanya adalah webhook1 dan webhook2.

    3. Modifikasi nilai URL.

      Ganti nilai di URL dengan nama webhook DingTalk yang sesuai. Dalam contoh ini, nama-namanya adalah dingtalk1 dan dingtalk2.

      Webhook configuration

    Catatan

    Untuk menambahkan lebih banyak chatbot DingTalk, tambahkan setiap konfigurasi webhook secara berurutan.

Konfigurasi alert email

  1. Masukkan detail email di bagian yang disorot.

  2. Di field alertmanager config, temukan receiver dan masukkan nama alert email yang ditentukan di receivers. Nama default adalah mail.

Email alerts

Templat penerima alert

Sesuaikan templat alert di bagian templateFiles pada konfigurasi alertmanager.Template settings

Mount ConfigMap kustom ke Prometheus

Gunakan ConfigMap bernama special-config untuk mount file konfigurasi dan tentukan sebagai parameter --config.file saat startup Pod.

  1. Buat ConfigMap.

    Perluas untuk melihat contoh ConfigMap

    1743645540037_107960FD-B9BA-4aa1-8001-7A97ECCE8A65

  2. Mount ConfigMap.

    Di halaman Parameters, tambahkan berikut ini ke field configmaps untuk mount ConfigMap ke /etc/prometheus/configmaps/ di Pod Prometheus.

    Update configuration

    Contoh konfigurasi prometheus configmaps:

    39d5cfa9988ab47202e9a160bb890c17

Konfigurasi Grafana

Memasang file dasbor ke Grafana

Untuk mount ConfigMap dashboard ke Pod Grafana, gunakan field extraConfigmapMounts di wizard Parameters.Dashboard mount configuration Pastikan bahwa:

  • Dashboard tersebut ada sebagai ConfigMap di kluster, dan label-nya sesuai dengan format ConfigMap lainnya.

  • Field extraConfigmapMounts dalam konfigurasi Grafana mencakup ConfigMap dashboard dan informasi mount-nya.

    • mountPath: Atur ke /tmp/dashboards/.

    • ConfigMap: Nama ConfigMap kustom Anda.

    • name: Nama file JSON dashboard.

Aktifkan persistensi dashboard

Ekspor dashboard sebagai file JSON untuk backup. Lihat Ekspor Grafana.

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Applications > Helm.

  3. Temukan ack-prometheus-operator dan klik Update. Di field grafana, konfigurasikan opsi persistence seperti di bawah ini.

    Grafana persistence

Operasi terkait

Hapus Instalan Prometheus Sumber Terbuka

Untuk mencegah sisa resource, ikuti prosedur sesuai versi chart Helm Anda. Bersihkan secara manual rilis Helm, namespace, CRD, dan Service kubelet.

Service kubelet tidak dihapus otomatis saat uninstal — masalah umum di komunitas (#1523). Hapus secara manual seperti dijelaskan di bawah.

Chart v12.0.0

Konsol

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda dan lakukan operasi berikut dari panel navigasi kiri.

    • Uninstal rilis Helm: Pilih Applications > Helm. Di daftar rilis Helm, temukan entri ack-prometheus-operator, klik Delete di kolom Actions, lalu selesaikan penghapusan. Hapus catatan rilis.

    • Hapus namespace: Klik Namespaces and Quotas. Di daftar namespace, temukan dan pilih monitoring, lalu hapus.

    • Hapus CustomResourceDefinitions (CRD): Navigasi ke Workloads > Custom Resources dan klik tab CRDs. Hapus semua resource CRD di bawah grup API monitoring.coreos.com:

      • AlertmanagerConfig

      • Alertmanager

      • PodMonitor

      • Probe

      • Prometheus

      • PrometheusRule

      • ServiceMonitor

      • ThanosRuler

    • Hapus Service kubelet: Pilih Network > Services. Temukan dan hapus ack-prometheus-operator-kubelet di namespace kube-system.

Kubectl

  • Uninstal rilis Helm

    helm uninstall ack-prometheus-operator -n monitoring
  • Hapus namespace

    kubectl delete namespace monitoring
  • Hapus CRD

    kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
    kubectl delete crd alertmanagers.monitoring.coreos.com
    kubectl delete crd podmonitors.monitoring.coreos.com
    kubectl delete crd probes.monitoring.coreos.com
    kubectl delete crd prometheuses.monitoring.coreos.com
    kubectl delete crd prometheusrules.monitoring.coreos.com
    kubectl delete crd servicemonitors.monitoring.coreos.com
    kubectl delete crd thanosrulers.monitoring.coreos.com
  • Hapus Service kubelet

    kubectl delete service ack-prometheus-operator-kubelet -n kube-system

Chart v65.1.1

Konsol

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda dan lakukan operasi berikut dari panel navigasi kiri.

    • Uninstal rilis Helm: Pilih Applications > Helm. Di daftar rilis Helm, temukan entri ack-prometheus-operator, klik Delete di kolom Actions, lalu selesaikan penghapusan. Hapus catatan rilis.

    • Hapus namespace: Klik Namespaces and Quotas. Di daftar namespace, temukan dan pilih monitoring, lalu hapus.

    • Hapus CustomResourceDefinitions (CRD): Navigasi ke Workloads > Custom Resources dan klik tab CRDs. Hapus semua resource CRD di bawah grup API monitoring.coreos.com:

      • AlertmanagerConfig

      • Alertmanager

      • PodMonitor

      • Probe

      • PrometheusAgent

      • Prometheus

      • PrometheusRule

      • ScrapeConfig

      • ServiceMonitor

      • ThanosRuler

    • Hapus Service kubelet: Pilih Network > Services. Temukan dan hapus ack-prometheus-operator-kubelet di namespace kube-system.

Kubectl

  • Uninstal rilis Helm

    helm uninstall ack-prometheus-operator -n monitoring
  • Hapus namespace

    kubectl delete namespace monitoring
  • Hapus CRD

    kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
    kubectl delete crd alertmanagers.monitoring.coreos.com
    kubectl delete crd podmonitors.monitoring.coreos.com
    kubectl delete crd probes.monitoring.coreos.com
    kubectl delete crd prometheusagents.monitoring.coreos.com
    kubectl delete crd prometheuses.monitoring.coreos.com
    kubectl delete crd prometheusrules.monitoring.coreos.com
    kubectl delete crd scrapeconfigs.monitoring.coreos.com
    kubectl delete crd servicemonitors.monitoring.coreos.com
    kubectl delete crd thanosrulers.monitoring.coreos.com
  • Hapus Service kubelet

    kubectl delete service ack-prometheus-operator-kubelet -n kube-system

Konfigurasi penonaktifan alert

Aturan penonaktifan menekan notifikasi alert yang sesuai hingga periode penonaktifan berakhir atau aturan tersebut dihapus.

  1. Ekspos Alertmanager di port lokal 9093:

    kubectl --address 0.0.0.0 port-forward svc/alertmanager-operated 9093 -n monitoring
  2. Asosiasikan alamat Elastic IP (EIP) dengan instans ECS Anda, lalu akses Alertmanager di <EIP>:9093.

    Pastikan security group mengizinkan traffic dari IP lokal Anda pada port 9093. Lihat Tambahkan Aturan Security Group.
  3. Klik Silence untuk mengonfigurasi penonaktifan alert.

    image

FAQ

Tidak menerima alert setelah konfigurasi DingTalk

  1. Dapatkan URL webhook untuk chatbot DingTalk Anda. Lihat Pemantauan Event.

  2. Temukan field dingtalk, atur enabled ke true, dan masukkan URL webhook DingTalk di field Token. Lihat Konfigurasi alert DingTalk di Konfigurasi alert.

Error saat men-deploy prometheus-operator

Pesan error berikut dilaporkan:

Can't install release with errors: rpc error: code = Unknown desc = object is being deleted: customresourcedefinitions.apiextensions.k8s.io "xxxxxxxx.monitoring.coreos.com" already exists

Error ini terjadi karena CRD dari deployment sebelumnya tidak dibersihkan. Hapus CRD tersebut dan deploy ulang komponen:

kubectl delete crd prometheuses.monitoring.coreos.com
kubectl delete crd prometheusrules.monitoring.coreos.com
kubectl delete crd servicemonitors.monitoring.coreos.com
kubectl delete crd alertmanagers.monitoring.coreos.com

Alert email tidak berfungsi

Alert email dapat gagal jika Anda memasukkan password login untuk smtp_auth_password alih-alih kode otorisasi. Alamat server SMTP harus menyertakan nomor port.

Terjadi error saat mengklik YAML Update: Kluster saat ini sementara tidak tersedia. Silakan coba lagi nanti.

Hal ini terjadi ketika file konfigurasi Tiller terlalu besar sehingga membuat kluster tidak dapat diakses. Kurangi ukuran file dengan menghapus komentar dan mount sebagai ConfigMap. prometheus-operator hanya mendukung mounting ConfigMap untuk Pod prometheus dan alertmanager. Lihat Mount ConfigMap kustom ke Prometheus.

Aktifkan fitur setelah deployment

Aktifkan fitur setelah men-deploy prometheus-operator. Di halaman detail kluster, pilih Applications > Helm. Temukan ack-prometheus-operator dan klik Update di kolom Actions. Temukan fitur yang akan diaktifkan, konfigurasikan, lalu klik OK.

Pilih antara TSDB dan disk Alibaba Cloud

TSDB tersedia di lebih sedikit wilayah dibandingkan disk Alibaba Cloud. Kebijakan retensi data:Data retention policy

Masalah tampilan dasbor Grafana

Di halaman detail kluster, pilih Applications > Helm. Temukan ack-prometheus-operator dan klik Update di kolom Actions. Verifikasi bahwa clusterVersion sesuai dengan versi kluster Anda. Untuk kluster sebelum v1.16, masukkan 1.14.8-aliyun.1. Untuk v1.16 atau lebih baru, masukkan 1.16.6-aliyun.1.

Instalasi ulang gagal setelah menghapus namespace

Menghapus hanya namespace dapat meninggalkan konfigurasi sisa. Bersihkan resource berikut:

  1. Hapus izin RBAC.

    1. Hapus ClusterRole.

      kubectl delete ClusterRole ack-prometheus-operator-grafana-clusterrole
      kubectl delete ClusterRole ack-prometheus-operator-kube-state-metrics
      kubectl delete ClusterRole psp-ack-prometheus-operator-kube-state-metrics
      kubectl delete ClusterRole psp-ack-prometheus-operator-prometheus-node-exporter
      kubectl delete ClusterRole ack-prometheus-operator-operator
      kubectl delete ClusterRole ack-prometheus-operator-operator-psp
      kubectl delete ClusterRole ack-prometheus-operator-prometheus
      kubectl delete ClusterRole ack-prometheus-operator-prometheus-psp
    2. Hapus ClusterRoleBinding.

      kubectl delete ClusterRoleBinding ack-prometheus-operator-grafana-clusterrolebinding
      kubectl delete ClusterRoleBinding ack-prometheus-operator-kube-state-metrics
      kubectl delete ClusterRoleBinding psp-ack-prometheus-operator-kube-state-metrics
      kubectl delete ClusterRoleBinding psp-ack-prometheus-operator-prometheus-node-exporter
      kubectl delete ClusterRoleBinding ack-prometheus-operator-operator
      kubectl delete ClusterRoleBinding ack-prometheus-operator-operator-psp
      kubectl delete ClusterRoleBinding ack-prometheus-operator-prometheus
      kubectl delete ClusterRoleBinding ack-prometheus-operator-prometheus-psp
  2. Hapus CRD.

    kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
    kubectl delete crd alertmanagers.monitoring.coreos.com
    kubectl delete crd podmonitors.monitoring.coreos.com
    kubectl delete crd probes.monitoring.coreos.com
    kubectl delete crd prometheuses.monitoring.coreos.com
    kubectl delete crd prometheusrules.monitoring.coreos.com
    kubectl delete crd servicemonitors.monitoring.coreos.com
    kubectl delete crd thanosrulers.monitoring.coreos.com