Uptime Kuma Telefon Aramalı Uyarılar: Telefonunuzu Çaldırın

Uptime Kuma 90'dan fazla bildirim sağlayıcısıyla geliyor ama hiçbiri telefonunuzu çaldırmıyor. Tek bir webhook ile kesintiler için telefon aramalı uyarıları şöyle eklersiniz.

Güncellendi

İçindekiler

Uptime Kuma 90'dan fazla bildirim sağlayıcısını destekler, ancak hiçbiri telefonunuzu çaldırmaz. Bir izleyici çöktüğünde telefon araması almak için Uptime Kuma'nın Webhook bildirimini, Arama olarak ayarlanmış bir Echobell kanalına gönderin. Bu rehber kullanmanız gereken özel gövdeyi, çökme uyarılarını kurtarma uyarılarından nasıl ayıracağınızı ve kurulumu sessizce bozan iki hatayı anlatıyor.

Uptime Kuma, var olan en popüler kendi sunucunuzda barındırılan çalışma süresi izleyicisidir — yaklaşık 90.000 GitHub yıldızı ve Ağustos 2026'da yayımlanan 2.5.0 sürümü. HTTP uç noktalarını, TCP bağlantı noktalarını, DNS kayıtlarını, Docker konteynerlerini ve daha fazlasını denetler ve kesinti tespitinde gerçekten çok iyidir.

Sizi açıkta bıraktığı yer son adımdır: uyarıyı uyuyan bir insana ulaştırmak.

Uptime Kuma neden kendi başına telefonunuzu çaldıramaz?

Uptime Kuma'nın bildirim listesi uzundur — Telegram, Discord, Slack, e-posta, Gotify, ntfy ve düzinelerce başkası — ama hepsi bir mesaj iletir. Mesajlar telefonunuzun zil anahtarına, Rahatsız Etmeyin moduna ve iOS Odak Modlarına tabidir. Saat 03.00'te bu, uyarının geldiği ama hiçbir şeyin olmadığı anlamına gelir.

Yerleşik bir "telefonumu ara" sağlayıcısı yoktur. İnsanların genelde başvurduğu seçenekler şunlardır:

  • Twilio — üzerine sesli arama kurabilirsiniz, ancak Uptime Kuma'nın Twilio sağlayıcısı SMS gönderir. Ses demek, bir köprü servisi yazmak, bir numara satın almak ve arama başına ödemek demektir.
  • PagerDuty, Zenduty, Spike.sh, Splunk On-Call — bunlar gerçekten arama yapar ve buna uygun kişi başı fiyatlandırmaya sahip tam kapsamlı olay yönetimi platformlarıdır. Nöbet sıraları ve eskalasyon politikaları gerekiyorsa doğru yanıt; sadece bir telefonun çalması gerekiyorsa fazla ağır.
  • SMS ağ geçitleri — bir SMS yine mesaj olarak düşer ve iOS'ta gönderen izin listenizde değilse metin mesajı Odak Modu'nu aşmaz.

Uptime Kuma deposunda VoIP arama bildirimleri için bir özellik talebi bir süredir açık. Bu arada genel amaçlı Webhook sağlayıcısı kaçış yolunuz — herhangi bir URL'ye herhangi bir şey gönderebilir ki ihtiyacınız olan tek şey de bu.

Gerekenler

  • Çalışan bir Uptime Kuma örneği (bu rehber 2.x'e göre yazıldı; webhook özel gövdesi 1.23+ sürümlerinde de çalışır)
  • Kurulu Echobell (App Store / Google Play)
  • Beş dakika

Uptime Kuma örneğinizin hook.echobell.one adresine giden HTTPS erişimi olmalı. İnternetten erişilebilir olması gerekmez — bu giden bir webhook olduğu için ev sunucusunda ya da özel bir ağın içinde çalışan bir izleyici sorunsuz iş görür.

Adım 1 — Sizi arayan bir kanal oluşturun

Echobell'de Production Down gibi bir ad taşıyan bir kanal oluşturun. Abonelik bildirim türünü Arama olarak ayarlayın. Önemli olan ayar budur: Arama uyarıları gelen arama ekranı olarak gelir ve bir push bildiriminin yapamadığı biçimde iOS Odak Modu ile Rahatsız Etmeyin'i aşarak çalar.

Şablonları şöyle ayarlayın:

Title: 🔴 {{monitor}} is down
Body: {{message}}
Target: {{target}}

Ardından kanalın Webhook URL'sini kopyalayın. Şuna benzer:

https://hook.echobell.one/t/<channel-token>

Bu URL'yi bir sır gibi saklayın — elinde tutan herkes telefonunuzu çaldırabilir.

Adım 2 — Echobell'i webhook bildirimi olarak ekleyin

Uptime Kuma'da Settings → Notifications → Setup Notification yolunu izleyin ve şunları doldurun:

AlanDeğer
Notification TypeWebhook
Friendly NameEchobell — Down
Post URLEchobell webhook URL'niz
Request BodyCustom Body

Additional Headers alanını boş bırakın.

Adım 3 — Üzerinde filtreleyebileceğiniz bir yük gönderin

Çoğu rehberin atladığı adım budur ve bir uyarı sistemiyle bir gürültü makinesi arasındaki farkı yaratan da odur.

Şunu Custom Body alanına yapıştırın:

{
  "monitor": "{{name}}",
  "target": "{{hostnameOrURL}}",
  "message": "{{ msg | strip_newlines }}",
  "up": "{{ heartbeatJSON['status'] }}"
}

Uptime Kuma özel gövdeleri Liquid ile işler ve şu değişkenleri sunar:

DeğişkenNeyi tutar
{{name}}İzleyicinin görünen adı
{{hostnameOrURL}}Denetlenen ana makine adı veya URL
{{status}}🔴 Down, ✅ Up ya da ⚠️ Test
{{msg}}İnsan tarafından okunabilir neden, ör. connect ECONNREFUSED 10.0.0.4:443
{{ monitorJSON['...'] }}İzleyici nesnesinin tamamı
{{ heartbeatJSON['...'] }}Heartbeat nesnesinin tamamı

Bu yükteki iki ayrıntı bilinçlidir:

msg üzerindeki strip_newlines. Uptime Kuma'nın mesajı çoğu zaman satır sonları içerir ve bir JSON dizesinin içindeki ham satır sonu geçersiz JSON'dur. Filtre olmadan webhook'unuz ara ara başarısız olur — yalnızca metni satır kaydıran hatalarda. Uptime Kuma sürümünüz Liquid'in json filtresine sahip olacak kadar yeniyse "message": {{ msg | json }} (dikkat: çevresinde tırnak yok) daha da güvenlidir, çünkü tırnakları da kaçış karakterine dönüştürür.

{{status}} yerine heartbeatJSON['status']. status değişkeni emoji metni olarak işlenir ve bunu karşılaştırmak zahmetlidir. Heartbeat durumu ise düz bir sayıdır:

  • 0 — çökük
  • 1 — çalışıyor
  • 2 — beklemede
  • 3 — bakımda

Tırnak içine almak da ("up": "{{ ... }}") önemlidir; nedenini Adım 5 açıklıyor.

Adım 4 — Kurtarma uyarılarının sizi aramasını engelleyin

Tek bir Uptime Kuma bildirimi hem çökme hem de kurtarma durumunda tetiklenir. Öylece bırakılırsa bu kurulum servis bozulduğunda sizi arar, kendini toparladığında yeniden arar. İnsanlara ilk aramayı göz ardı etmeyi öğreten şey işte bu ikinci aramadır.

Bunları, herhangi bir iletim yapılmadan önce değerlendirilen Echobell koşullarıyla ayırın:

Production Down kanalında (bildirim türü Arama) koşulu şöyle ayarlayın:

up == "0"

Production Recovered adında ikinci bir kanal oluşturun, bildirim türünü Normal yapın ve şu koşulu verin:

up == "1"

Şu şablonlarla:

Title: ✅ {{monitor}} is back up
Body: {{message}}

Ardından Uptime Kuma'da ikinci bir webhook bildirimi ekleyin — aynı özel gövde, aynı izleyiciler, ama kurtarma kanalının URL'sine yönlendirilmiş. Her iki bildirim de tüm olayları alır; her kanal ilgilenmediği yarıyı eler.

Sonuç: kesinti telefonu çaldırır, kurtarma ise sabah okuyacağınız sessiz bir push olarak gelir.

Adım 5 — İzleyiciyi yalancı çoban olmayacak biçimde ayarlayın

İki saniyelik bir ağ kesintisi olduğu ortaya çıkan bir arama, hiç arama olmamasından kötüdür; çünkü bir sonraki de göz ardı edilir. Burada işin çoğunu üç Uptime Kuma ayarı yapar ve hepsi izleyicinin kendisindedir:

  • Retries2 ya da 3 olarak ayarlayın. Uptime Kuma izleyiciyi ancak bu kadar art arda başarısızlıktan sonra çökük olarak işaretler; bu da tek tük kaybolan paketleri eler.
  • Heartbeat Retry Interval — arıza sırasında ne kadar hızlı yeniden denetleyeceği. 20-30 saniye makul bir dengedir; 3 deneme ile birleştiğinde gerçek bir kesintiyi yaklaşık bir dakikada tespit edersiniz.
  • Resend Notification if Down X times consecutively — bunu 10 gibi bir değere ayarlayın; servis on denetim daha sonra hâlâ çökükse Uptime Kuma yeniden arar. Kaba bir eskalasyon politikasıdır ama işe yarar.

Yanıtlanmayan bir aramanın yeniden göndermeyi beklemeden hemen tekrar denemesini istiyorsanız Echobell uygulama ayarlarından Başarısız Aramayı Yeniden Dene seçeneğini açın.

Yalnızca mesai dışında çaldırın

Mesai saatlerinde muhtemelen zaten bir panoya bakıyorsunuzdur ve çalan bir telefon ihtiyacınız olmayan bir bölünmedir. Echobell'in sistem zaman değişkenleri (hepsi UTC) tek bir kanalın saate göre farklı davranmasını sağlar:

up == "0" && (hour >= 17 || hour < 9)

Bu koşul sizi yalnızca 09.00–17.00 UTC dışında arar. Gündüz push'ları için ikinci bir Normal türde kanalı bunun tersine yönlendirin:

up == "0" && hour >= 9 && hour < 17

Kendi saat diliminiz için kaydırma yapmayı unutmayın — bu değişkenler her zaman UTC'ye göre hesaplanır. Daha kapsamlı bir anlatım UTC koşullarıyla zaman aralığı bildirimleri yazısında.

Uyarıyı ekibinizle paylaşmak

Bir Echobell kanalı ekip arkadaşlarınızla abonelik bağlantısı üzerinden paylaşılabilir ve her abone kendi bildirim türünü seçer. Böylece aynı izleyici, nöbetçi mühendisin telefonunu çaldırırken diğer herkese normal bir push olarak düşebilir — kişi başı fiyatlandırma yok, Uptime Kuma'da ayrı yönlendirme kuralları yok.

Bu, en baştan kendi sunucunuzda barındırmanın gizlilik duruşuyla da iyi örtüşür: izleyicileriniz kendi altyapınızda kalır ve Echobell bildirim içeriğini ve geçmişini sunucularında değil cihazda tutar.

Bu kurulumun size vermedikleri

Sınırı konusunda dürüst olmak, ileride kötü bir geçişten sizi kurtarır. Echobell bir iletim katmanıdır, bir olay yönetimi platformu değil. Şunlar yoktur:

  • Nöbet sırası takvimleri ya da güneşi takip eden devir teslimler
  • İkinci bir kişiyi otomatik olarak çağıran eskalasyon ağaçları
  • Olay zaman çizelgeleri, onay takibi ya da olay sonrası inceleme araçları

Ekibinizin bunlara ihtiyacı varsa PagerDuty, Grafana Cloud IRM ya da benzeri bir çözüm gerekir. Bu kurulumun kapsadığı şey, Uptime Kuma'nın açık bıraktığı belirli boşluktur: tespit edilen bir kesintiyi gerçekten çalan bir telefona dönüştürmek. Tek kişilik operasyonlar, küçük ekipler ve ev laboratuvarları için gereksinim genellikle bundan ibarettir.

Sorun giderme

Test düğmesi hiçbir şey yapmıyor. Yukarıdaki yükle bu beklenen bir durumdur ve ilk seferinde herkesin kafasını karıştırır. Test'e tıkladığınızda Uptime Kuma'nın işleyecek bir heartbeat'i olmaz, bu yüzden {{ heartbeatJSON['status'] }} boş dizeye dönüşür ve hiçbir koşul eşleşmez. Düzgün test etmek için hiçbir şeyin dinlemediği bir bağlantı noktasına (127.0.0.1:9) yönelen tek kullanımlık bir TCP izleyicisi oluşturun ve başarısız olmasına izin verin.

Webhook ara ara başarısız oluyor. Neredeyse her zaman satır sonu sorunudur — msg değerinin strip_newlines filtresinden geçtiğini kontrol edin. Yalnızca içinde satır sonu bulunan hata mesajlarında bozulur; rastgele görünmesinin nedeni budur.

Echobell, HTTP 200 ile success: false döndürüyor. Kanal token'ı yanlıştır ya da kanal silinmiştir. Echobell, bilinmeyen ama geçerli uzunluktaki bir token için 200 döndürür; bu yüzden durum koduna değil JSON gövdesine bakın.

HTTP 405. Kanalda POST Only etkindir ve bir şey GET göndermiştir. Uptime Kuma POST yaptığı için bu genellikle URL'yi tarayıcıda test ettiğiniz anlamına gelir.

Hiçbir şey çalmıyor ama bildirim geliyor. Aboneliğin bildirim türü Arama değil, Normal ya da Zaman Duyarlı'dır. Bildirim türü abone bazında seçilir, bu yüzden çalmayan cihazda kontrol edin.

Sıkça sorulan sorular

Uptime Kuma yerleşik olarak telefon araması yapabilir mi?

Hayır. Uptime Kuma'nın 90'dan fazla bildirim sağlayıcısı var ama hepsi mesaj iletir. Telefon aramaları için bir webhook'u arama yapabilen bir servise — örneğin Echobell'e — yönlendirmek ya da ücretli bir olay yönetimi platformu kullanmak gerekir.

Bu, güvenlik duvarı arkasındaki kendi sunucumdaki Uptime Kuma ile çalışır mı?

Evet. Webhook, Uptime Kuma örneğinizden çıkan bir HTTPS isteğidir; yalnızca hook.echobell.one adresine ulaşması yeterlidir. Örneğinizin genel bir adresi olmasına gerek yoktur.

Telefon araması Rahatsız Etmeyin modunu aşar mı?

Evet. Echobell'in Arama bildirim türü gelen arama olarak görünür ve iOS Odak Modu ile Rahatsız Etmeyin'i aşarak çalar. Ayrıntılar ve ilgili ayarlar için kritik uyarılar için iOS Odak Modu'nu aşmak yazısına bakın.

Servis toparlandığında aranmayı nasıl durdururum?

Koşullarla iki kanal kullanın — arama kanalı için up == "0", normal öncelikli kurtarma kanalı için up == "1" — ve her birine bir webhook bildirimi yönlendirin. Yukarıdaki Adım 4 bunu baştan sona anlatıyor.

Aynı izleyici için birden fazla kişi aranabilir mi?

Evet. Kanalı ekip arkadaşlarınızla paylaşın; her abone kendi bildirim türünü seçer. Arama kanalına abone olan herkesin telefonu çalar.

Toparlarken

Kurulum bir webhook, bir özel gövde ve iki koşuldan ibaret. Uptime Kuma izleyicilerinizi, yeniden deneme mantığınızı ve durum sayfalarınızı olduğu gibi bırakır ve "izleyici fark etti" ile "bir insan fark etti" arasındaki boşluğu kapatır.

Echobell'i iPhone için indirin ya da Google Play'den edinin, sonra önce kritik olmayan bir izleyiciyi bağlayın ve bilerek başarısız olmasını sağlayın. Yola güvenmeden önce onu sınayın.


İlgili içerikler