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:
- Fluentd veya Filebeat logları okur.
- Veriyi Google Cloud Pub/Sub kanalına gönderir.
- Pub/Sub, veriyi Dataflow üzerinden işler.
- 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ışı:
- Cloud server’da log toplama agent’ı (Fluentd, Filebeat) kurulur.
- Loglar Google Cloud Pub/Sub’a aktarılır.
- Dataflow ile veriler ayrıştırılır, dönüştürülür.
- BigQuery’ye tanımlı tabloya veriler yazılır.
- BigQuery üzerinden anlık sorgular ve dashboard’lar oluşturulur.