Cloud Server Log Verisini Gerçek Zamanlı BigQuery’ye Aktarmak

Cloud server altyapısında uygulamalardan veya sunucu bileşenlerinden üretilen log verilerinin gerçek zamanlı olarak analiz edilmesi, operasyonel verimliliği artırmanın ve güvenlik açıklarını hızlıca tespit etmenin temel yollarından biridir. Bu ihtiyaca cevap veren çözümlerden biri, log verilerinin gerçek zamanlı olarak Google BigQuery’ye aktarılmasıdır. Bu süreç, hem yüksek performanslı veri analizi sağlar hem de log verisi üzerinden karar mekanizmalarını güçlendirir.


1. Log Verisi Kaynağını Belirleme

İlk adımda hangi kaynaklardan log verisi toplanacağı belirlenmelidir. Örnek kaynaklar:

  • Web sunucu logları (Apache, Nginx)
  • Uygulama logları (Node.js, PHP, Python servisleri)
  • Sistem logları (syslog, journalctl)
  • Güvenlik logları (fail2ban, firewall)

Bu loglar genellikle düz metin dosyalarında veya JSON formatında tutulur.


2. Log Verisinin Toplanması ve Aktarılması

Log verisinin toplanması için kullanılan en yaygın yöntemlerden biri log forwarder uygulamalarıdır:

  • Fluentd
  • Logstash
  • Filebeat

Bu araçlar sayesinde log verisi önce bir merkezi pipeline’a gönderilir, ardından Google BigQuery’ye aktarılır.


3. Gerçek Zamanlı Aktarım İçin Ara Katman: Pub/Sub

Google Cloud altyapısında logları gerçek zamanlı BigQuery’ye aktarmak için şu tip bir yapı kurulabilir:

  1. Fluentd veya Filebeat logları okur.
  2. Veriyi Google Cloud Pub/Sub kanalına gönderir.
  3. Pub/Sub, veriyi Dataflow üzerinden işler.
  4. Temizlenen ve işlenen veri BigQuery tablosuna yazılır.

Bu yapı yüksek hacimli verilerde dahi düşük gecikmeli veri aktarımını mümkün kılar.


4. Veri Şemasının Tanımlanması

BigQuery’ye aktarılacak log verisinin yapısı önceden tanımlanmalıdır. Örneğin bir web erişim logu için şu alanlar tanımlanabilir:

  • timestamp
  • ip_address
  • request_path
  • status_code
  • response_time_ms

Bu şemayla uyumlu JSON formatında loglar işlenir ve tabloda anlamlı hâle gelir.


5. Filtreleme, Maskleme ve Zenginleştirme

Veri aktarım sırasında şu işlemler yapılabilir:

  • IP maskesi gibi güvenlik önlemleri
  • Gereksiz log satırlarının filtrelenmesi
  • Loglara geo-location, user-agent bilgisi eklenmesi (zenginleştirme)

Bu işlemler Dataflow veya Logstash üzerinden yapılabilir.


6. BigQuery’de Sorgulama ve Görselleştirme

BigQuery’ye aktarılan log verisi anlık olarak sorgulanabilir. Örnek sorgular:

SELECT request_path, COUNT(*) as count 
FROM `project.dataset.logs`
WHERE timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
GROUP BY request_path
ORDER BY count DESC

İsteğe bağlı olarak, görselleştirme için Google Looker Studio (eski adıyla Data Studio) ile bağlantı kurulabilir.


7. Maliyet ve Performans Ayarları

BigQuery’de sürekli veri yazımı ve sorgulama maliyetli olabilir. Bu yüzden:

  • Partitioning ve Clustering kullanılmalı
  • Gereksiz verilerden kaçınılmalı
  • Veriler streaming insert yerine batch insert ile aktarılabilir (bazı durumlarda daha ekonomik)

Özetle Kurulum Akışı:

  1. Cloud server’da log toplama agent’ı (Fluentd, Filebeat) kurulur.
  2. Loglar Google Cloud Pub/Sub’a aktarılır.
  3. Dataflow ile veriler ayrıştırılır, dönüştürülür.
  4. BigQuery’ye tanımlı tabloya veriler yazılır.
  5. BigQuery üzerinden anlık sorgular ve dashboard’lar oluşturulur.

Vps.com.tr