27 Temmuz 2023 Perşembe

Logging & Monitoring Distributed System



Loglar, metricler ve traceler genellikle sistemleri gözlemlemenin üç ana unsuru olarak bilinir. Bunlar iyi anlaşıldıkları takdirde daha iyi sistemler oluşturmamızı sağlayacak güçlü toollardır.

Loglar bize sistemimizde gerçekte ne olduğunun bir kaydını verir. Doğaları gereği, tipik olarak kronolojiktirler ve diğer data sourcelerin  anlaşılması için context sağlarlar. Örneğin, bir metric'in neden yükseldiğini anlamak veya bozuk bir trace'te sorun gidermek için logları kullanabiliriz.

Metrikler, herhangi bir anda sistemimizin sağlığını ölçmek için bir yol sağlar. Metrikleri sorgulayarak “is the system up?”  veya "how many requests are currently being processed?" gibi sorulara cevap verebiliyoruz.

Traceler, requestlerin sistemimiz üzerinden nasıl aktığı konusunda bize görünürlük sağlıyor. Bir traceyi takip ederek darboğazların(bottlenecks) nerede oluşabileceğini görebilir ve sistemin hangi bölümlerinin requestleri process etmesinin en uzun sürdüğünü belirleyebiliriz.

Logları, metrikleri ve traceleri toplamak göz korkutucu olabilir, ancak yardımcı olabilecek bir dizi tool ve servis vardır. Özünde observability , sistemimizin davranışı hakkında ortaya çıkabilecek herhangi bir soruyu yanıtlayabilecek kadar iyi anlamakla ilgilidir. Logların, metriclerin ve tracelerin gücünden yararlanarak daha gözlemlenebilir ve sorun gidermesi daha kolay sistemler oluşturabiliriz.

Event Logging( Olay günlüğü tutmak)

Bir computer systeminde yada networkte meydana gelen eventlerin track edilmesi, storing edilmesi sürecidir. Event loggingin amacı,security konularını monitor etmenin yanı sıra problemleri track etmek ve tanılamak için kullanılabilecek aktivitelerin bir kaydını sağlamaktır.

Event loglar, bir sistemde veya networkte neler olup bittiğine dair detaylı bilgiler içerebilir. Bir kullanıcının ne zaman oturum açtığı veya kapattığı, hangi data sourcelere erişildiği ve dosyalarda veya diğer verilerde hangi değişikliklerin yapıldığı gibi ayrıntıları içerebilirler. Administratorlar , event logları analiz ederek sistemlerinin nasıl kullanıldığını daha iyi anlayabilir ve olası sorunları erkenden belirleyebilir.

Event log, sistemleri anlamak ve sorun gidermek için değerli bir tool olsa da, kötü amaçlar için de kullanılabilir. Saldırganlar, izlerini gizlemek ve tespit edilmekten kaçınmak için event logları kullanabilir. Bu nedenle, event logların düzgün bir şekilde güvenliğini sağlamak ve bunlara erişimi olan kişileri sınırlamak önemlidir.

Event loglar zaman damgası ve olayların kaydını paylaşırlar. En yaygın event log türü, bir bilgisayarda veya networkte meydana gelen olayları izleyen sistem günlüğüdür. Sistem günlükleri, işletim sistemleri, uygulamalar gibi cihazlar tarafından oluşturulabilir.

Diğer event log türleri arasında application logs, security logs ve access loglar bulunur. Uygulama günlükleri, belirli bir uygulamada meydana gelen olayları izlerken, güvenlik günlükleri, başarısız oturum açma girişimleri gibi güvenlikle ilgili olayları izler. Erişim günlükleri, kimin hangi kaynaklara ne zaman eriştiğinin kaydını sağlar.

Metrics

Metrikler, zaman aralıklarında ölçülen verilerin sayısal bir temsilidir. Metrikler, bir sistemin şimdiki ve gelecekteki zaman aralıklarındaki davranışı hakkında bilgi elde etmek için matematiksel modelleme ve tahminin gücünden yararlanabilir.

Metrikler, herhangi bir gözlemlenebilirlik stratejisinin hayati bir parçasıdır ve çok çeşitli performans göstergelerini izlemek için kullanılabilirler. Request latency, CPU usage, ve memory tüketimi gibi. Bunları ve diğer ölçümleri izleyerek darboğazların nerede oluşabileceğini görebilir ve sistemin hangi bölümlerinin istekleri işlemesinin en uzun sürdüğünü belirleyebiliriz.

Tracing ( izleme)

Tracing, distributed sistemin execution flowunu anlamaya yönelik bir tekniktir. Bir requestin kaynağından hedefine giderken process edilmesindeki her adımla ilgili bilgilerin kaydedilmesini içerir. Bu bilgi daha sonra request tarafından izlenen yolu yeniden oluşturmak ve darboğazları veya diğer sorunları belirlemek için kullanılabilir.

Tracing, gözlemlenebilirliğin önemli bir parçasıdır ve productiondaki sistemlerin davranışını anlamak için kullanılabilir. Traceleri analiz ederek, requestlerin sistemde tam olarak nasıl aktığını görebilir ve olası sorunları belirleyebiliriz.

Bazı toollar, karmaşık akışları anlamak için yardımcı olabilecek trace verilerinin görselleştirmelerini de sağlar.