Selamlar,
Siteme giriş yapan veya istek atmış olsa bile siteye girdiği andan itibaren geçici süreyle herkesi izleyen bir sistem yapacağım.
Bu sistemin tek gayesi olurda ddos alırsak istekler nasıl gelmiş,nereden gelmiş nasıl korumalıyız gibi analiz verisi oluşturması amacıyla yapıyorum.
Sorumuza gelirsek;
Şimdi ddoslar saniyelik 10,100,1000 veya 50K,100K gibi istekler değil,saniyelik 300,400,500K ve üstü istekler atılıyor.
1. Sorum: Şimdi her isteği anında databaseye kaydetmeye çalışırsak database lock olabilir çünkü saniyelik 300.000 write ciddi bir eylem. Bunu şöyle yapayım dedim Postresql kullanıyorum ram'e alayım ram'dan yapayım ama saniyelik 300.000 istek sabit gelince 3-4. saniyede gene de lock olacak gibi(en azından lock derken yavaşlamalar kilitlenmelere yakın olaydan bahsediyorum) bu mantık kafama yatmadı,bunun yerine ne yapabilirim? Yani write sistemini nasıl yapabilirim?
2. Sorum: Database'de guests adında bir tablo açıp içine visitor_id - actions adında bir kısım açıp bu actions sütununu toast yapısına geçirir orada "Login Page - After a 00:50 second wait and redirect to Neworder" gibi mi yapmalıym ve oraya her eylemi eylem/n eylem/n eylem/n olarak mı kaydetmeliyim yoksa daha mantıklı bir tür var mıdır?
Ayrıca actions kısmı sadece ilk 1 dakika log tutacak,çünkü ddos atılırken her istek max 1-2 dakika yaşıyor o 1-2 dakikada yakaldığımız gibi parçalarsak ortada ddos kalmamış olacak.
Database Şeması Nasıl Olmalı?
10
●244
- 01-02-2026, 14:11:34
- 01-02-2026, 14:19:21Bu şekilde her isteği veritabanına yazmak pek mantıklı değil hocam, özellikle DDoS gibi yüksek trafikte DByi direkt kilitler. Böyle durumlarda genelde RAM tarafında sayaç tutulur, anormal hareket varsa sadece özet veri kaydedilir. Yoksa saniyede yüz binlerce insert hem sistemi yorar hem de işe yaramaz. En sağlıklısı anlık analiz + sadece şüpheli durumları loglamak.
- 01-02-2026, 14:22:00Logları dosyaya yaz (JSONL format, Pino/Node.js). Dosya I/O, DB'den hızlı.
Logrotate ile her dakika dosya döndür.
Arka planda async olarak dosyadan PostgreSQL'e yükle (batch insert).
DDOS sırasında sadece dosyaya yaz, DB işini sonra yap. en mantıklısı bu - 01-02-2026, 14:22:42Evet doğru diyorsunuz,peki anormal hareket dediğmiiz yani örneğin son 10 dakikadadır normalde 1000 istek geliyorsa,bir anda bu 10.000 olduysa o 10.000 isteği rama tutup o 10.000 isteğin versini mi log tutalım diyorsunuz?ArasTasarim adlı üyeden alıntı: mesajı görüntüle
Ayrıca bunlaraı da ben analiz etmeyeceğim,Gemini apisiyle beraber isteklerin loglarını çıkartıp özetleri üzerinden detaylarıyla çalışacağım sadece - 01-02-2026, 14:28:51Merhaba,
Bunu webserver tarafında kullanıcı bazlı olarak veri tutulabilir ama söz konusu ddos ise milyonlarca belkide milyarlarca request alır sistem ddostan düşmese bile veri işlenirken düşebilir. Benzer projelerle uğraşmıştım proxy veya serverin loglarıyla yine dosyayı Db değilde fiziki olarak tutmak en mantıklısı kalıyor. - 01-02-2026, 14:43:07Ya açıkcası o kadarına gerek olacağını -şuanlık- sanmıyorum. Şuanda ara sıra saldırı alıyoruz günlük 1-2M istek geliyor bazen geri 1 hafta boyunca kesiliyor. Sonra tekrardan oluyor,aslıdna sistemimiz gram yavaşlatmıyor hiç sorun olmuyor waf servisim yeteri kadarıyla algılıyor lakin,en azından bunların da nasıl yaptığını öğrenelim ciddileştikleri an önce bu kuralları aktif eder sonrasında yeni kurallar ekleriz ve evet ddos anında o dediğniiz sunucular gerekebilir en kötü o zaman alırız.Şuanda sadece hazırlık için yaptığım için öyleli sunucular gerektiğini varsaymıyorum.İbrahimH adlı üyeden alıntı: mesajı görüntüle