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¶
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
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ýtdatasource/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é slmio:dataset:readallvidí 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čkyasset_kinds— volitelný seznam použitý sasset_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
- Nastavíte
specification.asset_tagna zdroji dat Elasticsearch (nebo předáteprompt.asset_tagpři jednotlivém dotazu). - Graf volá Assets
GET /{tenant}/asset/events-filters tímto tagem (a volitelnými druhy). - Assets vyhledá odpovídající aktiva a vrátí filtrovací jazyk, například
host.id:(web01, web02). - Graf spojí tento řetězec pomocí AND do
prompt.filterspř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:
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→ poletags, hodnotaprod. Webové UI pro Assets ukládá čipy jako seznam řetězců pod klíčemtags. - Forma klíč/hodnota
field:value, napříkladlabel: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í
- Uživatelské rozhraní analytika: Správa aktiv: Štítky a události v Discover
- Přehled služby aktiv: LogMan.io Aktiva
InfluxDB¶
define:
type: datasource/influxdb
discover:
name: CPU
order: 200
specification:
measurement: cpu
restrict:
host: "{{tenant}}"
define¶
type— musí býtdatasource/influxdb
objevit¶
Stejné jako Elasticsearch (name, order, resources).
specifikace¶
measurement— název měření InfluxDBrestrict— 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 vespecification.index,specification.restricta hodnotáchrestrictv InfluxDB.
Řešení schématu¶
Pro zdroje Elasticsearch je schéma řešeno v pořadí:
specification.schemaz deklarace datového zdroje- Výchozí schéma nájemce ze ZooKeeperu (
/lmio/tenants/{tenant}.yaml) - 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.