Přeskočit obsah

Zdroj dat

Datové zdroje jsou pojmenované propojení s datovými sadami v rámci backendu. Každý zdroj je zpřístupněn API s předponou poskytovatele:

Předpona Backend Příklad ID
es. Elasticsearch es.events
ix. InfluxDB ix.cpu
db. DuckDB db.ingest

Objev

Datové zdroje jsou shromážděny z několika zdrojů:

Knihovna (/DataSources/)

Deklarace YAML s define.type typu datasource/elasticsearch nebo datasource/influxdb a sekcí discover. Při změně knihovny se znovu načítají.

Automatické zjišťování InfluxDB

Všechny měření v nakonfigurované databázi jsou zpřístupněny pod nájemcem system (žádné RBAC zdroje).

DuckDB (vestavěný)

Paměťové zdroje pro jednotlivé nájemce: db.ingest (míry příjmu) a db.eps (události za sekundu). Není nakonfigurováno v knihovně.

Vlastnosti API

Každý zdroj dat poskytuje:

Vlastnost Popis
type elasticsearch, influxdb, or duckdb
label Zobrazované jméno
order Priorita třídění (nižší = první)
tenant Vlastnící nájemce
resources RBAC zdroje vyžadované pro přístup (nevrací se v API; používá se pro filtrování)

Vypsat zdroje dat: GET /{tenant}/datasources?types=elasticsearch,influxdb

Rozvržení knihovny

Datové zdroje jsou definovány v Knihovně. Každá definice datového zdroje musí být na cíli global, ne na tenant.

Cesty jsou: /DataSources/<tenant>/<datasource>.yaml nebo /DataSources/<datasource>.yaml.

  • Datové zdroje specifické pro nájemce — soubor umístěný v /DataSources/<tenant>/. Dostupné pouze pro tohoto nájemce.
  • Globální datové zdroje — soubor přímo v /DataSources/ (nájemce *). Tyto datové zdroje jsou kopírovány do každého nájemce. Parametry jako {{tenant}} jsou nahrazovány pro každého nájemce.

Pro graf (Discover/Explore UI) jsou načteny pouze deklarace s částí discover.

Elasticsearch

/DataSources/events.yaml
define:
  type: datasource/elasticsearch

discover:
  name: Events
  order: 100
  resources:
    - "lmio:dataset:events"

specification:
  index: "lmio-{{tenant}}-events-*"
  schema: /Schemas/ECS.yaml  # optional; defaults to tenant schema
  restrict:                    # optional static filter on every query
    event.dataset: linux
/DataSources/<tenant>/fortinet-fortigate-1.yaml
define:
  type: datasource/elasticsearch

discover:
  name: Fortinet Fortigate 1
  order: 1100

specification:
  index: "lmio-{{tenant}}-fortinet-fortigate-1-*"
  schema: /Schemas/ECS.yaml

define

  • type — musí být datasource/elasticsearch

objevit

  • name — zobrazovaný štítek (povinné)
  • order — pořadí řazení (výchozí 1000)
  • resources — seznam RBAC zdrojů; uživatel musí mít alespoň jeden. Uživatelé s lmio:dataset:readall vidí všechny zdroje.

Vlastní zdroj RBAC

Vytvořte vlastní prostředek v SeaCat Auth (například lmio:dataset:fortinet-fortigate-1) a přiřaďte ho rolím pro kontrolu přístupu ke konkrétnímu datovému zdroji. Uveďte ho v discover.resources v deklaraci datového zdroje.

specifikace

  • index — vzor indexu Elasticsearch; podporuje {{tenant}}
  • schema — cesta ke schématu knihovny; pokud není uvedena, použije se výchozí tenant ze ZooKeeperu; záložní /Schemas/ECS.yaml.
  • restrict — statické filtry polí aplikované na každý dotaz. Každý filtr je dvojice klíč-hodnota.
  • asset_tag — volitelné; viz Události pro aktiva podle značky
  • asset_kinds — volitelný seznam použitý s asset_tag (host, user, service)

!!! tip „Jiný zdroj dat“

Datový zdroj Ostatní používá vyhrazené schéma umístěné v knihovně na /Schemas/Others.yaml.

Vzdálené vzory indexů clusteru mohou zahrnovat alias clusteru, např. {{tenant}}:lmio-{{tenant}}-events*. Viz Elasticsearch vzdálený cluster.

Události pro aktiva podle štítku

Použijte toto, když by Discover nebo Chart měly zobrazit pouze události, jejichž principálové patří k aktivům nesoucím daný štítek (například všechny hosty s label=prod). Elasticsearch nemůže připojit doplněk štítku aktiv v MongoDB, takže Chart požádá LogMan.io Assets o připravený filtr Discover a aplikuje ho na každý dotaz.

Jak to funguje

  1. Nastavíte specification.asset_tag na zdroji dat Elasticsearch (nebo předáte prompt.asset_tag při jednotlivém dotazu).
  2. Graf volá Assets GET /{tenant}/asset/events-filter s tímto tagem (a volitelnými druhy).
  3. Assets vyhledá odpovídající aktiva a vrátí filtrovací jazyk, například host.id:(web01, web02).
  4. Graf spojí tento řetězec pomocí AND do prompt.filters před vyhledáváním v Elasticsearch.

Toto je stejný vzorec jako při převodu upozornění ticketu na ID událostí, ale místo ticketů na značky.

Oprávnění

Služba Chart musí dosáhnout lmio-assets přes Discovery. Volající potřebuje lmio:asset:access, aby mohl běžet konec filtru událostí.

Příklad knihovny (hostitelé s label=prod)

Knihovna Common Library obsahuje připravené prohlášení, které můžete zkopírovat nebo upravit:

/DataSources/events_assets_tag_label_prod.yaml
define:
  type: datasource/elasticsearch

discover:
  name: Events (hosts tag=prod)
  order: 150

specification:
  index: lmio-{{tenant}}-events-*
  # UI chip under key "tags". For API key/value tags use "label:prod".
  asset_tag: "prod"
  asset_kinds:
    - host

asset_tag formy

  • Název čipu v surovém uživatelském rozhraní (nejběžnější): prod → pole tags, hodnota prod. Webové UI pro Assets ukládá čipy jako seznam řetězců pod klíčem tags.
  • Forma klíč/hodnota field:value, například label:prod → klíč label = prod (API nebo doplňkové tagy aktivit). Pokud tento klíč chybí, Assets také odpovídá UI čipu, jehož text je přesně label:prod.
  • Mapovací forma: asset_tag: { field: label, value: prod }.

druhy_aktiv

Nepovinný seznam host, user a/nebo service. Každý typ odpovídá jednomu poli ECS:

Laskavý Pole události ve filtru
host host.id
user user.id
service service.id

Vynechte asset_kinds, abyste zahrnuli všechny tři. Zachovejte pouze host, pokud chcete záznamy pouze pro označené hostitele.

Ad hoc dotaz

Bez vyhrazeného zdroje dat nastavte prompt.asset_tag (stejný řetězec field:value) na dotaz Chart nebo Discover proti es.events. Zdroj dat asset_kinds se stále používá, pokud je přítomen; jinak se používají všechny druhy.

Prázdný výsledek

Pokud žádný prostředek neodpovídá značce, Chart vloží filtr, který neodpovídá žádným dokumentům, takže náhodou neuvidíte celý proud událostí.

Související

InfluxDB

/DataSources/metrics/cpu.yaml
define:
  type: datasource/influxdb

discover:
  name: CPU
  order: 200

specification:
  measurement: cpu
  restrict:
    host: "{{tenant}}"

define

  • type — musí být datasource/influxdb

objevit

Stejné jako Elasticsearch (name, order, resources).

specifikace

  • measurement — název měření InfluxDB
  • restrict — statické filtry tagů/polí; podporuje nahrazení {{tenant}}

Schéma (štítky a pole) je automaticky vytvořeno z SHOW TAG KEYS / SHOW FIELD KEYS na měření.

DuckDB

Vestavěné pro jednotlivého nájemce; není deklarováno v knihovně.

Zdroje DuckDB zpřístupňují odvozené provozní metriky vypočítané v paměti z dat InfluxDB commlink. Používejte je pro monitorovací grafy platformy (průtok zpracování a statistiky EPS) bez ukládání dodatečných dat do Elasticsearch.

ID Štítek Popis
db.ingest Požít Rychlosti příjmu (bytes.in, event.in) na proud a oddíl
db.eps EPS Agregáty událostí za sekundu (min, max, průměr, medián, 95. percentil)

Šablonové proměnné

  • {{tenant}} — nahrazen aktuálním identifikátorem nájemce ve specification.index, specification.restrict a hodnotách restrict v InfluxDB.

Řešení schématu

Pro zdroje Elasticsearch je schéma řešeno v pořadí:

  1. specification.schema z deklarace datového zdroje
  2. Výchozí schéma nájemce ze ZooKeeperu (/lmio/tenants/{tenant}.yaml)
  3. Náhradní schéma je /Schemas/ECS.yaml

Autorizace

Seznam zdrojů dat a dotazy jsou filtrovány pomocí RBAC. Nakonfigurujte discover.resources v deklaracích Knihovny, nebo udělte lmio:dataset:readall pro neomezený přístup.