Konfigurace Průzkumníku
Nastavení obrazovky Průzkumníka
Obrazovka Průzkumníka je určena pro zobrazování a prozkoumávání dat (nejen) v ElasticSearch.
Konfigurace obrazovky Průzkumníka může být nahrána z Knihovny
nebo ze statického souboru v public
složce stejným způsobem jako v případě Dashboards
.
Typ filtrovaných dat závisí na specifikaci
, která musí být definována společně s datetimeField
. Tyto hodnoty jsou klíčové. Bez nich není filtrování možné.
Konfigurace Průzkumníka
Konfigurace v Knihovně
Konfigurace v Knihovně je uložena v Knihovně. Musí mít formát JSON.
Pro získání konfigurace z Knihovny musí být spuštěna služba asab_config
s konfigurací ukazující na hlavní uzel Knihovny. Pro více informací viz zde: http://gitlab.teskalabs.int/lmio/asab-config
Konfigurace z Knihovny je editovatelná.
V uzlu Knihovny Průzkumníka může být více konfiguračních souborů, přičemž každý z nich může obsahovat pouze jednu konfiguraci obrazovky průzkumníka. Další obrazovku průzkumníka je třeba konfigurovat v novém uzlu Knihovny.
Všechny konfigurační soubory z uzlu Průzkumníka (Discover) v Knihovně jsou načteny jedním API voláním.
Struktura konfigurace v Knihovně
Struktura konfigurace v Knihovně
- hlavní uzel Knihovny
- config
- Průzkumník (Discover)
- **config**.json
- typ
- Průzkumník (Discover).json
- schema
- config je název konkrétní konfigurace Průzkumníka, musí být v
json
formátu.
V Knihovně vypadá cesta ke konfiguračnímu souboru následovně:
/<hlavní uzel Knihovny>/config/Discover/<discoverConfig>.json
Cesta ke schématu bude následující:
/<hlavní uzel Knihovny>/type/Discover.json
Příklad výše popsané struktury Knihovny pro případ více konfiguračních souborů Průzkumníka:
- logman
- config
- Průzkumník (Discover)
- declarative.json
- default.json
- speed.json
- typ
- Průzkumník (Discover).json
DŮLEŽITÁ POZNÁMKA
Schéma (typ
) a konfigurační soubor (config
) musí být nastaveny v Knihovně, jinak se průzkumník nenačte správně.
Všechny konfigurační soubory z uzlu Průzkumníka (Discover) v Knihovně jsou načteny jedním API voláním.
Příklad konfigurace:
{
"Discover:datasource": {
"specification": "declarative*",
"datetimeField": "@timestamp",
"type": "elasticsearch"
}
}
Kde
- klíč objektu slouží k pojmenování objektu. Musí být pojmenován jako
Discover:datasource
. - type je typ vyhledávacího engine
- specification je URL s vzorem indexu ElasticSearch. Pokud chcete hledat všechna data, URL musí končit hvězdičkou
*
. Tento parametr je povinný. - datetimeField je index položky datetime. Tento parametr je povinný, protože je potřebný pro vyhledávání/listování v ElasticSearch.
Schéma (volitelné nastavení)
Nezaměňujte s knihovním schématem
Nastavte název pro získání schématu z knihovny (pokud je přítomen), který pak bude aplikován na hodnoty definované ve schématu. S pomocí schématu můžeme na hodnoty odpovídající definovanému typu
aplikovat akce, např. pomocí komponenty Datum a čas (DateTime) ASAB-WebUI pro časové hodnoty.
{
...
"Discover:schema": {
"name": "ECS"
}
...
}
Příklad struktury schémat v knihovně:
- knihovna
- Schémata
- Průzkumník.yaml
- ECS.yaml
...
Příklad schématu v knihovně:
---
define:
name: Elastic Common Schema
type: common/schema
description: https://www.elastic.co/guide/en/ecs/current/index.html
fields:
'@timestamp':
type: datetime
label: "Datum a čas"
unit: seconds
docs: https://www.elastic.co/guide/en/ecs/current/ecs-base.html#field-timestamp
Autorizace (volitelné nastavení)
Konfigurace Průzkumníka může být omezena k přístupu pouze s určenými tenant(y). To znamená, že uživatelé bez konkrétních tenantů nemohou získat přístup ke konfiguraci průzkumníka s jeho zdrojem dat. To je výhodné např. když chce administrátor omezit přístup ke konfiguraci průzkumníka s citlivými daty určité skupině uživatelů.
Pokud je konfigurace nastavována přímo v Knihovně (a ne přes Konfigurační nástroj), doporučuje se přidat sekci Autorizace
a ponechat klíč tenants
jako prázdný řetězec (pokud není požadováno žádné omezení). To pomůže udržet stejnou strukturu konfigurace v rámci všech konfigurací Průzkumníka:
{
...
"Authorization": {
"tenants": ""
}
...
}
Příklad nastavení Autorizace
v konfiguraci, kde je požadováno omezení přístupu:
{
...
"Authorization": {
"tenants": "tenant jeden, tenant dva"
}
...
}
Kde klíč tenants slouží k určení, kteří tenant(y) mohou zobrazovat a používat tuto konfiguraci. Více tenantů může být specifikováno, odděleno čárkou. Typ klíče tenants
je string
.
Nastavení promptů (volitelné nastavení)
Sekce nastavení promptů poskytuje další možnost nastavení promptů Průzkumníka nebo změny jeho výchozích hodnot.
Příklad sekce Discover:prompts
v konfiguraci:
{
...
"Discover:prompts": {
"dateRangePicker:datetimeStart": "now-15m",
"dateRangePicker:datetimeEnd": "now+15s"
...
},
...
}
Nastavení vlastních period rozsahu datumu a času
Někdy je žádoucí nastavit vlastní periodu rozsahu datumu a času pro zobrazení dat, protože data se nacházejí např. mimo výchozí periodu nastavenou pro Průzkumníka. Výchozí perioda je now-1H, což má vyhledávat data v rámci now
a 1 hodinu
zpět. Například toto může být nastaveno v Discover:prompts
následujícím způsobem:
{
...
"Discover:prompts": {
"dateRangePicker:datetimeStart": "now-1H",
"dateRangePicker:datetimeEnd": "now"
},
...
}
Kde dateRangePicker:datetimeStart
a dateRangePicker:datetimeEnd
jsou periody, které nastavují rozsah na počáteční periodu (počáteční) a na koncovou periodu (konečnou).
Možnosti nastavení pro obě periody jsou:
- now-
n
s - now-
n
m - now-
n
H - now-
n
d - now-
n
w - now-
n
M - now-
n
Y - now
- now+
n
s - now+
n
m - now+
n
H - now+
n
d - now+
n
w - now+
n
M - now+
n
Y
Kde
- n
je číslo, např. 2,
- s
znamená sekundy,
- m
znamená minuty,
- H
znamená hodiny,
- d
znamená dny,
- w
znamená týdny,
- M
znamená měsíce,
- Y
znamená roky
Ostatní hodnoty budou ignorovány.
Je možné např. nastavit pouze jednu periodu, jak je v tomto příkladu, druhá perioda zůstane výchozí:
{
...
"Discover:prompts": {
"dateRangePicker:datetimeStart": "now-2H"
},
...
}
Další příklad nastavení rozsahu datumu a času, kde jsou data zobrazena 15 hodin zpět a hledána 10 minut do budoucnosti:
{
...
"Discover:prompts": {
"dateRangePicker:datetimeStart": "now-15H",
"dateRangePicker:datetimeEnd": "now+10m"
},
...
}
Schéma Knihovny
Pro manuální nastavení obrazovky průzkumníka v Knihovně musíte nastavit schéma průzkumníka ve validním JSON formátu.
Schéma musí být poskytnuto a uloženo v /<hlavní uzel Knihovny>/type/<discoverType>.json
Schéma může vypadat následovně:
{
"$id": "Schéma Průzkumníka",
"type": "object",
"title": "Schéma Průzkumníka",
"description": "Schéma Průzkumníka",
"default": {},
"examples": [
{
"Discover:datasource": {
"specification": "declarative*",
"datetimeField": "@timestamp",
"type": "elasticsearch"
}
}
],
"required": [],
"properties": {
"Discover:datasource": {
"type": "string",
"title": "Zdroj dat Průzkumníka",
"description": "Specifikace dat pro obrazovku Průzkumníka",
"default": {},
"examples": [
{
"specification": "declarative*",
"datetimeField": "@timestamp",
"type": "elasticsearch"
}
],
"required": [
"specification",
"datetimeField",
"type"
],
"properties": {
"specification": {
"type": "string",
"title": "Specifikace",
"description": "Určete zdroj dat",
"default": "",
"examples": [
"declarative*"
]
},
"datetimeField": {
"type": "string",
"title": "Datum a čas",
"description": "Určete hodnotu datumu a času pro zdroj dat",
"default": "",
"examples": [
"@timestamp"
]
},
"type": {
"type": "string",
"title": "Typ",
"description": "Vyberte typ zdroje",
"default": [
"elasticsearch",
"sentinel"
],
"$defs": {
"select": {
"type": "select"
}
},
"examples": [
"elasticsearch*"
]
}
}
},
"Discover:prompts": {
"type": "string",
"title": "Prompty Průzkumníka",
"description": "Aktualizujte konfiguraci promptu Průzkumníka",
"default": {},
"examples": [],
"required": [],
"properties": {
"dateRangePicker:datetimeStart": {
"type": "string",
"title": "Počáteční perioda",
"description": "Nastavit počáteční periodu promptu",
"default": "now-1H",
"examples": [
"now-1H"
]
},
"dateRangePicker:datetimeEnd": {
"type": "string",
"title": "Koncová perioda",
"description": "Nastavit koncovou periodu promptu",
"default": "now",
"examples": [
"now"
]
}
}
},
"Discover:schema": {
"type": "string",
"title": "Název schématu Průzkumníka",
"description": "Aplikovat schéma na hodnoty Průzkumníka",
"default": {},
"properties": {
"name": {
"type": "string",
"title": "Název schématu",
"description": "Nastavit název schématu pro konfiguraci (bez přípony souboru)",
"default": ""
}
}
},
"Authorization": {
"type": "string",
"title": "Autorizace Průzkumníka",
"description": "Omezit přístup k konfiguraci průzkumníka pomocí nastavení tenantů",
"default": {},
"examples": [],
"required": [],
"properties": {
"tenants": {
"type": "string",
"title": "Tenanti",
"description": "Určete tentant(y) oddělené čárkou pro omezení použití této konfigurace (volitelné)",
"default": "",
"examples": [
"tenant1, tenant2"
]
}
}
}
},
"additionalProperties": false
}
Příklad předávání vlastností konfigurace
Příklad předávání vlastností konfigurace do DiscoverContainer:
...
this.App.Router.addRoute({
path: "/discover",
exact: true,
name: 'Discover',
component: DiscoverContainer,
props: {
type: "Discover"
}
});
...
this.App.Navigation.addItem({
name: "Discover",
url: "/discover",
icon: 'cil-compass'
});
Při používání DiscoverContainer
jako komponenty v kontejneru mohou být vlastnosti předány následujícím způsobem:
<DiscoverContainer type="Discover" />
Statický konfigurační soubor aplikace zůstává prázdný:
module.exports = {
app: {
},
webpackDevServer: {
port: 3000,
proxy: {
'/api/elasticsearch': {
target: "http://es-url:9200",
pathRewrite: {'^/api/elasticsearch': ''}
},
'/api/asab_print': {
target: "http://asab_print-url:8083",
pathRewrite: {'^/api/asab_print': ''}
},
'/api/asab_config': {
target: "http://asab_config-url:8082",
pathRewrite: {'^/api/asab_config': ''}
}
}
}
}
Statická konfigurace
Obrazovka Průzkumníka nemusí být získána pouze z Knihovny. Další možností je konfigurovat ji přímo v JSON souboru a uložit ji do složky public
projektu.
Příklad statické konfigurace
V index.js
musí vývojář specifikovat:
JSON soubor s konfigurací může být uložen kdekoli ve složce public
, ale důrazně se doporučuje jej uložit do složky /public/discover/
, aby jej bylo možné odlišit od ostatních veřejně přístupných součástí.
- Struktura konfigurace ve složce
public
- public
- discover
- JSON konfigurační soubor
- dashboards
- locales
- media
- index.html
- manifest.json
URL statického konfiguračního souboru uloženého ve složce public
může vypadat následovně:
https://my-project-url/discover/Discover-config.json
Příklad Discover-config.json
:
[
{
"Config name 1": {
"Declarative": {
"specification": "declarative*",
"datetimeField": "last_inform",
"type": "elasticsearch"
}
}
},
{
"Config name 2": {
"Default": {
"specification": "default*",
"datetimeField": "@timestamp",
"type": "elasticsearch"
}
}
}
]