CodeBlanks Logo Icon CodeBlanks

Alertmanager

Alertmanager ile uyarı yönetmeyi öğrenirsin.

Alertmanager

Prometheus uyarı kurallarını değerlendirir; koşul belirli bir süre (for) boyunca tutarsa uyarıyı Alertmanager'a gönderir. Alertmanager uyarıları gruplar, tekrarları bastırır ve doğru kanala (e-posta, Slack, PagerDuty) yönlendirir. Operator'da kurallar PrometheusRule nesnesiyle yazılır:

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: api-uyarilari
  namespace: izleme
  labels: {release: izleme}
spec:
  groups:
    - name: api
      rules:
        - alert: YuksekHataOrani
          expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.05
          for: 10m
          labels:
            severity: critical
          annotations:
            summary: "API hata oranı %5'in üstünde"

İyi uyarılar

Uyarı yorgunluğu, gereksiz uyarıların önemli olanları gölgelemesidir. İyi uyarılar belirtiye (kullanıcının yaşadığı hata oranı, gecikme) dayanır, nedene (CPU %80) değil; ve her uyarının ne yapılacağını anlatan bir bağlantısı (runbook) olur:

          annotations:
            summary: "API hata oranı %5'in üstünde"
            runbook_url: https://wiki.sirket.com/runbook/api-hata

kubectl get prometheusrules -n izleme

Uygulama Uyarı kuralı

Bir PrometheusRule'un spec bölümünü yaz (spec: ile başlayarak): groups altında adı api olan grup; tek kural: alert: PodYenidenBasliyor, expr: increase(kube_pod_container_status_restarts_total[15m]) > 3, for: 5m, labels.severity: warning.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
spec:
  groups:
    - name: api
      rules:
        - alert: PodYenidenBasliyor
          expr: increase(kube_pod_container_status_restarts_total[15m]) > 3
          for: 5m
          labels:
            severity: warning

Beklenen çıktı

prometheusrule.monitoring.coreos.com/api-uyarilari configured

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 for: 10m alanı ne işe yarar?

  • Uyarı 10 dakika sonra silinir
  • Sorgu 10 dakikalık veriye bakar
  • Koşul 10 dakika kesintisiz tutarsa uyarı tetiklenir; kısa sıçramalar yok sayılır Doğru cevap
  • Uyarı her 10 dakikada gönderilir

Açıklama: O süre boyunca uyarı Pending durumunda bekler.

2 Koşulun ne kadar sürmesi gerektiğini yaz.

Soru
        - alert: YuksekHataOrani
          expr: hata_orani > 0.05
          ____: 10m
Cevap
        - alert: YuksekHataOrani
          expr: hata_orani > 0.05
          for: 10m

Açıklama: for koşulun kesintisiz süresidir.

3 Eşleştir.

Kavram Anlamı
PrometheusRule Uyarı kuralları
Alertmanager Gruplar ve yönlendirir
severity Önem etiketi
runbook_url Ne yapılacağı

İleri seviye bölümündeki tüm dersler