Statping İle Status Page ve Monitoring Server
Merhaba,
Bir uygulama için geliştirme ve test aşamaları oldukça önemlidir. Lakin uygulamanın geliştirilmesi bitip, testlerden başarıyla geçtikten sonra yayına alındığı canlı ortamdaki davranışlarını gözlemleyebilmek ve anlık olarak ne durumda olduğunu bilebilmek kesintisiz bir şekilde sistemin devamlılığının sağlanması ve verimli bir şekilde yönetilebilmesi için daha da önemlidir. Bu içeriğimizde; bu ihtiyaca istinaden çözüm amaçlı olarak, web uygulamalarından tutun HTTP, TCP, UDP, ICMP gibi protokollerde çalışan ve gRPC gibi tüm hizmetleri monitor edebilmemizi sağlayan Statping isimli aracı ele alıyor olacağız.
İlk olarak her şeyden önce monitoring kavramı üzerinde durmayı Statping’i daha iyi anlamak açısından faydalı görmekteyim.
Monitoring Neden Önemlidir?
İyi kurgulanmış bir sistemde genellikle vadedilenin uygulamaların hatasız çalışması değil bilakis hata meydana geldiği taktirde hızlı müdahale edilebilirliktir(hiç yoktan öyle olmalıdır) İdeal bir sistemin yapısı tıpkı bir insan vücudunda olduğu gibi kritik uyarıcılara sahip olmalıdır ve anlık gelişimlere göre belirli seviyeler doğrultusunda öngörülebilir duyarlılıklar göstermelidir. Böyle durumlara istinaden önleyici refleksler geliştirebilmek için uygulamaların yaşam sürecindeki davranışlarını net bir şekilde izleyebilmeli yani teknik olarak monitoring edebilmeliyiz.
Özellikle monolithic mimarilerin hantal yapısından kurtulmak için benimsediğimiz microservice yaklaşımının getirisi olan dağıtık mimarilerde uygulamanın bütünsel açıdan işlevselliği parçaların(micro servislerin) her birinin sorunsuz ve düzenli bir şekilde çalışmalarına bağlıdır. Servisler, iş tanımları daralmış ve böylece işlevsel sorumluluk olarak küçülmüş olabilirler lakin bu durum sayılarının artmasına, sayıları arttıkça ise yönetilebilirliklerinin ön plana çıkmasına sebebiyet vermiştir ki bu da net her bir servisin adım adım izlenmesi zaruriyetini doğurmaktadır. Çünkü bütünsel olarak yaşam döngüsü her bir parçanın(micro servisin) işlevselliğine bağlı olan uygulamalar da her servis bir kalp görevi görmekte, herhangi birinde olabilecek bir sıkıntı uygulama açısından kriz olarak değerlendirilebileceği gibi monitoring edilmekten başka risk faktörünü yönetebilecek bir garanti de sağlanamamaktadır.
Bu yüzden son kullanıcı ile ciddi etkileşime giren uygulamalarda ve özellikle microservice yaklaşımını benimsemiş projelerde monitoring sistemin bekası için hat safhada önemli bir bileşendir diyebiliriz.
Statping Nedir?
Stapping; Linux, Windows, MacOS gibi birden fazla işletim sistemini ve MySQL, Postgres ve SQLite veritabanlarını destekleyebilen, uygulamaların canlı ortamdaki davranışlarını monitoring edebilen ve en önemlisi tamamen özelleştirilebilir bir nitelikte olan open source bir araçtır. Donanımsal altyapıyı hiçte zorlamayacak Statping’in şu anki Docker image boyutu 20 MB bile etmemektedir. Ayrıca Google Store ve App Store’da ücretsiz olarak mobil versiyonları mevcuttur.
Statping Nasıl Kurulur?
Statping’i kurabilmek için bu içeriğimizde Docker’dan istifade ediyor olacağız. Bunun için aşağıdaki docker talimatını vermeniz yeterli olacaktır.
docker run -it -p 8080:8080 statping/statping
İlgili talimatı çalıştırdıktan sonra http://localhost:8080 adresine istekte bulunursanız eğer aşağıdaki ekranla karşılaşacaksınız.Bu ekranda Statping için lazım olan veritabanı ve kullanıcı bilgileri ile diğer tüm öğelere ait alanlar mevcuttur. Ben deniz elimin altında mevcut bulunan sistemlere özel yapılandırma eşliğinde ilgili aracı kuruyorum. Sizlerin de aynı şekilde kendinize göre yapılandırmaları özelleştirmeniz gerektiğini hatırlamakta fayda görmekteyim.
Gerekli verileri girdikten sonra aşağıdaki ekran görüntüsünde olduğu gibi servisleri kontrol edebilecek hali hazırda bir status page sunacaktır.Bu aşamadan sonra http://localhost:8080/dashboard adresine gelirseniz eğer dashboard üzerinden tüm servisleri görebilir yahut bunları özelleştirip yenisini ekleyebilirsiniz.
Statping aracılığıyla özellikle .NET temelli servislerde Health Check özelliği ile kurulan monitoring yapılanmasını daha az maliyette hızlı ve pratik inşa edebilir ve metrikleri daha görsel hallere getirebilirsiniz.
Son olarak Statping’in, monitoring edilen herhangi bir servis ile aynı sunucuda olması durumunda anlık kesintilerden etkilenmesi söz konusu olacağından dolayı ayrı bir sunucu üzerinde yapılandırılması önerilmektedir.
İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…