Brakująca warstwa między hot search a zimnym archiwum.
Przeszukiwalne, niezmienne, uśpione do momentu potrzeby.
Zbudowane na tej samej filozofii co DES: S3 jako jedyne źródło prawdy.
Zero zewnętrznych baz danych jako warunek konieczny działania.
Każdy zespół SOC staje przed tym samym napięciem: logi muszą być przechowywane latami, a żaden system nie robi dobrze jednocześnie retencji i wyszukiwania.
Wazuh, Splunk, Elasticsearch — doskonałe narzędzia do real-time search, ale koszt przechowywania danych przez 5–7 lat (wymóg NIS2/KNF) czyni je nieekonomicznymi. Płacisz za compute nawet gdy nikt nie szuka.
S3, taśmy, NFS — tanie i trwałe, ale nie mają indeksu. Pytanie "co robił IP 185.220.101.42 w lutym?" wymaga godzin ręcznego pobierania, dekompresji i grep. To nie jest workflow analityka SOC.
Regulatorzy wymagają niezmienności (WORM). GDPR wymaga prawa do usunięcia. Żadne z analizowanych rozwiązań rynkowych nie rozwiązuje tego napięcia architektonicznie — każde wymaga ręcznych obejść.
Policja, prokuratura, audyt KNF — wnioski o dane zdarzają się rzadko, ale wymagają błyskawicznej, udokumentowanej odpowiedzi z kryptograficznym dowodem integralności. Żaden grep tego nie zapewni.
Archiwum logów z indeksem encji, kryptograficzną integralnością i modelem operacyjnym zaprojektowanym pod rzeczywiste potrzeby SOC.
Jedno zapytanie przeszukuje audit_logs, firewall_logs i app_logs równolegle. Wyniki scalone i posortowane po czasie — pełna oś czasu aktywności encji (IP, username, hostname, session_id) w jednym widoku.
Cross-stream fan-outTombstone z hashowanymi doc_id eliminuje dane z widoku zapytań. Repack anchor entries zachowują ciągłość łańcucha kryptograficznego po fizycznym repaku. Audytor widzi udokumentowaną mutację, nie zerwany łańcuch.
Unikalne na rynkuRedis to zmaterializowany widok — można go usunąć i odbudować w minuty. Brak PostgreSQL, brak vendor lock-in. Kompatybilność z AWS S3, MinIO i Ceph/RGW. Dane żyją w standardowym S3, nie w zastrzeżonym formacie.
Zero lock-inKolumnowe pliki binarne z wbudowanym hotcache (Bloom filter + sparse index + min/max). Jeden Range-GET S3 daje decyzję skip/scan w <5ms. Własny format Bloom filtrów niezależny od wersji biblioteki.
Bloom filter ELBF v1S3 Object Lock (WORM), entity-scoped legal hold, BypassGovernanceRetention jako break-glass z MFA i alertem CloudTrail do CISO, pełny audit trail z embedded AuditTrailWriter bez zależności cyklicznych.
NIS2 / GDPR / DORA / KNFDane zapisane dziś do staging stają się jutro immutable archiwum. Każde źródło musi się uwierzytelnić: mTLS dla syslog, HMAC Bearer token dla HTTP POST, SASL/SCRAM dla Kafka. Zero anonimowych zapisów.
Zero anonymous writesKluczowa właściwość ELSA: infrastruktura wyszukiwania nie musi działać ciągle. Ingestory zbierają logi. CronJob buduje indeksy każdej nocy. S3 przechowuje archiwum. Redis i węzły query — są potrzebne tylko wtedy, gdy ktoś szuka.
Policja, prokuratura, audyt KNF — przychodząc raz w roku, zastają system, który w ciągu kilku minut jest gotowy do przeszukania lat danych. Po zakończeniu infrastruktura znika. Płacisz za storage, nie za stojący klaster.
Rzeczywiste scenariusze dla organizacji, które muszą przechowywać logi latami i móc je przeszukać w każdej chwili.
Analityk SOC dostaje alert z Wazuh: IP 185.220.101.42. Chce zobaczyć pełną historię — firewall, auth logi, app logi — z ostatnich 90 dni. Jedno zapytanie, kilka sekund.
Banki i firmy inwestycyjne muszą przechowywać logi systemów transakcyjnych przez 5–7 lat z pełną integralnością. KNF i DORA wymagają zdolności do odtworzenia pełnej historii zdarzeń.
Jednostki administracji publicznej objęte NIS2 muszą archiwizować logi infrastruktury krytycznej i odpowiadać na wnioski organów ścigania szybko i z dokumentacją.
Managed Security Service Providers mogą oferować ELSA jako usługę archiwalną dla swoich klientów — multi-tenant, z separacją danych per stream i pełną ścieżką audytu per klient.
ELSA spełnia wymagania regulacyjne architektury, nie jako konfiguracja na koniec projektu.
Pliki archiwalne blokowane natychmiast po promocji ze staging. Tryb GOVERNANCE (usuwanie z MFA) lub COMPLIANCE (nieusuwalne w żadnych okolicznościach).
Tombstone z hashowanymi doc_id eliminuje dane z wyników zapytań bez łamania WORM. Repack anchor entries zachowują ciągłość łańcucha po fizycznym repaku.
Unikalne na rynkuUprawnienie do fizycznego usunięcia WORM wymaga MFA, short-lived tokenu z OpenBao i generuje automatyczny alert CloudTrail do CISO. Nigdy nie jest osadzone w konfiguracji aplikacji.
Każda operacja (INGEST, QUERY, REPACK, LEGAL_HOLD, EXPORT) jest logowana przez AuditTrailWriter — embedded component bez zależności cyklicznych. Chain hash na każdym wpisie.
Blokada usunięcia dla konkretnej encji (IP, username) zamiast całego strumienia. System automatycznie identyfikuje dotknięte splity i nakłada Object Lock. Procedura four-eyes przy zdjęciu.
Każdy eksport danych zawiera audit_proof.json z hashami splitów, potwierdzeniem WORM i, jeśli dotyczy, informacją o repack anchor entries. Gotowy do przekazania audytorowi lub prokuraturze.
Model D+1 eliminuje race conditions. Bezstanowe węzły obliczeniowe zapewniają skalowalność bez koordynatora.
Syslog TCP/TLS (mTLS), HTTP POST (HMAC), Kafka (SASL/SCRAM), logRotate CLI. Każde źródło uwierzytelnione. Bezstanowe — zabij i uruchom ponownie bez utraty danych.
K-way merge micro-splitów, budowanie indeksów (Bloom + inverted), promocja do archiwum WORM, rebuild Redis. Overlap guard (Redis lock) i S3 conditional PUT zabezpieczają przed race conditions.
Zmaterializowany widok manifestów S3. Cluster namespace dla cross-stream lookupów. Całkowicie odtwarzalny z S3 w ~5 minut. Cardinality monitoring + sampled mode dla wysokiej kardynalności.
Cross-stream fan-out (CompletableFuture). Rate limiting + HTTP 429 (SmallRye bulkhead). Query budget estimation. Predicate pushdown: Redis → Bloom → min/max → columnar → stored fields.
| Komponent | Technologia | Uzasadnienie |
|---|---|---|
| Runtime | Java 21 + Quarkus | Reactive, non-blocking I/O; GraalVM native image dla CLI |
| Object storage | S3-compatible | AWS S3, MinIO, Ceph/RGW — ta sama kompatybilność co DES |
| Metastore cache | Redis 7.x | Atomic Lua scripts; sorted sets dla time-range lookupów |
| Kompresja danych | zstd level 3 | Dane kolumnowe — compression ratio >3× typowo |
| Bloom filter | ELBF v1 (własny) | Niezależność od wersji Guava; backward-compatible format |
| Posting list codec | VByte delta | 1–2 bajty per doc_id — minimalna zajętość indeksu |
| Secrets | OpenBao | Dynamic secrets dla BypassGovernanceRetention; MFA enforcement |
| Orchestration | Kubernetes | CronJob dla nightly, HPA dla query nodes, Helm charts |
| Observability | Prometheus + Grafana | Alert: elsa_compaction_last_success >26h → PagerDuty |
Skontaktuj się z nami, aby omówić wdrożenie ELSA w Twojej organizacji, uzyskać wycenę albo zadać pytanie techniczne dotyczące architektury.