Přeskočit obsah

LogMan.io Assets configuration

LogMan.io Assets vyžaduje následující závislosti:

  • Apache ZooKeeper
  • Apache Kafka
  • MongoDB
  • SeaCat Auth
  • Knihovna LogMan.io s /EventLanes/ (aktivity a komplexní dráhy) a schématy nájemců v /Schemas/
  • LogMan.io Watcher (volitelné, pro vyhledávání váhy rizikového skóre pro jednotlivé zdroje)

Model

Zahrňte službu do modelu stránky a klikněte na Použít:

/Site/model.yaml
define:
  type: rc/model

services:
  lmio-assets:
    instances:
      <tenant>-1:
        node: <node>
        asab:
          config:
            tenant:
              name: <tenant>

Příklad

Minimální konfigurace ASAB:

[zookeeper]
servers=zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181

[library]
providers=zk:///library

[kafka]
bootstrap_servers=kafka-1:9092,kafka-2:9092,kafka-3:9092

[asab:storage]
type=mongodb
mongodb_uri=mongodb://mongodb1,mongodb2,mongodb3/?replicaSet=rs0
mongodb_database=assets

[auth]
multitenancy=yes
public_keys_url=http://seacat-auth.service_id.asab/.well-known/jwks.json

[pipeline:ActivityAssetsPipeline:KafkaSource]
group.id=lmio_assets

[pipeline:ComplexAssetsPipeline:KafkaSource]
group.id=lmio_assets

Témata nejsou v INI pevně zadána: po připravení knihovny služba objeví každý tenantův soubor activity.yaml a complex.yaml a přihlásí se k jejich tématům událostí v Kafka.

Zprávy o aktivitě jsou generovány LogMan.io Parsec IndicatorOfActivityProcessor (hlavní host.id / user.id, pomocné related.*, observer.name, observer.type). Název hlavních polí a vyhledávání identity pochází z /Schemas/Mappings/Asset_<schema>.yaml sloučeného s parsec.asset u každé Parsec události. Viz Správa aktiv Parsec.

sekce [assets]

Klíč Výchozí Popis
mongo_collection assets Mongo kolekce pro řádky aktiv
mongo_tags_collection asset_tags Sbírka značkového přívěsku
mongo_suppress_collection asset_suppress Sdílené slučování/mazání potlačit (víceinstanční)
activity_mongo_batch_max 100 Aktualizace aktivit před bulk_write
activity_mongo_batch_max_age 60 Maximální počet sekund před částečným vyprázdněním aktivity (0 = pouze velikost)
complex_mongo_batch_max 100 Vzorky skóre rizika před vyprázdněním Mongo
complex_mongo_batch_max_age 60 Maximální počet sekund před částečným vyprázdněním rizika
default_alert_after_host 3d alert_after on first host insert when Library does not override (0 = disabled)
default_alert_after_user 7d alert_after on first user insert when Library does not override (0 = disabled)
default_alert_after_service 3d alert_after on first service insert when Library does not override (0 = disabled)
stale_alert_cooldown_sec 1h Minimální interval mezi opakováním up, zatímco je stále zastaralé (v paměti)
stale_alert_reopen_cooldown_sec 1d Po zotavení down zablokujte další up, dokud neuplyne tato doba (stale_reopen_after u aktiva)
risk_score_decay_half_life 24h Poloviční doba rizika entity (viz Skóre rizika entity)
risk_score_decay_clear_below 0.5 Vymazat zkažené skóre pod tímto
risk_score_cas_retries 8 Optimistické opakování souběžného zpracování pro sloučení skóre rizika
deleted_activity_suppress_ttl 600 Ignorovat Kafka upsert po HTTP delete (0 = vypnuto); Mongo TTL
bulk_asset_ids_max (žádný) Maximální počet hodnot asset_id na požadavek hromadného mazání / hromadné úpravy (0 nebo prázdné = bez omezení)

Výchozí nastavení knihovny (/Assets/Defaults/)

Přepište nastavení alert_after pro každý typ, které se uplatňuje při vytvoření nového aktiva (vložením aktivity nebo vytvořením přes HTTP bez explicitně zadaného alert_after). Složité / události s hodnotou rizika nevytvářejí aktiva. Existující řádky nejsou změněny.

Umístěte YAML do /Assets/Defaults/ (například settings.yaml) s define.type: assets/defaults:

define:
  type: assets/defaults

alert_after:
  host: 3d
  user: 7d
  service: 3d
Klíč Význam
alert_after.host / .user / .service Doba trvání (3d, 7d, 2h) nebo sekundy; 0 zakáže výchozí hodnotu pro tento typ

Priorita: Klíč typu knihovny (pokud je přítomen) → [assets] default_alert_after_<kind> → vestavěný (3d / 7d / 3d). Vynechte typ v YAML, aby se zachovala hodnota INI pro tento typ. Vrstva knihovny nájemce přepisuje soubor Common Library.

Knihovna Common Library dodává /Assets/Defaults/settings.yaml se stejnými hodnotami jako výchozí hodnoty INI.

Knihovna přeskočit (/Assets/Skip/)

Filtrovat hostitelské a uživatelské zdroje (aktivitu a komplexní). Porovnávání je bez rozlišování velikosti písmen (kromě min_hyphens, který počítá znaky -).

Klíč Zápas
names / exact Celý řetězec
prefixes Začíná s
suffixes Končí (příponou)
contains Podřetězec
min_hyphens Název obsahuje alespoň tolik znaků - (0 = vypnuto)
ip Titulek je čistá adresa IPv4 nebo IPv6 (true / false)
define:
  type: assets/skip

host:
  names:
    - localhost
  prefixes:
    - temp-
  contains:
    - "-dhcp-"

user:
  names:
    - SYSTEM
    - LOCAL SERVICE
  prefixes:
    - "urn:"
    - "NT AUTHORITY\\"
  suffixes:
    - "$"
  contains:
    - svc_
  min_hyphens: 4
  ip: true

Výchozí hodnoty Common Library zahrnují předponu uživatele urn:, min_hyphens: 4, Windows příponu účtu počítače $, zástupné znaky (n/a, -, unknown) a ip: true.

Chcete-li odfiltrovat stejné vzory dříve, než dosáhnou tématu aktivit Kafka, nakonfigurujte událostní linku Parsec parsec.asset.skip (viz Správa aktiv Parsec). Parsec skip nepodporuje min_hyphens; podporuje ip.

Když zdroj zapíše holou IP do host.hostname a vy nechcete, aby došlo k záloze a kopírování do host.id, nastavte parsec.asset.skip.host.ip: true na této událostní linii (Přeskočit IP adresy používané jako názvy hostitelů). To je platné pro jednotlivou linii a nenahrazuje /Assets/Skip/ host.ip.

Oznámení o nových aktivech (okamžité + naplánované)

Aktiva LogMan.io mohou vysílat oznámení asab-iris (stejná cesta JSON Kafka jako lmio-alerts) pro aktiva zjištěná ze streamu aktivit. Rutinní aktualizace last_seen nezasílají oznámení. Komplexní / risk-score cesta nevytváří aktiva.

  • Okamžitě: když je dokument aktiva poprvé vložen (Mongo upserted_ids); jakýkoli instance může odeslat, deduplikováno pro každé aktivum přes Mongo notification_sent.
  • Plánovaný přehled: pouze vedoucí ZooKeeper; pro (tenant, channel) v okně sledovače. Po vypršení period (Knihovna nebo INI) jeden souhrn uvádí aktiva s first_seen po offsetu sledovače.

sekce [notifications]

Klíč Výchozí Popis
topic notifications Kafka téma pro JSON zprávy asab-iris
enabled yes Hlavní vypínač; no zakáže všechna oznámení o nových aktivech
tracker_collection notification_trackers Mongo kolekce pro naplánované posuny souhrnu
sent_collection notification_sent Mongo dedup markery pro okamžitá oznámení (jeden řádek na asset _id)
digest_max_assets 50 Maximální počet řádků aktiv v šabloně digestu new_assets (celkový počet je vždy v new_assets_count)

Doručení kanálu (INI volitelné, Knihovna na nájemníka)

Sekce INI [notification:*] poskytují globální výchozí hodnoty (náhradní řešení, když soubor Knihovny nájemce nenastaví doručení). Pro e-mail můžete nakonfigurovat from, to a period zcela v souboru /Assets/Notifications/settings.yaml nájemce bez jakékoli INI sekce kanálu.

Volitelné výchozí hodnoty INI:

[notification:email]
from=noreply@example.com
to=soc@example.com
period=1h

[notification:slack]
period=3600

[notification:sms]
phone=+420000000000

[notification:push]
topic=assets

Nastavení knihovny

Pro každého nájemce umístěte YAML do /Assets/Notifications/ (například settings.yaml) s define.type: assets/notifications:

  • instant: umožňuje jednorázové zprávy pro tento kanál
  • scheduled: umožňuje periodické souhrny pro tento kanál
  • volitelné nastavení na úrovni kanálu from, to, period (e-mail), phone (sms), topic (push)
  • volitelné nastavení na úrovni kanálu schedule: tichá období (at cron, duration, action: delay|discard), stejné jako u lmio-alerts
  • volitelné params / exclude uvnitř instant / scheduled (attribute / op / value, operátory eq / gt / gte / lt / lte)
define:
  type: assets/notifications

email:
  from: noreply@example.com
  to:
    - soc@example.com
  period: 1h
  instant:
    params:
      template: /Templates/Email/Asset Created.md
    exclude:
      - attribute: type
        op: eq
        value: user

  scheduled:
    params:
      template: /Templates/Email/Asset Summary.md
    exclude:
      - attribute: type
        op: eq
        value: user

  schedule:
    - at: "0 16 * * *"
      duration: 14h
      action: delay

slack:
  scheduled: {}

Výchozí cesty šablon (nasadit samostatně v Knihovně):

  • Okamžité: /Templates/{Email,Slack,SMS,Push}/Asset Created.md
  • Naplánované: /Templates/{Email,Slack,SMS,Push}/Asset Summary.md

Okamžité parametry: tenant, asset_id, type, title, first_seen / last_seen (ISO UTC), name, description.

Plánované parametry: tenant, name, description, new_assets_count, new_assets (seznam {asset_id, type, title, first_seen}).

HTTP API

Služba standardně poslouchá na tcp/8965. Odpovědi obsahující seznam aktiv a detaily zahrnují zdecimované risk_score, first_seen, last_seen, a vypočítané active.

active není Mongo pole. Je true, když now − last_seen je v rozmezí alert_after sekund (pokud alert_after ≥ 1), jinak je to během 7 dní. Podrobnosti: Aktivní vs neaktivní a Manuál analytika.

Seřadit podle rizika entity s parametrem dotazu srisk_score.

Volitelné přepsání váhy skóre rizika pro jednotlivý majetek se spravuje z detailního rozhraní majetku (a prostřednictvím HTTP API pro automatizaci). Viz Skóre rizika entity.