Mimari (IT)DevOps mühendisi

Dağıtık uygulama mimarisinde izleme ve günlüğe kaydetme nasıl organize edilir?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

Dağıtık BT mimarilerinde izleme ve günlüğe kaydetme düzenlemesi, dayanıklılığı sağlamak, hataları tespit etmek ve analiz etmek ile hizmetlerin performansını değerlendirmek için anahtar rol oynamaktadır. Tüm hizmetler için merkezi bir günlükleme ve metrik sistemi uygulamak önemlidir, böylece sistemde neler olup bittiğine dair tam bir resim elde edilebilir.

Genel adımlar:

  1. Merkezi günlükleme — tüm hizmetler kayıtları tek bir sisteme yazar (örneğin, ELK yığını: Elasticsearch, Logstash, Kibana veya Grafana Loki).
  2. İstek izleme — hizmetler arasında isteğin “yolunu” takip etmek için dağıtık izleme sistemlerinin kullanılması (örneğin, Jaeger, Zipkin).
  3. İzleme ve uyarı verme — metrikleri toplamak ve görselleştirmek ve uyarı ayarları yapmak için Prometheus, Grafana kullanımı.

Python'da günlükleme ayarlarının örneği:

import logging from pythonjsonlogger import jsonlogger logger = logging.getLogger() logHandler = logging.StreamHandler() formatter = jsonlogger.JsonFormatter() logHandler.setFormatter(formatter) logger.addHandler(logHandler) logger.setLevel(logging.INFO) logger.info('Hizmet başlatıldı', extra={'service': 'orders', 'env': 'prod'})

Anahtar özellikler:

  • Tüm altyapı için tek bir şeffaflık penceresi sağlar.
  • Çoklu ortamda olayları bulmayı ve analiz etmeyi kolaylaştırır.
  • Bileşenlerin kötüleşmesi veya başarısızlıkları karşısında hızlı yanıt verme imkanı sunar.

Kandırmaca soruları.

Hizmetin tüm eylemlerini INFO düzeyinde günlüğe kaydetmek her zaman mı gerekir?

Cevap: Hayır, çünkü bu hızla günlük hacminin artmasına, performansın düşmesine ve gerçek hataların bulunmasını zorlaştırabilir. Günlük düzeylerinin anlamına (DEBUG hata ayıklama için, ERROR kritik sorunlar için, INFO önemli olaylar için) uymak daha iyidir.


Sadece altyapı düzeyinde metrik toplamak (CPU, RAM) ve uygulama düzeyindeki metrikleri yok saymak mümkün mü?

Cevap: Hayır. Uygulama düzeyi metrikleri (örneğin, yanıt süresi, hata sayısı) iş analitiği ve operasyonel tepki için kritik öneme sahiptir, bu metrikler, hizmetlerin mantığında olan “dar noktaları” görmekte yardımcı olur, sadece “donanımda” değil.


Dağıtık bir sistemde her zaman web sunucusu araçlarıyla standart HTTP istek izleme yeterli midir?

Cevap: Yanlış. Hizmet zincirlerini kapsayan karmaşık senaryolar için, her aşamada isteğin yolunu ve işlenme süresini görebilmek için, benzersiz bir Trace-Id ile tam anlamıyla dağıtık izleme gereklidir.