Spark, Hive, Kafka, Hadoop ve Superset ile açık kaynaklı, ölçeklenebilir ve gerçek zamanlı güvenlik analitiği platformu.
1) Neden "Big Data SIEM"?
Geleneksel SIEM (Security Information and Event Management) çözümleri çoğunlukla veri hacmi bazlı lisanslanır (GB/Gün). Bu durum kurumları, maliyeti düşürmek adına bazı kritik logları silmeye veya görmezden gelmeye zorlar.
Lakehouse mimarisi bu sorunu çözmek için tasarlandı:
Sınırsız ve ucuz veri depolama (Hadoop HDFS).
Gerçek zamanlı uyarı ve anomali tespiti (Spark Streaming).
Geriye dönük yıllar süren hızlı SQL analizleri (Hive).
Lisans maliyeti %0, sadece donanım masrafı.
2) Veri Giriş Kapısı: Apache Kafka Nedir?
Apache Kafka, dağıtık, yüksek performanslı bir olay akışı (event streaming) platformudur.
Saniyede milyonlarca log üretildiğinde (DDoS saldırısı, log burst vb.) sistemlerin çökmesini engellemek için bir "tampon" (buffer) görevi görür.
Topic: Mantıksal veri kanallarıdır (örn. web-logs, syslogs).
Zero-Copy & PageCache: Veriyi RAM'den diske kopyalamadan doğrudan ağ kartına (NIC) gönderir, bu da inanılmaz düşük gecikme sağlar.
KRAFT Mimarisi: Artık Zookeeper'a ihtiyaç duymadan metadata yönetimini kendi içinde yapar (KRaft mode).
Scalability: Partition yapısı sayesinde yatayda sınırsız ölçeklenebilir.
3) Analiz Motoru: Apache Spark Nedir?
Apache Spark, büyük veri kümelerini bellek (RAM) üzerinde paralel olarak işleyebilen, inanılmaz hızlı bir dağıtık analiz motorudur.
Projelerimizde Spark Structured Streaming kullanarak Kafka'dan akan logları anlık olarak okur, temizler, formatlar (Extract, Transform, Load - ETL) ve depolarız.
Project Tungsten: Veriyi Java nesneleri yerine ham binary formatında (Off-Heap) işleyerek Garbage Collection yükünü sıfırlar.
Catalyst Optimizer: SQL sorgularını otomatik olarak optimize eder ve en hızlı çalışma planını (DAG) oluşturur.
Structured Streaming: "Exactly-Once" işlem garantisi ile veri kaybını önler.
4) Veri Gölü: Apache Hadoop (HDFS)
HDFS (Hadoop Distributed File System), devasa boyutlardaki dosyaları standart sunucuların disklerine dağıtarak depolayan bir dosya sistemidir.
Güvenlik logları yıllarca petabaytlarca veri oluşturur. HDFS bu veriyi bloklara böler ve farklı makinelere kopyalayarak saklar.
NameNode: Sistemin beyni; hangi dosya hangi makinede, haritayı tutar.
DataNode: Gerçek veriyi depolayan işçi sunucular.
Reliability: Her veri bloğu varsayılan olarak 3 (bizde 2) kez kopyalanır.
5) Veri Kataloğu: Apache Hive
Apache Hive, Hadoop üzerinde depolanan ham verilere SQL kullanarak sorgu atmamızı sağlayan bir veri ambarı katmanıdır.
Lakehouse mimarisinin kilit taşıdır; veriyi bir tablo gibi gösterir.
Hive Metastore: Dosyaların tablo yapısını ve şemasını yönetir.
Lakehouse Pattern: Parquet gibi yüksek performanslı kolonel formatlarla SQL hızını birleştirir.
Interoperability: Hem Spark hem de BI araçları (Superset) aynı metadata üzerinden konuşur.
6) Görselleştirme: Apache Superset & Alerting
Apache Superset, kurumsal düzeyde bir veri görselleştirme ve BI (Business Intelligence) platformudur.
SOC analistleri için gerçek zamanlı güvenlik dashboardları, saldırı trendi grafikleri ve raporlar oluşturmak için kullanılır.
SQL Lab: Hive üzerindeki petabaytlarca log verisini doğrudan tarayıcıdan SQL ile sorgula.
Dashboard: Grafik, tablo, harita gibi görsel bileşenlerle SOC paneli oluştur.
Oto-Senkronizasyon: Yeni tablolar ve sütunlar (`ingest_ts`, `source_topic`) anlık olarak indekslenir.
7) SIEM SOC Overview: Canlı İzleme
Platformumuz, kurulduğu anda 6 farklı kritik güvenlik metriğini içeren tam teşekküllü bir SOC Dashboard'u ile birlikte gelir:
Hacim Ölçümü: Toplam işlenen log sayısı ve anlık trafik yoğunluğu.
Saldırı Analitiği: Benzersiz saldırgan IP sayıları ve hedef alınan servisler.
Zaman Serisi: Dakikalık bazda log akış trendi (Events Over Time).
Canlı Akış: En son gelen 50 logun tüm detaylarıyla (IP, Method, Path, OS) tablolandığı canlı panel.
graph TD
subgraph FLOG["📡 Log Generators (Flog)"]
FW["Flog Web web-logs"]
FS["Flog Syslog syslogs"]
FA["Flog App app-logs"]
FE["Flog WinEvent win-event-logs"]
end
subgraph KAFKA["📨 Messaging Layer"]
KB["Kafka Broker KRaft Mode :9092"]
end
subgraph SPARK["⚙️ Processing Layer (Spark)"]
SM["Spark Master :8080 · :7077 · :10000"]
SW1["Spark Worker 1 2G RAM · 2 Cores :8081"]
SW2["Spark Worker 2 2G RAM · 2 Cores :8082"]
end
subgraph HIVE["🗂️ Data Cataloging (Hive)"]
HM["Hive Metastore :9083"]
HS2["Hive Server2 :10001 · :10002"]
end
subgraph HDFS["💾 Distributed Storage (HDFS)"]
NN["Namenode :9870 · :8020"]
DN1["Datanode 1"]
DN2["Datanode 2"]
end
subgraph DB["🗄️ Unified Database"]
PG[("Postgres")]
end
subgraph VIZ["📊 Analytics & Visualization"]
SRED["Superset Redis"]
SUP["Superset :8088"]
end
FW -->|"web-logs"| KB
FS -->|"syslogs"| KB
FA -->|"app-logs"| KB
FE -->|"win-event-logs"| KB
KB -->|"Stream Consume"| SM
SM --- SW1
SM --- SW2
SM -->|"Parquet Write"| NN
NN --- DN1
NN --- DN2
HM -->|"Metadata DB"| PG
SM -.->|"Schema Registry"| HM
HM -.->|"Warehouse location"| NN
SUP -->|"SQL Query"| SM
SM ==>|"Data Read (Parquet)"| NN
SUP -->|"Superset DB"| PG
SUP --- SRED
style FLOG fill:#f8fafc,stroke:#00b894,color:#0f172a
style KAFKA fill:#f8fafc,stroke:#e17055,color:#0f172a
style SPARK fill:#f8fafc,stroke:#fdcb6e,color:#0f172a
style HIVE fill:#f8fafc,stroke:#74b9ff,color:#0f172a
style HDFS fill:#f8fafc,stroke:#a29bfe,color:#0f172a
style DB fill:#f8fafc,stroke:#636e72,color:#0f172a
10) Mikroservis & Konteyner Mimarisi
Big Data platformumuz devasa bir monolit yapı değildir. Her bir Apache bileşeni birbirinden tamamen izole edilmiş, kendi yaşam döngüsü olan Docker konteynerleri (Mikroservisler) olarak çalışır.
Bu bize şu avantajları sağlar:
Bağımsız Ölçeklendirme: Log hacmi artarsa sadece Kafka Broker sayısını (`docker compose scale`) artırabiliriz. Spark veya Hive'ı etkilemez.
İzolasyon: Spark işçisi (worker) %100 CPU tavanına vursa bile Hadoop HDFS'in okuma/yazma performansı etkilenmez.
Kolay Dağıtım (Deployment): `docker-compose.yml` dosyamız altyapının kod (Infrastructure as Code) halidir. Saniyeler içinde tüm cluster ayağa kalkar.
Tam Uyum: Yazılımcının bilgisayarındaki ortam ile gerçek üretim (Production) ortamı birebir aynıdır.