LogMan.io Tenant Rex¶
LogMan.io Tenant Rex (lmio-trex) je mikroslužba, která spravuje obchodní tenanty a automaticky nasazuje pro každého tenanta modely baseliner a correlator vzdálené kontroly.
Tato stránka je jediným místem pro operátory a administrátory, kteří potřebují pochopit, jak T Rex umisťuje korelátory, obnovuje je a které soubory odstraňuje.
Analytici, kteří v uživatelském rozhraní pouze povolují pravidla, by si měli přečíst Nasazení detekčních pravidel.
Co dělá T Rex¶
- Vytváří, aktualizuje a odstraňuje objekty podnikových nájemců (MongoDB), včetně atributů, jako jsou schéma a časové pásmo.
- Píše modely knihoven do
/Site/model-trex-{tenant}.yamlprolmio-baselineralmio-correlator. - Po změně modelu žádá ASAB Remote Control, aby spustil
compose up(standardně postupynode_upgrade/cluster_sequential_up; volitelně starší metoda per-nodePOST /node/{id}). - Volitelně komunikuje s Kafka Admin API pro zpoždění spotřebitelů, členství (HA) a mazání nepoužívaných skupin spotřebitelů korelátoru.
T Rex ne hodnotí korelační pravidla. Hodnocení pravidel zůstává uvnitř lmio-correlator.
Volba vůdce¶
S volbou vůdce pomocí ZooKeeper ([trex] leader_name, výchozí lmio-trex):
- Pouze vedoucí přestavuje modely, spouští životní cyklus korelátoru (prodleva / HA / údržba Kafka) a ukládá nájemce do ZooKeeperu.
- Následovníci udržují HTTP API.
Spusťte jednu nebo více instancí T Rex na každý cluster. Musí sdílet MongoDB a ZooKeeper.
Umístění korelátoru¶
T Rex vytváří instance korelátoru z výběru nájemce Detections v MongoDB (knihovní složky; vybraný soubor se mapuje na svou rodičovskou složku).
Vyloučené složky¶
Ve výchozím nastavení se tyto předpony knihoven nikdy nezmění na skupiny korelátorů ([correlator] exclude_folders):
/Detections/Parsec//Detections/Filtry/
Jsou vyřazeni z výběrů nasazení a z tvorby modelů.
Hloubka složky (folder_max_depth)¶
Ve výchozím nastavení T Rex umístí korelátor na nejbližší / nejhlubší vybranou složku.
Hloubku můžete omezit pod vybranými kořeny pomocí [correlator] folder_max_depth (víceřádkově path=N). Hloubka je počet segmentů cesty pod tímto kořenem.
Výchozí:
[correlator]
folder_max_depth=
/Detections/Sigma/=3
Příklad s /Detections/Sigma/=3:
- Cesta k pravidlu:
/Detections/Sigma/windows/builtin/security/account_management/rule.yaml - Korelátor
groups:/Detections/Sigma/windows/builtin/security/ - Hlouběji ukryté podsložky sdílejí tu jednu instanci (korelátor stále načítá pravidla rekurzivně).
Cesty, které nejsou uvedeny, si zachovávají chování nejbližší / nejhlubší složky (typické pro /Correlations/…).
Nastavení folder_max_depth v konfiguraci nahrazuje celý výchozí seznam. Pokud přidáte jiné kořenové složky a stále chcete limit Sigma, znovu zahrňte /Detections/Sigma/=3.
Prázdné nebo chybějící složky¶
Pokud vybraná složka nemá v Knihovně žádné povolené soubory pravidel (je prázdná, smazaná nebo všechny jsou zakázané), T Rex tento korelátor z modelu vynechá. Při příští přestavbě ho prostřednictvím Vzdálené správy up odinstaluje.
Kafka spotřebitel group_id¶
Každá instance korelátoru získá explicitní skupinu spotřebitelů Kafka pod pipeline:CorrelatorsPipeline:KafkaSource:
lmio_correlator_<instance_id>
Pomlčky v ID instance se změní na podtržítka.
Když instance opustí model, T Rex smaže tu spotřebitelskou skupinu (pokud je nastaveno [kafka] bootstrap_servers). Periodická údržba také odstraňuje opuštěné skupiny s předponami lmio_correlator* a starší lmio-correlator*.
Adresáře s daty na disku nejsou mazány. Po odstranění instance může na uzlu zůstat hostitelská složka, například /data/ssd/correlators/lmio-correlator-…. Příkaz Remote Control up neodstraní nepoužívané zdroje svazků. Pokud je potřeba, vyčistěte je na uzlu.
Rozdělování pravidel založené na prodlevě¶
Když je [correlator:lag] enabled=yes a Kafka je dostupná:
- T Rex vzorkuje zpoždění spotřebitele pro známé skupiny.
- Chronicky rostoucí zpoždění snižuje efektivní limit pravidel na instanci pro tuto složku.
- Další přestavba modelu vytváří více instancí se stejnou složkou
groups, ale s různými částmiread_from/read_declarations. - Každá část má svůj vlastní
group_ida stále čte celý proud událostí; hodnotí pouze svůj podmnožinu pravidel.
Tím se přidává kapacita CPU pro pravidla. Nejde o škálování particí Kafka.
I když je adaptace zpoždění vypnutá, T Rex stále rozděluje složku, pokud má více pravidel než default_rules_limit (výchozí 500), až do max_instances_per_folder (výchozí 10).
Zakázání škálování korelátoru¶
- Zastavte snižování limitu pravidel na jeden případ způsobené zpožděním:
[correlator:lag]
enabled=no
- Uchovávat jednu instanci korelátoru na složku bez ohledu na počet pravidel (žádné statické dělení):
[correlator:lag]
enabled=no
max_instances_per_folder=1
Alternativně zvyšte default_rules_limit dostatečně vysoko, aby žádná složka jej nepřekročila. Kafka sampling pro HA může stále používat sample_every_ticks z této sekce; pouze přehodnocení zpoždění se přeskočí, pokud je enabled=no.
Zakázat synchronizaci položky knihovny (detekční obrazovka)¶
Po změně výběru detekce se T Rex synchronizuje s příznaky zakázání asab-knihovny podle výběru (PUT /library/item-disable/...) pro YAML ve nasazených složkách. Vybraná pravidla, která byla zakázána, se povolí; nevybraná se zakážou. To udržuje knihovnu a obrazovku detekcí v souladu.
Ve výchozím nastavení T Rex synchronizuje každou složku (item_disable_sync_max_rules=0). Velké složky jsou pomalé (jedno PUT na pravidlo, které je potřeba změnit). Nastavte kladnou hodnotu [correlator] item_disable_sync_max_rules (např. 500) pro přeskočení zakázání položek u nadměrných složek a uložení pouze výběru / přestavbu modelu.
- Kompromis při přeskočení: dříve zakázaná pravidla v té složce zůstávají zakázána, dokud znovu nezvýšíte limit na
0, nesnížíte jej nebo je z jiného způsobu nezapnete. - PUTy používají
[asab:library] item_disable_concurrency(výchozí 1; vyšší hodnoty mohou způsobit závod na/.disabled.yaml). Po každé aplikaci T Rex znovu vylistuje a zkouší až do[asab:library] item_disable_sync_rounds(výchozí 8, s postupným zpožděním). Synchronizace je na úrovni nájemce a běží z detekčního API, nikoliv z modelového zápisového tiknutí.
[correlator]
item_disable_sync_max_rules=0
# item_disable_sync_max_rules=500 # skip item-disable on folders with more than 500 rules
[asab:library]
# item_disable_concurrency=1
# item_disable_sync_rounds=8
Vysoká dostupnost (HA)¶
Když je [correlator:ha] enabled=yes a Kafka je dostupná:
- T Rex sleduje počet členů Kafka pro každou skupinu korelátorů.
- Pokud členové zůstanou na nule déle než
unhealthy_after_sec(výchozí 300 s), T Rex požádá Remote Control oupna aktuálním uzlu (lokální restart; umístění beze změny). - Pokud členové zůstanou na nule ještě další
unhealthy_after_secpo tomto lokálnímup, T Rex přiřadí instanci k jinému způsobilému uzlu (uzly ZooKeeper kroměarbiterano-trex) a znovu nahraje model.
failover_cooldown_sec (výchozí 600 s) omezuje, jak často se může přesun opakovat.
Když je přepnutí při selhání přeskočeno¶
Přepnutí uzlu nemůže opravit poškozené pravidlo korelace. T Rex proto nepřesouvá instanci, když ASAB zjištění pro tento korelator stále hlásí:
correlation_rules_with_errors(z korelátoru AttentionService)- nebo
attention_requiredna mikroservisu advertisement
V takovém případě dostanete nejvýše jeden lokální up, poté varování k opravě pravidel / problémů s knihovnou. Zkontrolujte protokoly korelátoru a upozornění knihovny.
Jistič¶
[correlator:ha] max_failovers (výchozí 2) omezuje, kolik přesunů uzlů se může stát během jedné epizody s nefunkčním stavem. Poté T Rex přestane provádět failover (užitečné pro smyčky zhroucení, kdy objevování nikdy neoznamuje). Nastavte 0 pro neomezený počet přesunů (nedoporučuje se).
Aktivní aktivní umístění¶
Když [correlator:active_active] enabled=yes (výchozí hodnotou je vypnuto):
- Každý logický řez korelátoru je nasazen na každém způsobilém uzlu.
- Repliky sdílejí stejnou konfiguraci a stejný Kafka
group_id. - Přepnutí uzlu při selhání je zakázáno; lokální
upmůže stále běžet, pokud sdílená skupina nemá žádné členy.
Umístění baselineru¶
Ve výchozím nastavení ([baseliner:ha] enabled=yes) T Rex umístí jednu instanci baselineru na každý způsobilý uzel. Nastavte enabled=no pro jednu instanci s hashováním umístěnou na každého nájemce.
Odkaz na konfiguraci (lmio-trex)¶
[kafka]
# Required for lag, HA membership, and consumer group deletion.
bootstrap_servers=kafka-1:9092,kafka-2:9092
[correlator]
exclude_folders=
/Detections/Parsec/
/Detections/Filters/
folder_max_depth=
/Detections/Sigma/=3
# item_disable_sync_max_rules=0
# item_disable_sync_max_rules=500 # skip item-disable on oversized folders
[asab:library]
# item_disable_concurrency=1
# item_disable_sync_rounds=8
[correlator:lag]
enabled=yes
sample_every_ticks=6
housekeep_every_ticks=30
# default_rules_limit=500
# max_instances_per_folder=10
# enabled=no # no lag driven split
# max_instances_per_folder=1 # at most one instance per folder (also with enabled=no)
[correlator:ha]
enabled=yes
unhealthy_after_sec=300
failover_cooldown_sec=600
max_failovers=2
[correlator:active_active]
enabled=no
[baseliner:ha]
enabled=yes
[trex]
leader_name=lmio-trex
[asab:remote:control]
# use_procedures=yes # default: node_upgrade / cluster_sequential_up
# use_procedures=no # legacy POST /node/{id} command=up
# Wait for Remote Control procedure completion (seconds). 0 = fire and forget after Accepted.
procedure_wait_sec=600
procedure_poll_sec=5
HTTP API poslouchající port: 8962 (viz Síťové porty).
Související čtení¶
- Nasazení pravidel detekce (uživatelské rozhraní analytika)
- Monitorování výkonnosti detekce (zpožděná a pomalá pravidla)
- Konfigurace korelátoru (manuální modely a Kafka pro
lmio-correlator) - Metriky korelátoru