Přeskočit obsah

Exports a Knihovna

Existují tři typy artefaktů Knihovny, které používá aplikace BS-Query.

DataSources

Deklarace datových zdrojů jsou zásadní pro funkčnost BS-Query. Bez datového zdroje nejsou žádné exporty.

Aplikace BS-Query podporuje následující typy deklarací datových zdrojů:

  • datasource/elasticsearch
  • datasource/pyppeteer

/DataSources/elasticsearch.yaml

define:
    type: datasource/elasticsearch

specification:
    index: lmio-{{tenant}}-events*

request:
    <key>: <value>
    <key>: <value>

query_params:
    <key>: <value>
    <key>: <value>

define

  • type: technický název, který pomáhá najít deklaraci datového zdroje v Knihovně.

specification

  • index: kolekce JSON dokumentů v Elasticsearch. Každý dokument je soubor polí, která obsahují data prezentovaná jako páry klíč-hodnota. Pro podrobnější vysvětlení se podívejte na tento článek.

Existuje také několik dalších položek, které lze konfigurovat v deklaraci DataSource. Jedná se o standardní parametry API Elasticsearch, pomocí kterých můžete doladit šablonu deklarace, abyste určili konkrétní obsah požadovaných dat a/nebo akcí prováděných na nich. Jedním z takových parametrů je size - počet odpovídajících dokumentů, které mají být vráceny v jednom požadavku.

request

Pro více podrobností se podívejte na dokumentaci Elastic.

query_params

Pro více podrobností se podívejte na dokumentaci Elastic.

Exports

Deklarace exportů specifikují, jak získat data z datového zdroje. YAML soubor obsahuje následující sekce:

define

Sekce define obsahuje následující parametry:

  • name: Název exportu.
  • datasource: Název deklarace DataSource v knihovně, uvedený jako absolutní cesta k knihovně.
  • output: Výstupní formát exportu. Dostupné možnosti jsou "raw", "csv" a "xlsx" pro ES DataSources a "raw" pro Kafka DataSources.
  • header: Při použití výstupu "csv" nebo "xlsx" musíte specifikovat hlavičku výsledné tabulky jako pole názvů sloupců. Ty se objeví ve stejném pořadí, v jakém jsou uvedeny.
  • schedule: Existují tři možnosti, jak naplánovat export: - datetime ve formátu "%Y-%m-%d %H:%M" (například 2023-01-01 00:00) - timestamp jako celé číslo (například 1674482460) - cron - pro více informací se podívejte na https://en.wikipedia.org/wiki/Cron
  • schema: Schéma, ve kterém by měl být export spuštěn.

Schema

Vždy je pro každý tenant konfigurováno jedno schéma (viz sekce Tenants konfigurace). Deklarace exportu může uvádět schéma, k němuž patří. Pokud se schéma deklarace exportu neshoduje s konfigurací schématu tenant, export přestane být vykonáván.

target

Sekce target obsahuje následující parametry:

  • type: Pole typů cílového místa pro export. Možnosti jsou "download", "email" a "jupyter". "download" je vždy vybrán, pokud sekce target chybí.
  • email: Pro typ cílového místa email musíte specifikovat alespoň pole to, což je pole e-mailových adres příjemců. Mezi další nepovinná pole patří: - cc: pole příjemců CC - bcc: pole příjemců BCC - from: e-mailová adresa odesílatele (řetězec) - subject: předmět e-mailu (řetězec) - body: název souboru (s příponou) uložený ve složce Template knihovny, použitý jako šablona těla e-mailu. Můžete také přidat speciální parameters, které mají být použity v šabloně. Jinak použijte libovolné klíčové slovo ze sekce define vašeho exportu jako parametr šablony (pro každý export to je: name, datasource, output, pro specifické exporty můžete také použít parametry: compression, header, schedule, timezone, tenant).

query

Pole query musí být řetězec.

Tip

Kromě těchto parametrů můžete ve své deklaraci exportu použít klíčová slova specifická pro deklaraci datového zdroje. Pokud dojde ke konfliktům, bude mít přednost deklarace datového zdroje.

schema

Můžete přidat částečné schéma, které přepíše běžné schéma nastavené v konfiguraci.

Tato funkce umožňuje převody založené na schématu na exportovaných datech. To zahrnuje:

  • Převod z časového razítka na lidsky čitelný formát data, kde schéma specifikuje typ datetime
  • Deidentification

/Exports/example_export.yaml

define:
    name: Export e-mail test
    datasource: elasticsearch
    output: csv
    header: ["@timestamp", "event.dataset", "http.response.status_code", "host.hostname", "http.request.method", "url.original"]

target: 
    type: ["email"]
    email: 
        to:
        - john.doe@teskalabs.com

query: >
    {
        "bool": {
            "filter": [{
                "prefix": {
                    "http.version": {
                        "value": "HTTP/1.1"
                    }
                }
            }]
        }
    }

schema:
    fields:
        user.name:
            deidentification:
                method: hash

        source.address:
            deidentification:
                method: ip

Templates

Sekce Templates Knihovny se používá při odesílání Exportů e-mailem. Tělo e-mailu musí být založeno na šabloně. Vložte vlastní šablonu do adresáře Templates/Email. V těchto souborech můžete použít šablonování jinja. Další informace naleznete v dokumentaci jinja. Všechna klíčová slova z deklarace exportu mohou být použita jako proměnné jinja.