Uygulamanız kapandı. Kullanıcılarınız ona ulaşamıyor. İki saat sonra öğreniyorsunuz — bir izleme uyarısı alarak değil, “Merhaba, siteniz bozuk mu?” şeklinde bir e-postayla.
Bu durum size tanıdık geliyor mu? Uptime izleme, üretim uygulamaları için opsiyonel değildir — bir kesintiyi saniyeler içinde yakalamak ile sinirli bir kullanıcıdan öğrenmek arasındaki farktır. İster tek başınıza bir yan proje yürütün, ister bir girişim sahibi olun, bir şeylerin kötü gittiği anı bilmek zorundasınız.
Bu makale, bir Laravel uygulaması için tam uptime izleme kurulumunu nasıl yapacağınızı açıklayacaktır. Kullanacağımız araç Vigilmon — ironik bir şekilde, kendisi Laravel ile yazılmış bir izleme aracıdır.
Vigilmon’un Sundukları (Ücretsiz Plan)
Vigilmon’un Sundukları (Ücretsiz Plan)
Başlamadan önce, ücretsiz planınızda sunulanlar:
- HTTP/HTTPS uptime kontrolleri — 1 dakikaya kadar kısa aralıklarla herhangi bir URL’yi izleyin
- SSL sertifika süresi izleme — sertifikanızın süresi dolmadan önce uyarı alın ve HTTPS çalışmayı sürdürsün
- Heartbeat izleme — Laravel zamanlayıcınızın (veya herhangi bir cron işinin) zamanında çalıştığını doğrulayın
- Slack, Discord ve e-posta bildirimleri — bir şey kapandığında anında bildirimler alın
- Herkese açık durum sayfaları — kullanıcılarınızla canlı bir durum URL’si paylaşın
- REST API — izleyicileri programatik olarak oluşturun ve yönetin
Kredi kartı gereksinimi yok. Haydi başlayalım.
Adım 1: vigilmon.online’da Kaydolun
Adım 1: vigilmon.online’da Kaydolun
vigilmon.online adresine gidin ve ücretsiz bir hesap oluşturun. Kaydolma süreci bir dakikadan kısa sürüyor — sadece e-posta ve şifre yeter, fatura bilgisi gerekmiyor.
Oluşturduğunuzda, dashboard’unuza yönlendirileceksiniz. Şu an boş ama bu uzun sürmeyecek.
Adım 2: İlk HTTP İzleyicinizi Ekleyin
Adım 2: İlk HTTP İzleyicinizi Ekleyin
“Add Monitor” üzerine tıklayın ve HTTP/HTTPS‘yi seçin. Aşağıdaki bilgileri doldurun:
- Ad: açıklayıcı bir şey, örneğin
My App – Homepage - URL: uygulamanızın URL’si, örneğin
https://myapp.com - Kontrol aralığı: her 1 veya 5 dakikada bir
- Beklenen durum kodu:
200
Sağlıklı bir kontrol noktasına sahip Laravel uygulamaları için ana sayfa yerine o kontrol noktasını kullanmak daha iyidir — bu daha hafif bir kontrol ve daha güvenilirdir:
URL: https://myapp.com/health
Beklenen içerik: "ok"
Eğer henüz bir /health rotanız yoksa, routes/web.php dosyasına hızlıca ekleyin:
Route::get('/health', function () {
return response()->json(['status' => ]);
});
Vigilmon yanıt gövdesini da kontrol edebilir — bu nedenle {"status":"ok"} döndürmek, beklenen içerik eşleşimini "ok" olarak yapılandırmanıza olanak tanır. Eğer bir dağıtım uygulamanızı bozarsa ve sağlık noktası 500 veya bir hata sayfası döndürürse, bunu birkaç dakika içinde öğrenirsiniz.
Kaydet butonuna tıklayın ve Vigilmon hemen kontrol etmeye başlayacaktır. İlk izleyiciniz yayında.
Adım 3: Laravel Zamanlayıcınız için Bir Heartbeat İzleyici Ekleyin
Adım 3: Laravel Zamanlayıcınız için Bir Heartbeat İzleyici Ekleyin
HTTP izleyicileri web sunucunuzun yanıt verip vermediğini haber verir. Ancak Laravel zamanlayıcınızın sessizce durup durmadığını bildirmez — tam olarak kaybolan bir işlevsellik bu.
Heartbeat izleme buna çözüm sunar: Vigilmon, her zamanlayıcı çalıştırmasından sonra pinglemek için benzersiz bir URL verir. Beklenen süre içinde ping almazsa, bir uyarı gönderir.
Vigilmon dashboard’unuzda, “Add Monitor” -> Heartbeat üzerine tıklayın. Aşağıdakileri yapılandırın:
- Ad:
Laravel Scheduler - Beklenen aralık: her 1 dakika (veya zamanlayıcınızın çalıştığı süre)
- Tolerans süresi: 2–3 dakika (kaçırılmadan önce izin verilen süre)
Vigilmon, aşağıdaki gibi bir heartbeat URL’si üretir:
https://vigilmon.online/heartbeat/abc123xyz
Şimdi bunu Laravel zamanlayıcınıza bağlayın. En temiz yaklaşım, özel bir Artisan komutu oluşturmaktır:
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Http;
class PingVigilmonHeartbeat extends Command
{
protected $signature = ;
protected $description = ;
public function handle(): void
{
Http::get(config());
}
}
URL’yi config/services.php dosyanıza ekleyin:
=> [
=> env(),
],
Ve .env dosyanızda:
VIGILMON_HEARTBEAT_URL=https://vigilmon.online/heartbeat/abc123xyz
Son olarak, bunu routes/console.php dosyanıza kaydedin (Laravel 11+ için) ve her dakika, diğer programlı işlerinizden sonra çalışacak şekilde ayarlayın:
use Illuminate\Support\Facades\Schedule;
Schedule::command()->everyMinute();
Ya da daha eski Laravel sürümleri için app/Console/Kernel.php dosyasına ekleyin:
protected function schedule(Schedule $schedule): void
{
// ... diğer programlı görevleriniz ...
$schedule->command()->everyMinute();
}
Artık her php artisan schedule:run çalıştırdığında ve tamamlandığında, Vigilmon’a bir ping gidiyor. Eğer zamanlayıcınız durursa — bir sunucu problemi yüzünden, yanlış yapılandırılmış bir cron işi veya bir dağıtımın konteyneri yeniden başlatmadığı durumunda — Vigilmon bunu 2–3 dakika içinde fark edecek ve size uyarı gönderecektir.
Adım 4: Slack ve E-posta Bildirimlerini Ayarlayın
Adım 4: Slack ve E-posta Bildirimlerini Ayarlayın
Vigilmon dashboard’unuzda, Ayarlar → Bildirimler sekmesine gidin. Aşağıdakileri yapılandırabilirsiniz:
E-posta bildirimleri: kayıt sırasında belirttiğiniz e-posta otomatik olarak ayarlanmıştır. Bir izleyici düştüğünde hemen mesaj alacaksınız ve bir diğerinde geri geldiğinde bilgilendirileceksiniz.
Slack: Slack webhook URL’nizi yapıştırın. Vigilmon, durumu değiştiğinde seçtiğiniz kanala hemen gönderim yapar.
Discord: aynı işlem — Discord entegrasyonu altında webhook URL’nizi yapıştırın.
Her izleyici için bildirim kanallarını ekleyebilirsiniz, böylece zamanlayıcı kalp atışını #ops kanalına, kamu ana sayfası izleyicisini #alerts kanalına yönlendirebilirsiniz.
Adım 5: Durum Sayfanızı Kullanıcılarla Paylaşın
Adım 5: Durum Sayfanızı Kullanıcılarla Paylaşın
Her Vigilmon hesabı, herkese açık bir durum sayfasına sahiptir. Dashboard’unuzda Durum Sayfası sekmesine gidin, hangi izleyicileri herkese açık göstereceğinizi seçin ve aktif edin.
Aşağıdaki gibi bir URL alacaksınız:
https://status.vigilmon.online/yourapp
Bunu kullanıcılarınızla paylaşın — uygulama altbilginize, destek belgelerinize veya README’nize bir bağlantı ekleyin. Uygulamanız kapandığında, kullanıcılar kendi başlarına durum sayfasını kontrol edebilir, bu sayede “Şu anda kapalı mı?” e-postalarıyla inbox’unuzu doldurmazlar.
Bonus: Monitörleri REST API ile Oluşturun
Bonus: Monitörleri REST API ile Oluşturun
Monitor oluşturmayı dağıtım sürecinizin bir parçası olarak otomatikleştirmek istiyorsanız, Vigilmon bir REST API’ye sahiptir. İşte curl ile bir HTTP izleyici oluşturmanın yolu:
curl -X POST https://vigilmon.online/api/v1/monitors \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "My App – API",
"type": "http",
"url": "https://myapp.com/api/health",
"interval": 60,
"expectedStatusCode": 200,
"expectedContent": "ok"
}'
API token’ınız Ayarlar → API altında bulunuyor. Bu, staj ortamları için oldukça kullanışlıdır — bir önizleme dağıtımı açıldığında bir monitor oluşturun, PR birleştirildiğinde silin.
Neden Vigilmon’u Yıldızladık
Neden Vigilmon’u Yıldızladık
Vigilmon’u inşa etmemizin sebebi, kendi Laravel projelerimizde sürekli aynı problemlerle karşılaşmamızdı: izleme ya çok pahalıydı (hizmetler temel uptime kontrolleri için 30$/ay veya daha fazla talep ediyordu) ya da kurulumu acı vericiydi (kendi altyapısını sağlaması gereken kendi kendine barındırılan çözümler).
Zaten Laravel ekosisteminde derin bir yere sahip olduğumuz için, gerçekten istediğimiz şeyi inşa ettik — basit, hızlı bir şekilde kurulan ve gerçek projeler için gerçekten işe yarayan bir ücretsiz katman. Vigilmon kendi içinde Laravel ve MySQL ile çalışıyor, çıplak bir Linux VPS üzerine dağıtılıyor. Kendisiyle izliyoruz.
Eğer Laravel ile şeyler inşa ediyorsanız, bunu sizin için yaptık. vigilmon.online’da ücretsiz kaydolun — kredi kartı yok, 14 günlük deneme süresi sona ermesi yok. Sadece işleyen bir izleme.
Sorularınız veya geri bildirimleriniz varsa, lütfen bize [email protected] adresinden ulaşın.
Kaynak: Orijinal Makale
- Vigilmon’un Sundukları (Ücretsiz Plan)
- Adım 1: vigilmon.online’da Kaydolun
- Adım 2: İlk HTTP İzleyicinizi Ekleyin
- Adım 3: Laravel Zamanlayıcınız için Bir Heartbeat İzleyici Ekleyin
- Adım 4: Slack ve E-posta Bildirimlerini Ayarlayın
- Adım 5: Durum Sayfanızı Kullanıcılarla Paylaşın
- Bonus: Monitörleri REST API ile Oluşturun
- Neden Vigilmon’u Yıldızladık


