Přeskočit obsah

Event lane

Když připojíte nový logovací zdroj do LogMan.io Collector, který je přiřazen k jednomu tenantovi, události se začnou posílat do LogMan.io Archive. LogMan.io Receiver vytvoří nový stream pro tyto události, aby je ukládal v logickém pořadí. Proto každý tenant vlastní několik streamů. Události z konkrétního streamu mohou být (okamžitě nebo později) vytaženy z Archivu pro parsování a ukládání do Elasticsearch databáze pro další analýzu.

K vytvoření logického datového streamu v LogMan.io (z Archivu přes Kafka do Elasticsearch) a propojení přilehlého obsahu v Library (dashboardy, reporty, korelace, atd.), se používá koncept event lane. Event lane je reprezentován deklarací v Library, která určuje:

  • Jaká pravidla pro parsování budou aplikována na datový stream
  • Jaký obsah z Library je přiřazen k datovému streamu
  • Kategorizace datového streamu (např. kategorizace technologie, která produkuje tyto události)
  • Jaké schéma je použito pro konečná strukturovaná data
  • Jaké další obohacení bude aplikováno na stream
  • Konfigurace technologií pracujících s daty (Kafka, Elasticsearch)

Následující obrázek ilustruje proces na příkladu, kde je připojen nový logovací zdroj (Fortinet FortiGate) (pod operujícím tenantem mytenant):

Ilustrace Event Lane Manager

  1. LogMan.io Receiver sbírá přicházející události a ukládá data do Archivu ve streamu fortinet-fortigate-10110 pro tenant mytenant.
  2. Tyto události mohou být z Archivu vytaženy zpět pro parsování. Jsou poslány do Kafka topicu received.mytenant.fortinet-fortigate-10110.
  3. LogMan.io Elman detekuje tento topic, přiřadí nový event lane a vytvoří jednu nebo více instancí LogMan.io Parsec.
  4. LogMan.io Parsec konzumuje syrové události z tohoto topicu a posílá úspěšně zparsované události a nezparsované události do Kafka topiců events.mytenant.fortinet-fortigate-10110 a others.mytenant, resp.
  5. LogMan.io Depositor konzumuje události z těchto topiců a ukládá je do Elasticsearch indexů lmio-mytenant-events-fortinet-fortigate-10110 a lmio-mytenant-others.

Deklarace event lane

Deklarace event lane je specifikována v YAML souboru v Library. Následující příklad je deklarace event lane pro logovací zdroj Microsoft 365 a tenant mytenant:

/EventLanes/mytenant/microsoft-365-v1.yaml
define:
  name: Microsoft 365
  type: lmio/event-lane
  timezone: UTC

parsec:
  name: /Parsers/Microsoft/365

content:
  reports: /Reports/Microsoft/365
  dashboards: /Dashboards/Microsoft/365

kafka:
  received:
    topic: received.mytenant.microsoft-365-v1
  events:
    topic: events.mytenant.microsoft-365-v1
  others:
    topic: others.mytenant

elasticsearch:
  events:
    index: lmio-mytenant-events-microsoft-365-v1
  others:
    index: lmio-mytenant-others

Definice

Část define specifikuje typ deklarace a vlastnosti event lane použité pro parsování a analýzu dat, jako je použité schéma, časové pásmo a znaková sada.

define:
  name: Microsoft 365
  type: lmio/event-lane
  schema: /Schemas/ECS.yaml  # (volitelné, výchozí: /Schemas/ECS.yaml)
  timezone: Europe/Prague  # (volitelné, výchozí je získáno z konfigurace tenanta)
  charset: utf-8  # (volitelné, výchozí: utf-8)

Parsec

Sekce parsec se odkazuje na mikroservisu LogMan.io Parsec. Konkrétně, parsec/name je adresář pro parsovací pravidla v Library. Musí vždy začínat /Parsers/:

parsec:
  name: /Parsers/Microsoft/365

Obsah

Sekce content se odkazuje na obsah event lane v Library, jako jsou dashboardy, reporty, korelace, atd.

Když je vytvořen nový event lane, LogMan.io Elman automaticky povolí obsah popsaný v této sekci.

content:
  # Celý adresář, popsán jako jeden řetězec
  dashboards: /Dashboards/Microsoft/365

  # Více položek popsáno jako seznam
  reports:
  - /Reports/Microsoft/365/Daily Report.json
  - /Reports/Microsoft/365/Weekly Report.json
  - /Reports/Microsoft/365/Monthly Report.json

Kafka, Elasticsearch

Sekce kafka a elasticsearch specifikují vlastnosti Kafka topiců a Elasticsearch indexů, které patří k onomu event lane. Tyto jsou důležité pro LogMan.io Parsec a LogMan.io Depositor.

Nejdůležitější vlastnost je název received, events, a others topiců a lmio-events a lmio-others indexů.

Kafka topic následuje pojmenovací konvenci:

<type>.<tenant>.<stream>

Elasticsearch indexy následují pojmenovací konvenci:

lmio-<tenant>-<type>-<stream>

kde:

  • type může být received, events nebo others
  • tenant je název tenanta
  • stream je název logovacího streamu
kafka:
  received:
    topic: received.mytenant.microsoft-365-v1
  events:
    topic: events.mytenant.microsoft-365-v1
  others:
    topic: others.mytenant

elasticsearch:
  events:
    index: lmio-mytenant-events-microsoft-365-v1
  others:
    index: lmio-mytenant-others

Poznámka

Každý tenant má pouze jeden topic others, proto zde není specifikace streamu v topicu a indexu others.

Dále jsou v sekci elasticsearch konfigurovány další vlastnosti Elasticsearch (např. počet shardů, životní cyklus indexů atd.). Více se dočtete v dokumentaci LogMan.io Depositor.

Deklarace šablony event lane

Pro automatické přiřazení parsovacích pravidel a obsahu z Library se používají šablony event lane. Když je nalezen nový stream, LogMan.io Elman hledá vhodnou šablonu event lane. Když ji najde, nový event lane je automaticky naplněn vlastnostmi z této šablony.

Následující příklad ilustruje šablonu event lane pro logovací zdroj Microsoft 365:

/Templates/EventLanes/Microsoft/microsoft-365-v1.yaml
---
define:
  type: lmio/event-lane-template
  name: Microsoft 365
  stream: microsoft-365-v1
  timezone: UTC

logsource:
  vendor: 
    - microsoft
  product:
    - m365
  service:
    - audit
    - activitylogs

parsec:
  name: /Parsers/Microsoft/365

content:
  dashboards: /Dashboards/Microsoft/365
  reports: /Reports/Microsoft/365

Definice

define:
  type: lmio/event-lane-template
  name: Microsoft 365
  stream: microsoft-365-v1
  timezone: UTC
  • name: Člověkem čitelný název pro event lane, odvozený z technologie logovacího zdroje. Používá se např. pro konfiguraci Průzkumníku (Discover).
  • stream: Název, který bude shodný s aktuálním streamem. Může zde být přesná shoda (jako např. microsoft-365-v1), ale zástupné znaky (např. *) jsou povoleny, aby pokryly širokou škálu streamů (např. fortinet-fortigate-*).
  • timezone (volitelné): Různé logovací zdroje zasílají události v pevně stanoveném časovém pásmu (např. Microsoft 365 používá vždy UTC). Aby to bylo zohledněno, může zde být předepsáno časové pásmo. Jinak je každá event lane řešena ručně.

Kategorizace

Sekce logsource se používá pro kategorizaci logovacího zdroje připojeného k event lane. Je odvozena z Sigma pravidel.

logsource:
  vendor: 
    - microsoft
  product:
    - m365
  service:
    - audit
    - activitylogs

Parsec

Možnost parsec/name je adresář pro parsovací pravidla v Library. Musí vždy začínat /Parsers/:

parsec:
  name: /Parsers/Microsoft/365

Obsah

Sekce content se odkazuje na obsah event lane v Library, jako jsou dashboardy, reporty, korelace, atd.

LogMan.io Elman automaticky deaktivuje každý obsah ze všech šablon event lane. Když je vytvořen nový event lane, jeho obsah je povolen.

content:
  # Celý adresář, popsán jako jeden řetězec
  dashboards: /Dashboards/Microsoft/365

  # Více položek popsáno jako seznam
  reports:
  - /Reports/Microsoft/365/Daily Report.json
  - /Reports/Microsoft/365/Weekly Report.json
  - /Reports/Microsoft/365/Monthly Report.json