Prometheus Alertmanager Entegrasyonu - Mobil Uyarılar

Prometheus Alertmanager uyarılarını Echobell'e yönlendirin; sunucu ve altyapı olayları için push bildirimi veya telefon araması alın.


Alertmanager ile birlikte kullanılan Prometheus, yaygın olarak tercih edilen açık kaynaklı bir izleme ve uyarı yığınıdır. Alertmanager'ı Echobell ile entegre ederek uyarı kurallarınız tetiklendiğinde anında mobil bildirim (zaman duyarlı veya arama tarzı uyarılar dahil) alabilirsiniz.

Ön Koşullar

  • En az bir kanal oluşturulmuş bir Echobell hesabı
  • Çalışır durumda bir Prometheus + Alertmanager kurulumu
  • Alertmanager yapılandırmanızı (alertmanager.yml) düzenleme yetkisi

Kuruluma Genel Bakış

  1. Bir Echobell kanalı oluşturun
  2. Bildirim şablonlarını (ve isteğe bağlı Bağlantı Şablonunu) yapılandırın
  3. Bir entegrasyon yöntemi seçin:
    • Alertmanager webhook alıcısı üzerinden webhook (önerilen)
    • Alertmanager e-posta alıcısı üzerinden e-posta (alternatif)
  4. Uyarı kuralları oluşturun veya güncelleyin
  5. Test edin ve iyileştirin

Adım Adım Kılavuz

Bir Echobell Kanalı Oluşturun

  1. Echobell uygulamasını açın
  2. Yeni bir kanal oluşturun (örneğin "Prometheus Alerts")
  3. Kolay ayırt edebilmek için bir renk seçin

Bildirim Şablonlarını Yapılandırın

Alertmanager'ın webhook yükü; status, commonLabels, commonAnnotations, externalURL ve bir alerts dizisi gibi yapılandırılmış alanlar içerir. Bu alanlara Echobell şablonlarında doğrudan başvurabilirsiniz.

Önerilen şablonlar:

Başlık şablonu:

{{commonLabels.alertname}} - {{status}}

Gövde şablonu:

🔔 Alert: {{commonLabels.alertname}}
📊 Severity: {{commonLabels.severity}}
🖥️ Instance: {{alerts[0].labels["instance"]}}
⏰ Starts: {{alerts[0].startsAt}}
ℹ️ Summary: {{commonAnnotations.summary}}
🧾 Description: {{commonAnnotations.description}}

İsteğe bağlı Bağlantı Şablonu (Gelişmiş Ayarlar):

{{alerts[0].generatorURL || externalURL}}

Bu, uyarı kaydınızın içinde tetiklenen grafiğe veya panoya doğrudan bir bağlantı gösterir. generatorURL yoksa externalURL'e geri düşer.

Entegrasyon Yöntemi A — Webhook (Önerilen)

  1. Echobell kanalınızda, Tetikleyiciler bölümünden Webhook URL'sini kopyalayın
  2. Alertmanager'da bu URL'ye POST eden bir webhook alıcısı ekleyin

En sade alertmanager.yml örneği:

route:
  receiver: echobell-webhook

receivers:
  - name: echobell-webhook
    webhook_configs:
      - url: "https://hook.echobell.one/t/<channel-token>"
        send_resolved: true
        http_config:
          follow_redirects: true

Notlar:

  • send_resolved: true, uyarılar çözüldüğünde de bildirim gönderir (status değeri resolved olur)
  • Echobell JSON gövdesini olduğu gibi okur, bu nedenle yukarıdaki şablonlar doğru şekilde işlenir

Entegrasyon Yöntemi B — E-posta (Alternatif)

E-postayı tercih ediyor ya da zorunlu olarak kullanmanız gerekiyorsa Alertmanager'ın e-posta alıcısını kullanın ve kanala bağlı e-posta adresine gönderin.

  1. Echobell'de, Tetikleyiciler bölümünden kanalın e-posta adresini kopyalayın
  2. Alertmanager'da bir e-posta alıcısı yapılandırın ve basit şablonlar kullanın

Örnek parça:

receivers:
  - name: echobell-email
    email_configs:
      - to: "PASTE_CHANNEL_EMAIL_ADDRESS"
        send_resolved: true
        subject: "{{ .CommonLabels.alertname }} - {{ .Status }}"
        html: |
          <p><strong>Summary:</strong> {{ .CommonAnnotations.summary }}</p>
          <p>{{ .CommonAnnotations.description }}</p>
          <p>
            <a href='{{ (index .Alerts 0).GeneratorURL }}' target='_blank' rel='noopener'>Open in Prometheus</a>
          </p>

E-posta tetikleyicilerine yönelik Echobell şablonlarında, Echobell'in otomatik olarak sağladığı subject, text ve html gibi değişkenleri kullanabilirsiniz.

Örnek Bir Uyarı Kuralı Oluşturun

Akışı test etmek için küçük bir örnek kural:

groups:
  - name: example
    rules:
      - alert: HighCPU
        expr: avg(rate(process_cpu_seconds_total[5m])) > 0.8
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "High CPU usage"
          description: "CPU has been over 80% for 2 minutes"

Bu uyarı tetiklendiğinde Alertmanager olayı yapılandırdığınız alıcıya gönderir ve Echobell kanalın abonelerine bildirim iletir.

Entegrasyonu Test Etme

  1. Eşikleri geçici olarak düşürün ya da hızlıca tetiklenen bir test uyarısı oluşturun
  2. Uyarı tetiklendiğinde bir Echobell bildirimi aldığınızı doğrulayın
  3. Bağlantı Şablonu kullanıyorsanız kaydı açıp bağlantıya dokunun
  4. Uyarıyı çözün ve (etkinse) çözüm bildirimini aldığınızı doğrulayın

Bildirim Türünü Seçme

  • Zaman Duyarlı: kritik üretim kesintileri, çağrı seviyesindeki olaylar
  • Arama: sizi uyandırması veya odak modlarını kesmesi gereken ağır kesintiler
  • Normal: rutin uyarılar, uyarı niteliğindeki veya bilgilendirici bildirimler

En İyi Uygulamalar

  1. Şablonları kısa ama bilgilendirici tutun (uyarı adı, önem derecesi, örnek, özet)
  2. İlgili grafiğe veya panoya doğrudan geçmek için Bağlantı Şablonunu kullanın
  3. Gürültüyü ve uyarı yorgunluğunu önlemek için Alertmanager'da uyarıları gruplayın ve yönlendirin
  4. severity etiketlerini ekleyin ve aciliyete uygun Echobell bildirim türlerini kullanın
  5. Echobell webhook URL'nizi bir sır gibi koruyun; sızdıysa yenileyin

Sorun Giderme

Uyarılar Echobell'de görünmüyorsa:

  • Webhook URL'sinin veya kanal e-posta adresinin doğru olduğunu doğrulayın
  • Echobell kanalının etkin olduğundan ve abonelerinin bulunduğundan emin olun
  • Teslim hataları için Alertmanager günlüklerini kontrol edin
  • alertmanager.yml içindeki yönlendirmenizin gerçekten hedeflenen alıcıyı gösterdiğini doğrulayın
  • Basit, tek seferlik bir uyarı kuralıyla test edin
  • E-posta kullanıyorsanız SMTP ayarlarınızın çalıştığından ve e-postaların iletildiğinden emin olun

Gizlilik ve Veri İşleme

Echobell gizliliği önceler:

  • Bildirim içeriği cihazlarınızda kalır
  • Sunucularda yalnızca asgari yapılandırma verisi saklanır
  • Webhook URL'leri ve kanal e-posta adresleri sır olarak değerlendirilmelidir
  • Echobell, uyarı yüklerinizi sunucularında saklamaz

Ek Kaynaklar