Dokümantasyon
Çalıştırmak — bizim sunucumuzda ya da sizinkinde.
İki durumda da aynı compose dosyası. Buradaki hiçbir şey yalnızca bulutta çalışan bir özellik değil; çünkü bir şirketin kendi çalıştıramadığı bir uyumluluk ürünü, denetleyemediği bir üründür.
SIEM’e akış
Denetim kayıtları aynı zamanda güvenlik telemetrisidir ve onları ilişkilendiren ekibin zaten bir aracı vardır. Saklanan her parti oraya aynalanır — taşıma değil aynalama: asıl kayıt olay deposunda kalır.
| Splunk | HTTP Event Collector. Her olay kendi zarfında, epoch saniyesi ve indeksinizle. |
| Microsoft Sentinel | Log Analytics veri toplama uç noktası, adını verdiğiniz özel tabloya. |
| Elasticsearch / OpenSearch | Bulk API, create ve belge kimliği olarak olay kimliğiyle — böylece tekrarlanan bir parti sessizce üzerine yazmak yerine yinelenen olarak reddedilir. |
| Webhook | Satır sonuyla ayrılmış JSON alan herhangi bir HTTPS uç noktası. |
Dördünde de tek bir alan yapısı. Adlar her satıcının kendi üslubu yerine dışa aktarma ve sorgu API’siyle eşleşir; böylece güvenlik duvarı kayıtlarıyla ilişkilendirme yapan bir müşteri alan adını bir kez yazar ve Splunk’tan Elastic’e geçmek kayıtlı aramalarını geçersizleştirmez.
# Generate the key once, then give it to both the dashboard and the processor.
dotnet run --project tools/Reldavi.Cli -- siem-key
Siem__Enabled=true
Siem__CredentialKey=<32 random bytes, base64>
Toplayıcı jetonları, yalnızca yapılandırmada duran bir anahtarla şifrelenerek saklanır. Panel ve işleyici aynı anahtarı taşımalıdır; anahtarı kaybetmek denetim verisini değil saklanan jetonları kaybettirir — yeniden girilmeleri gerekir.
Kendi sunucunuzda
Tek bir compose dosyası PostgreSQL, ClickHouse, mesaj kuyruğu, iki API ve paneli ayağa kaldırır. İlk açılışta müşterinizi, sahip hesabınızı ve bir veri alım anahtarını oluşturur; anahtarı bir kez yazdırır.
cd deploy
cp .env.example .env # change every secret in it
docker compose up -d
# The ingest key is printed once, into the ingestion service's log.
docker compose logs ingestion-api | grep "Ingest API key"
Yedekleme ve geri yükleme
Kendi sunucunuzda çalıştırmak, kopyaların sizde durması demek. Bu platformu sıradan bir uygulamayı yedeklemekten ayıran tek bir şey var ve onu ihtiyaç duyduktan sonra değil önce bilmek gerekir.
| İki veritabanı, tek yedek | build/backup.sh ikisini birlikte alır ve gördüğü sayıları bir manifest'e yazar; böylece geri yüklemenin karşılaştıracağı bir şey olur. |
| Ve yanındaki sırlar | Siem__CredentialKey saklanan her SIEM toplayıcı jetonunu çözer. Kaybederseniz her müşteri kendi jetonunu elle yeniden girer. O .env içindedir, iki veritabanında da değil. |
| Önce kontrol düzlemi | İki yarı da başarılı olduğu sürece sıra fark etmez. Bu sıra, ikinci yarı başarısız olursa kanıtın sağ kaldığını bilerek kalmanız için seçildi. |
| Sonra kanıtlayın | Geri yükleme veri geri geldiğinde bitmez. reldavi verify mühürlü her günün hâlâ kendi kontrol noktasını verdiğini söylediğinde biter — ve bunu size başka hiçbir şey söylemez. |
Tam yordam, ona güvenmeden önce yapılacak tatbikat dahil, depoda docs/runbook-backup-restore.md içinde. Delil paketleri kasten yedeklenmez: paket bir çıktıdır ve iki veritabanından yeniden yazılabilir; denetçiye verilmiş olan da zaten denetçinin sakladığı yerde durur.
Gözlemlenebilirlik
SDK, OpenTelemetry metrikleri yayar. Meter'ı kaydedin ve ilk satır için alarm kurun.
builder.Services.AddOpenTelemetry()
.WithMetrics(metrics => metrics
.AddMeter(ReldaviDiagnostics.MeterName));
| Metric | |
|---|---|
| reldavi.events.dropped | Tampon dolu olduğu için kaybedilen olaylar. Bunun için alarm kurun. Sıfır değilse denetim kapsamınızı kaybediyorsunuz. |
| reldavi.capture.duration | Interceptor içinde, sizin iş parçacığınızda geçen süre. “Ek gecikme yok” vaadinin ölçülmüş hâli. |
| reldavi.events.delivered | Veri alım uç noktasının kabul ettiği olaylar. |
| reldavi.batches.failed | Yeniden denemeler tükendikten sonra vazgeçilen paketler. |
Hız sınırları ve geri basınç
Alım uç noktası müşteri bazında hız sınırlıdır: bir token bucket, saniyede 50 istek, 200 burst ve her istek on bin olaya kadar taşıyabilir. Sınır, ne kadar denetim yazabileceğinizi değil istek başına düşen maliyeti sınırlar — azami parti boyutunda müşteri başına saniyede yarım milyon olay eder.
| IP'ye değil müşteriye göre bölünür | Sunucularınızdan gelen her istek birkaç NAT adresinden çıkar; IP'ye göre bölmek ya sizi tek bir istemci sayıp kısardı ya da sizi başkalarından hiç ayırmazdı. |
| Sabit pencere değil, token bucket | Denetim trafiği doğası gereği ani yükselir — gecelik bir iş saniyede on bin satır yazar. Sabit pencere, ortalama hızınız sınırın çok altındayken o yükselmeyi reddederdi. |
| Reddetme `Retry-After` taşır | Sınırı bir kesintiye değil geri basınca çeviren şey budur. Bu olmadan düzgün davranan bir istemci hemen tekrar dener ve yüklenmeyi büyütür. Buradaki her SDK buna uyar. |
| 429 yüzünden hiçbir şey kaybolmaz | İstemci partiyi tutar ve yeniden dener. Olay kaybettiren şey, tamponun uç noktanın boşalttığından uzun süre hızlı dolmasıdır — ve o sessiz değil, sayılır ve alarm kurulabilir. |
Kendi sunucunuzda mı? Bunlar RateLimiting altında yapılandırmadır. Varsayılanlar, bir müşterinin diğerlerini aç bırakamayacağı paylaşımlı bir kurulum için seçildi; tek müşterili kendi donanımınızda yükseltin.
İngilizce ve Türkçe
Arkasında İngilizce bir ürün duran çevrilmiş bir tanıtım sitesi değil. Panel, dışa aktarımlar, delil paketi ve içindeki doğrulama yönergeleri iki dilde de yazılmıştır ve herkes kendi dilini seçer — aynı müşteride İngilizce okuyan bir mühendisle Türkçe okuyan bir uyum sorumlusu aynı ize bakabilir.
| Arama tüm alfabede büyük-küçük harf farkını yok sayar | öztürk araması Mehmet Öztürk kaydını bulur. Yalnızca ASCII için yazılmış bir eşleme — şaşırtıcı sayıda sistemde varsayılan budur — Ö ile öyü farklı harfler sayar; o zaman bir Türkçe isim ancak büyük harfleri doğru tahmin edilirse bulunur. Üstelik kimsenin şikâyet etmeyeceği biçimde başarısız olur: hata vermez, yalnızca olması gerekenden az satır döndürür. Bir yürüyüş testi, tohum verisinden alınan bir ismin küçük harfli hâlini arar ve satırın geri gelmesini bekler. |
| Delil paketi iki dillidir | HOW-TO-VERIFY.txt ikisini birden taşır; böylece paket, bir doğrulama yordamını elle çeviren biri olmadan denetçiye verilebilir. |
| Tarih ve sayılar okuyana göre | Sunucuya göre değil. Denetçinin yanlış sırada okuduğu bir zaman damgası, tartışma başlatan bir zaman damgasıdır. |
Sırada ne okunur
Şema, SDK kaynakları ve mimari notların tamamı açıktır. Bir şey belirsizse, bu bizim dokümantasyonumuzdaki bir hatadır. Bize yazın.