Healthchecks.io Nedir?

Healthchecks.io cron işlerinizi izleyebilir ve çalışmadığı zaman size bildirebilir. Varsayılan olarak curl veya wget kullanılabilir. Makinanıza başka herhangi bir yazılım yüklemenize gerek yoktur.

Çalışma prensibi basittir: Cron işiniz her tamamlandığın da Healthchecks.io adresine bir HTTP isteği ( "ping" ) gönderir. Healthchecks.io HTTP isteğini almadığı zaman sizi bilgilendirir. 

  • Tüm makine ( elektrik kesintisi, donanım arızası, birileri kablolara biner, vb. ) 'e düşer.
  • Cron arka plan programı çalışmıyor veya geçersiz bir yapılandırmaya sahip.
  • Cron görevinizi başlatır, ancak görev olmaz ise.
  • Cron işi anormal derecede uzun bir süre çalışır ise.

Aşağıdaki bazı iş örneklerini Healthchecks.io kullanarak monitor edip yararlanabilirsiniz.

  • Dosya sistemi yedeklemeleri, veritabanı yedeklemeleri
  • Görev kuyrukları
  • Veritabanı çoğaltma durumu izleme komut dosyaları
  • Rapor oluşturma komut dosyaları
  • Periyodik veri içe ve senkronize işleri
  • Periyodik antivirüs taramaları
  • DDNS güncelleyici komut dosyaları
  • SSL yenileme komut dosyaları

Healthchecks.io aşağıdakiler için doğru bir araç değildir.

  • HTTP istekleriyle inceleyerek web sitesi çalışma süresini izleme
  • Uygulama performansı metriklerinin toplanması
  • Günlük toplama

Kavramlar

Kontrol izlemek istediğiniz tek bir hizmeti temsil eder. Her kontrolün benzersiz bir ping URL'si, belirli bir zamanlaması vardır, ve ilişkili entegrasyonlardır. Her kontrol her zaman bir durum simgesiyle gösterilen aşağıdaki durumlardan birinde bulunur.

  • New: Henüz ping almayan yeni oluşturulan bir çek. Her yeni oluşturduğunuz kontrol bu durumda başlayacaktır.
  • Up: Her şey yolunda, son "başarı" sinyali zamanında geldi.
  • Late: "Başarı" sinyali zamanı geldi. Ancak henüz henüz kontrolün yapılandırıldığından daha geç değil. “Grace Time”
  • Down: "Başarı" sinyali henüz gelmedi ve Grace Zamanı geçti. Bir kontrol "Aşağı" durumuna geçtiğinde, Healthchecks.io uyarı gönderir yapılandırılmış entegrasyonlar aracılığıyla mesajlar.
  • Paused: Belirli kontrollerin izlenmesini manuel olarak duraklatabilirsiniz. Örneğin, sık çalışan bir cron işinin bilinen bir sorunu varsa ve bir düzeltme planlanmışsa, ancak henüz hazır değil, ilgili kontrolün izlenmesini geçici olarak duraklatabilirsiniz bilinen bir sorunla ilgili istenmeyen uyarılardan kaçının.
  • Ayrıca, en son alınan sinyal bir "başlat" sinyali ise, bu, çekin durum simgesi altında üç animasyonlu nokta ile gösterilir.

Ping URL Nedir?

Her kontrolün benzersiz Ping URL'si vardır. Müşteriler URL'yi yürütmenin başlangıcını, başarıyı veya başarısızlığı bildirmek için ping URL'si kullanmaktadır. Healthchecks.io iki ping URL formatını destekler:

Kontrol UUID'si tarafından tanımlanır. UUID'lerin atandığını kontrol edin. Healthchecks.io tarafından otomatik olarak ve benzersiz olduğu garanti edilir.

https://hc-ping.com/<uuid>

Kontrol proje tarafından belirlenir Ping tuşu ve kontrol  ( adı, küçük harfe dönüştürülmüş, boşluklar ) ile değiştirilmiştir.

https://hc-ping.com/<project-ping-key>/<name-slug>

Daha fazla bilgi için bakınız:

https://healthchecks.io/docs/

https://healthchecks.io/docs/monitoring_cron_jobs/

HealtChecks.io Crontab

ÖNEMLİ: UUID'leri kontrol etmeli ve Ping anahtarlarını sır olarak yansıtmalısınız. Onları herkese açık yaparsanız, herkes kontrollerinize telemetri sinyalleri gönderebilir ve izlemenizi bozabilir.

Aşağıdaki site üzerinde üye olup veya docker hub üzerinde local olarak kullanabilirsiniz. Bu kılavuzda internet üzerinden anlatacağım. Üyelik işlemlerini geçip, örnek bir cron işine bir göz atalım.

Bu kılavuz crontab kullanımını bildiğinizi varsayar.

Örneğin, her gün backup alma senaryonuz olduğunu varsayalım. Bunu crontab üzerinden zamanladınız ve çalışıyor. Ancak çalışmadığı zaman haberiniz olmayabilir veya sonradan fark edebilirsiniz. Ancak iş işten geçmiş olabilir.

# run backup.sh at 00:00 every day

0 0 * * * /home/me/backup.sh

Biz, kılavuz başında anlatıldığı gibi crontab görevlerini nasıl izleyeceğimize bakalım. İlk olarak, izlemek için önce Healthchecks.io hesabınızda yeni bir Check oluşturun. Bunun için Add Check butonuna basıyorum.

Gelen Pencerede aşağıdaki  kısımları dolduralım.

  • Name: Göreviniz için bir isim
  • Tags: Göreviniz için bir etiket
  • Schedule: Cron görevi
  • Cron Expression: Görevinizin çalışacağı zamanlama
  • Time Zone: Zaman Bölgesi
  • Grace Time: her kontrol için ayarlayabileceğiniz yapılandırma parametrelerinden biridir. Çek sırasında uyarı göndermeden önce beklemek için ek süre. Örneğin, cron işinin her gün 14:00'da başladığını ve 15 ila 25 dakika arasında tamamlandığını düşünün. Varsayalım, Grace Time kullanım süresi 30 dakika olarak ayarladık. Bu senaryoda, Healthchecks.io bir pingin saat 14:00'e ulaşmasını bekleyecek, ancak göndermeyecek. 14:30'a kadar ping yoksa, işin başarısız olduğunu beyan eder ve uyarı gönder.

Kontrolü oluşturduktan sonra, oluşturulan ping URL'si  kopyalayın.

Kopyaladığınız kodu null kısmından sonra aşağıdaki gibi crontab açıp yapıştırın.

Aşağıdaki örnekte anlaşılabilir olması adına, crontab her dakika olarak zamanlanmıştır.

* * * * * sh ~/backup.sh && curl -fsS -m 10 --retry 5 -o /dev/null https://hc-ping.com/0d4cc37f-5233-4e54-ab9f-ac460f45ea96 

İşlemi hemen test etmek için komutları tekrar terminal üzerinde çalıştırıyorum. 

* * * * * sh ~/backup.sh && curl -fsS -m 10 --retry 5 -o /dev/null https://hc-ping.com/0d4cc37f-5233-4e54-ab9f-ac460f45ea96 

Healthchecks.io alınan pingleri takip eder ve bir ping yapar yapmaz sizi zamanında bilgilendirir. Aşağıdaki gibi UP sembolü geldi. Görseldeki gibi ayarlar kısmına girelim.

Ayarlar kısmına girdikten sonra, Current Status kısmında her şeyin iyi olduğunu, events kısmında ise her isteğin başarılı bir şekilde gerçekleştiğini görebiliriz.

Şimdi crontab görevini durdurup tekrar kontrol ettiğim zaman, isteklerin başarısız olduğunu görebiliyoruz. Bu kısımdan sonra bir bildirim yapılandırmanız gerekmektedir.

HealtCheck.io Notifications

Healthchecks.io'nun farklı kanallar üzerinden bildirim göndermek için entegrasyonları vardır. Bunlar, e-posta, web kancaları, SMS, sohbet mesajları, olay yönetim sistemleri ve daha fazlası. İş başarısızlıkları hakkında bilgilendirilmek için birden fazla yol oluşturabilirsiniz. Düşük öncelikli işlerde yalnızca e-posta bildirimleri ayarlarken, yüksek öncelikli işler için SMS, slack vb. bildirimler ayarlayabilirsiniz.

SLACK

Bu kılavuz slack üzerinde üyeliğiniz olduğunu ve oturum açtığınızı varsayar.

HealtCheck panelinden, Integrations kısmına geçip yapın ve Slack karşısında bulunan Add Integration butonuna tıklayın.

Tekrar Add to Slack düğmesini tıklayın. 

Healthchecks.io Slack ekibiniz için erişim isteyecektir. Eklemek istediğiniz takımı seçin Healthchecks.io entegrasyonuna devam ediniz.

 Şimdi Healthchecks.io ile takımdan erişiminden sonra, istediğiniz kanalı seçin ve Healthchecks.io bildirimleri gönderin.

 Son olarak integrations kısmından, Slack kısmındaki Assigned Checks alanına tıklayın.

Check etmek istediğiniz işi seçip save butonuna basın. 

Son olarak test butonuna basarak, işlemi test edebilirsiniz.

Tekrarlanan Bildirimler

Belirli bir kontrol kapalı olduğu sürece tekrarlanan bildirimler almak istiyorsanız, birkaç farklı seçeneğiniz vardır:

Hiçbir sorunun gözden kaçmamasını sağlamak için Hesap Ayarları > E-Posta Raporları sayfasından, herhangi bir iş kapalı olduğu sürece, devam eden hatırlatıcılar her saat tekrar tekrar e-posta bildirimleri gönderecek şekilde yapılandırabilirsiniz.

Daha fazla bilgi için bakınız:

https://healthchecks.io/docs/configuring_notifications/

Her bildirim yöntemi bir projeye aittir: Bir bildirim yöntemini birden çok projede kullanmak istiyorsanız, her projede ayrı ayrı ayarlamanız gerekir.

Web arayüzündeki "CHECKS" sayfası, her kontrol için hangi uyarı yöntemlerinin aktif olduğuna dair görsel bir genel bakış sunar. Integrations kısmından simgelere tıklayarak açma ve kapatma işlemlerini gerçekleştirebilirsiniz.

Blog'a Dön