Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Configure alert rules with Prometheus

Son Güncelleme:Oct 15, 2026

Küme düğümlerini, ana bilgisayarları, konteyner çoğaltmalarını ve iş yüklerini izlemek için özel PromQL uyarı kuralları yazın.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

Özel PromQL ile uyarı kurallarını yapılandırma

Hem Alibaba Cloud Prometheus hem de açık kaynak Prometheus, koşullar karşılandığında bildirimleri tetikleyen özel PromQL tabanlı uyarı kurallarını destekler.

Alibaba Cloud Prometheus

Özel PromQL kullanarak bir Prometheus uyarı kuralı oluşturmak için bkz. Create a Prometheus alert rule.

Open source Prometheus

  1. Bir uyarı bildirim ilkesi yapılandırın. Açık kaynak Prometheus; Webhook'ları, DingTalk ve e-postayı destekler. Bildirim yöntemini ack-prometheus-operator içindeki receiver parametresi aracılığıyla ayarlayın. Bkz. Alerting configuration.

  2. Bir uyarı kuralı oluşturun. Kümede uyarı kurallarını tanımlamak için bir PrometheusRule CRD dağıtın (bkz. Deploying Prometheus rules). Aşağıdaki örnek, düğüm CPU kullanımı 2 dakikalık bir pencerede %90'ı aştığında tetiklenir. expr alanı PromQL ifadesini ve tetikleme koşulunu belirtir.

    apiVersion: monitoring.coreos.com/v1
    kind: PrometheusRule
    metadata:
      labels:
        # Labels must match ruleSelector.matchLabels in the Prometheus CRD.
        prometheus: example
        role: alert-rules
      name: prometheus-example-rules
    spec:
      groups:
      - name: example.rules
        rules:
        - alert: ExampleAlert
          # expr: PromQL query and trigger condition.
          # Refer to the PromQL configuration column in the alert rule tables below.
          expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 90
  3. Uyarı kuralının etkin olduğunu doğrulayın.

    1. Prometheus hizmetini yerel makinenizdeki 9090 bağlantı noktasına yönlendirmek için aşağıdaki komutu çalıştırın: kubectl port-forward svc/ack-prometheus-operator-prometheus 9090:9090 -n monitoring

    2. Tarayıcınızda localhost:9090 adresini açın.

    3. Status > Rules seçeneğini belirleyin. Uyarı kuralı Rules sayfasında görünüyorsa kural etkindir.

Uyarı kuralı başvurusu

ACK, O&M deneyimine dayalı olarak önerilen uyarı kuralları sağlar; bu kurallar küme kararlılığını, düğüm ve ana bilgisayar kaynak kullanımını, konteyner çoğaltmalarını, iş yüklerini, depolamayı ve ağ iletişimini kapsar.

Önem düzeyleri:

  • Critical: Kümeyi, uygulamayı veya iş süreçlerini etkiler. Acil eylem gerektirir.

  • Warning: Kümeyi, uygulamayı veya iş süreçlerini etkiler. Derhal araştırılmalıdır.

  • Normal: Önemli bir özellik değişikliğini gösterir.

Giriş noktası olarak Rule description sütunu, Alert Rules sekmesini ve Alerts sayfasını kullanır. Erişmek için: ACK console üzerinde oturum açın, Clusters listesinde kümenizi tıklayın, ardından Operations > Alerts > Alert Rules seçeneğini belirleyin.

Anormal konteyner çoğaltmaları

Description Severity PromQL Threshold Window Rule description Common troubleshooting
Anormal pod durumu Critical min_over_time(sum by (namespace, pod, phase) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"})[5m:1m]) > 0 > 0 5 min Bir pod 5 dakika boyunca Pending, Unknown veya Failed durumunda kaldığında tetiklenir. Alert Rule Set for Pod Exceptions > Pod anomaly yoluyla yapılandırın. Bkz. Manage alerts in ACK. Bkz. Troubleshoot pod exceptions.
Pod başlatma hatası Critical sum_over_time(increase(kube_pod_container_status_restarts_total{}[1m])[5m:1m]) > 3 > 3 restarts 5 min Bir pod 5 dakika içinde 3 defadan fazla yeniden başlatıldığında tetiklenir. Alert Rule Set for Pod Exceptions > Pod startup failures yoluyla yapılandırın. Bkz. Manage alerts in ACK. Bkz. Troubleshoot pod exceptions.
10 dakika boyunca sürekli olarak 1.000'den fazla pod zamanlanamadı Critical count((min_over_time(kube_pod_status_phase{phase="Pending"}[10m]) == 1) and (count_over_time(kube_pod_status_phase{phase="Pending"}[10m:15s]) >= (10 * 4 - 1))) > 1000 > 1,000 pods 10 min Zamanlama hataları nedeniyle 1.000'den fazla pod 10 dakikadan uzun süre Pending durumunda kaldığında tetiklenir. Aşırı zamanlama baskısını gösterebilir. ACK Pro Edition, geliştirilmiş zamanlama ve bir SLA sağlar. Bkz. Overview of ACK managed cluster Pro Edition.
Sık konteyner CPU kısıtlaması Warning rate(container_cpu_cfs_throttled_seconds_total[3m]) * 100 > 25 > %25 throttled time 3 min 3 dakika içinde kısıtlanan CPU süresi %25'i aştığında tetiklenir. Kısıtlama, zaman dilimlerini azaltarak işlem çalışma süresini artırır ve uygulama mantığını yavaşlatır. Pod CPU resource limit değerinin çok düşük olup olmadığını kontrol edin. CPU Burst policy ile kısıtlamayı azaltın. Çok çekirdekli düğümlerde, parçalı CPU kaynaklarını en üst düzeye çıkarmak için CPU topology-aware scheduling kullanın.
Pod CPU kullanımı sınırın %85'inden yüksek Warning (sum(irate(container_cpu_usage_seconds_total{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}[1m])) by (namespace,pod) / sum(container_spec_cpu_quota{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}/100000) by (namespace,pod) * 100 <= 100 or on() vector(0)) >= 85 >= pod sınırının %85'i 1 min Pod CPU'su sınırının %85'ini aştığında tetiklenir. Yapılandırılmış bir sınır yoksa etkisi yoktur. Varsayılan eşik: %85 — ihtiyaca göre ayarlayın. Filtrelemek için pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*" ifadelerini gerçek değerlerle değiştirin; tüm pod'ları sorgulamak için filtreyi kaldırın. Yüksek CPU kullanımı kısıtlamalara neden olur ve zaman dilimlerini azaltır. CPU resource limit değerinin çok düşük olup olmadığını kontrol edin. Bkz. Enable the CPU Burst policy ve Enable CPU topology-aware scheduling.
Pod bellek kullanımı sınırın %85'inden yüksek Warning ((sum(container_memory_working_set_bytes{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}) by (pod,namespace) / sum(container_spec_memory_limit_bytes{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}) by (pod, namespace) * 100) <= 100 or on() vector(0)) >= 85 >= pod sınırının %85'i — Pod belleği sınırının %85'ini aştığında tetiklenir. Yapılandırılmış bir sınır yoksa etkisi yoktur. Varsayılan eşik: %85 — ihtiyaca göre ayarlayın. Yüksek bellek kullanımı OOM sonlandırmalarını ve pod yeniden başlatmalarını tetikleyebilir. Bellek resource limit değerinin çok düşük olup olmadığını kontrol edin. Resource profiling ile sınırları doğru boyutlandırın.

Anormal iş yükleri

Description Severity PromQL Threshold Window Rule description Common troubleshooting
Deployment çoğaltma uyumsuzluğu Critical kube_deployment_spec_replicas{} != kube_deployment_status_replicas_available{} Any mismatch — Kullanılabilir Deployment çoğaltmaları istenen sayıyla eşleşmediğinde tetiklenir. Alert Rule Set for Workload Exceptions > Deployment pod anomaly yoluyla yapılandırın. Bkz. Manage alerts in ACK. Bkz. Troubleshoot pod exceptions.
DaemonSet çoğaltma uyumsuzluğu Critical ((100 - kube_daemonset_status_number_ready{} / kube_daemonset_status_desired_number_scheduled{} * 100) or (kube_daemonset_status_desired_number_scheduled{} - kube_daemonset_status_current_number_scheduled{})) > 0 > 0 — Kullanılabilir DaemonSet çoğaltmaları istenen sayıyla eşleşmediğinde tetiklenir. Alert Rule Set for Workload Exceptions > DaemonSet pod anomaly yoluyla yapılandırın. Bkz. Manage alerts in ACK. Bkz. Troubleshoot pod exceptions.
DaemonSet zamanlama hatası Critical kube_daemonset_status_number_misscheduled{job} > 0 > 0 — Bir DaemonSet çoğaltması yanlış bir düğümde çalıştığında tetiklenir. Alert Rule Set for Workload Exceptions > DaemonSet pod scheduling errors yoluyla yapılandırın. Bkz. Manage alerts in ACK. Bkz. Troubleshoot pod exceptions.
Job başarısız oldu Critical kube_job_status_failed{} > 0 > 0 — Bir Job başarısız olduğunda tetiklenir. Alert Rule Set for Workload Exceptions > Job execution failures yoluyla yapılandırın. Bkz. Manage alerts in ACK. Hata ayrıntıları için başarısız pod günlüklerini kontrol edin. Bkz. Troubleshoot pod exceptions.

Depolama istisnaları

Description Severity PromQL Threshold Window Rule description Common troubleshooting
PersistentVolume (PV) durumu anormal Critical kube_persistentvolume_status_phase{phase=~"Failed|Pending"} > 0 > 0 — Bir PV Failed veya Pending durumuna geçtiğinde tetiklenir. Alert Rule Set for Storage Exceptions > PV anomaly yoluyla yapılandırın. Bkz. Manage alerts in ACK. Disk takma bölümüne bakın FAQ about disk PVs.
Ana bilgisayar disk kullanımı > %85 Critical (100 - node_filesystem_avail_bytes / node_filesystem_size_bytes * 100) >= 85 >= %85 — Düğüm disk boş alanı %15'in altına düştüğünde tetiklenir. Alert Rule Set for Resource Exceptions > Node - Disk usage >= 85% yoluyla yapılandırın. Bkz. Manage alerts in ACK. Düğümü ölçeklendirin veya diski genişletin. Bkz. FAQ about disk PVs.

Anormal düğüm durumu

Description Severity PromQL Threshold Window Rule description Common troubleshooting
Düğüm 3 dakika boyunca NotReady durumunda Critical (sum(max_over_time(kube_node_status_condition{condition="Ready",status="true"}[3m]) <= 0) by (node)) or (absent(kube_node_status_condition{condition="Ready",status="true"})) > 0 > 0 3 min Bir düğüm 3 dakika boyunca NotReady durumunda kaldığında tetiklenir. Alert Rule Set for Node Exceptions > Node changes to the unschedulable state yoluyla yapılandırın. Bkz. Manage alerts in ACK. NotReady durumunun beklenen olup olmadığını belirleyin (örneğin, düğüm değişimi veya bakım). Beklenmiyorsa, uygulama pod'larının etkilenip etkilenmediğini kontrol edin ve gerekirse tahliye edin. Bellek baskısı veya dolu disk gibi nedenler için düğüm koşullarını kontrol edin.

Anormal ana bilgisayar kaynak kullanımı

Ana bilgisayar kaynak ölçümleri, fiziksel veya sanal makine kaynaklarını ölçer. Kullanım = tüm işlemlerin kaynak kullanımı / maksimum ana bilgisayar kapasitesi.
Description Severity PromQL Threshold Window Rule description Common troubleshooting
Ana bilgisayar bellek kullanımı > %85 Warning (100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 85 >= %85 — Ana bilgisayar bellek kullanımı %85'i aştığında tetiklenir. Alert Rule Set for Resource Exceptions > Node - Memory usage >= 85% yoluyla yapılandırın. Bkz. Manage alerts in ACK . Varsayılan eşik: %85 — ihtiyaca göre ayarlayın.
Not

ACK uyarı kuralları Cloud Monitor tarafından sağlanır ve ölçümler Prometheus kurallarıyla tutarlıdır.

Kaynakları serbest bırakın: pod kaynak tahsisini cost analysis ile kontrol edin ve bellek isteklerini resource profiling ile doğru boyutlandırın. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.
Ana bilgisayar bellek kullanımı > %90 Critical (100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 90 >= %90 — Ana bilgisayar bellek kullanımı %90'ı aştığında tetiklenir. cost analysis ve resource profiling ile kaynakları serbest bırakın. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.
Ana bilgisayar CPU kullanımı > %85 Warning 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 85 >= %85 2 min Ana bilgisayar CPU kullanımı %85'i aştığında tetiklenir. Alert Rule Set for Resource Exceptions > Node - CPU usage >= 85% yoluyla yapılandırın.
Not

ACK, CloudMonitor ECS ölçümlerini kullanır ve bu Prometheus kuralına eşdeğerdir. Varsayılan eşik: %85 — ihtiyaca göre ayarlayın. Bkz. Manage alerts in ACK.

cost analysis ve resource profiling ile kaynakları serbest bırakın. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.
Ana bilgisayar CPU kullanımı > %90 Critical 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 90 >= %90 2 min Ana bilgisayar CPU kullanımı %90'ı aştığında tetiklenir. cost analysis ve resource profiling ile kaynakları serbest bırakın. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.

Anormal düğüm kaynakları

Düğüm kaynak ölçümleri, fiziksel makine kapasitesini değil, konteyner kaynak tüketimini düğümün atanabilir kapasitesine göre ölçer.
Tüketilen kaynaklar (pay) : Çalışan set belleği, sayfa önbelleği ve daha fazlası dahil olmak üzere düğümdeki tüm konteynerlerin toplam kaynakları.
Atanabilir kaynaklar (payda) : Düğüm rezervasyonları düşüldükten sonra konteynerler için kullanılabilen kaynaklar. Bkz. Node resource reservation policy .
Pod zamanlama, gerçek kullanıma değil kaynak isteklerine dayanır.
Description Severity PromQL Threshold Window Rule description Common troubleshooting
Düğüm CPU kullanımı > %85 Warning sum(irate(container_cpu_usage_seconds_total{pod!=""}[1m])) by (node) / sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100 >= 85 >= %85 1 min Düğüm CPU kullanımı atanabilir kaynakların %85'ini aştığında tetiklenir. Formül: Düğüm kaynak kullanımı / Düğümdeki toplam atanabilir kaynaklar. Pod'ları düğümler arasında dağıtmak için cost analysis ve resource profiling ile kaynakları serbest bırakın. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.
Düğüm CPU kaynak tahsis oranı > %85 Normal (sum(sum(kube_pod_container_resource_requests{resource="cpu"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100 >= 85 >= %85 — CPU kaynak tahsis oranı atanabilir kaynakların %85'ini aştığında tetiklenir. Formül: Zamanlanan pod'ların toplam kaynak istekleri / Düğümdeki toplam atanabilir kaynaklar. Daha fazla pod zamanlamak için yetersiz kaynak. cost analysis ve resource profiling ile kaynak israfını (gerçek kullanımın isteklerin çok altında olması) kontrol edin. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.
Düğüm CPU aşırı satım oranı > %300 Warning (sum(sum(kube_pod_container_resource_limits{resource="cpu"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100 >= 300 >= %300 — CPU aşırı satım oranı atanabilir kaynakların %300'ünü aştığında tetiklenir. Formül: Zamanlanan pod'ların toplam kaynak sınırları / Düğümdeki toplam atanabilir kaynaklar. %300 eşiği önerilen varsayılandır — ihtiyaca göre ayarlayın. Toplam CPU sınırları, atanabilir kaynakları çok fazla aşar. Trafik zirvelerinde rekabet ve kısıtlama yanıtları yavaşlatabilir. cost analysis ve resource profiling ile CPU isteklerini ve sınırlarını doğru boyutlandırın. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.
Düğüm bellek kullanımı > %85 Warning sum(container_memory_working_set_bytes{pod!=""}) by (node) / sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100 >= 85 >= %85 — Düğüm bellek kullanımı atanabilir kaynakların %85'ini aştığında tetiklenir. Formül: Düğüm kaynak kullanımı / Düğümdeki toplam atanabilir kaynaklar. Pod'ları düğümler arasında dağıtmak için cost analysis ve resource profiling ile kaynakları serbest bırakın. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.
Düğüm bellek kaynak tahsis oranı > %85 Normal (sum(sum(kube_pod_container_resource_requests{resource="memory"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100 >= 85 >= %85 — Bellek kaynak tahsis oranı atanabilir kaynakların %85'ini aştığında tetiklenir. Formül: Zamanlanan pod'ların toplam kaynak istekleri / Düğümdeki toplam atanabilir kaynaklar. Daha fazla pod zamanlamak için yetersiz kaynak. cost analysis ve resource profiling ile kaynak israfını (gerçek kullanımın isteklerin çok altında olması) kontrol edin. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.
Düğüm bellek aşırı satım oranı > %300 Warning (sum(sum(kube_pod_container_resource_limits{resource="memory"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100 >= 300 >= %300 — Bellek aşırı satım oranı atanabilir kaynakların %300'ünü aştığında tetiklenir. Formül: Zamanlanan pod'ların toplam kaynak sınırları / Düğümdeki toplam atanabilir kaynaklar. %300 eşiği önerilen varsayılandır — ihtiyaca göre ayarlayın. Toplam bellek sınırları, atanabilir kaynakları çok fazla aşar. Trafik zirvelerinde bellek düğüm sınırına ulaşabilir ve iş yüklerini bozan OOM sonlandırmalarını tetikleyebilir. cost analysis ve resource profiling ile bellek isteklerini ve sınırlarını doğru boyutlandırın. Düğümleri ölçeklendirin — bkz. Scale nodes in an ACK cluster.

Ağ istisnaları

Description Severity PromQL Threshold Window Rule description Common troubleshooting
CoreDNS istek sayısı sıfıra düşer Critical (sum(rate(coredns_dns_request_count_total{}[1m]))by(server,zone)<=0) or (sum(rate(coredns_dns_requests_total{}[1m]))by(server,zone)<=0) <= 0 1 min Yalnızca ACK yönetilen kümelerde (Pro ve Basic sürümler) tespit edilebilir. Kümedeki CoreDNS pod'larının normal çalışıp çalışmadığını kontrol edin.
CoreDNS panik istisnası Critical sum(rate(coredns_panic_count_total{}[3m])) > 0 > 0 3 min Yalnızca ACK yönetilen kümelerde (Pro ve Basic sürümler) tespit edilebilir. Kümedeki CoreDNS pod'larının normal çalışıp çalışmadığını kontrol edin.
Ingress denetleyicisi sertifikası 14 gün içinde sona eriyor Warning ((nginx_ingress_controller_ssl_expire_time_seconds - time()) / 24 / 3600) < 14 < 14 days — Ingress özelliği etkinleştirilmiş şekilde ACK Ingress denetleyicisi bileşeninin yüklü olmasını gerektirir. Ingress denetleyicisi sertifikasını yeniden verin.

Otomatik Ölçeklendirme istisnaları

Description Severity PromQL Threshold Window Rule description Common troubleshooting
HPA çoğaltma sayısı maksimumda Warning max(kube_horizontalpodautoscaler_spec_max_replicas) by (namespace, horizontalpodautoscaler) - max(kube_horizontalpodautoscaler_status_current_replicas) by (namespace, horizontalpodautoscaler) <= 0 <= 0 difference — HPA mevcut çoğaltmaları yapılandırılan maksimum değere ulaştığında tetiklenir.
Not

Önce Alibaba Cloud Prometheus'ta horizontalpodautoscaler ölçümlerini etkinleştirin — varsayılan olarak devre dışıdır ve ücretsizdir.

HPA ilkesinin beklentileri karşılayıp karşılamadığını kontrol edin. İş yükü yüksek kalıyorsa maxReplicas değerini artırın veya uygulama performansını optimize edin.

Sonraki adımlar