Přeskočit obsah

Nastavení ElasticSearch

Šablony indexů

Před načtením dat do ElasticSearch, měla by být přítomna šablona indexu, aby byly každému poli přiřazeny správné datové typy.

To je nutné zejména u polí založených na čase, která by bez indexové šablony nefungovala a nemohly by být použity pro třídění a vytváření indexových vzorů v nástroji Kibana.

Šablona indexu ElasticSearch by měla být přítomna v úložišti site-. pod názvem es_index_template.json.

Vložení indexové šablony prostřednictvím PostMan nebo Kibana, vytvořte následující požadavek HTTP na instanci ElasticSearch, kterou používáte:

PUT _template/lmio-
{
  //Deploy to <SPECIFY_WHERE_TO_DEPLOY_THE_TEMPLATE>
  "index_patterns" : ["lmio-*"],
  "version": 200721, // Zvyšte tuto hodnotu s každou verzí
  "order" : 9999998, // Snižte tuto hodnotu s každou verzí
  "settings": {
    "index": {
      "lifecycle": {
        "name": "lmio-",
        "rollover_alias": "lmio-"
      }
    }
  },
  "mappings": {
    "properties": {
      "@timestamp": {"type": "date", "format": "strict_date_optional_time||epoch_millis" },
      "rt": {"type": "date", "format": "strict_date_optional_time||epoch_second" },
      ...
  }
}

Tělo požadavku je obsahem souboru es_index_template.json.

Správa životního cyklu indexu

Správa životního cyklu indexů (ILM) v ElasticSearch slouží k automatickému uzavírání nebo mazání starých indexů (např. s daty staršími než tři měsíce), aby byl zachován výkon vyhledávání a datové úložiště bylo schopno ukládat aktuální data. Nastavení je přítomno v takzvané politice ILM.

ILM by měla být nastavena před načerpáním dat do ElasticSearch, aby se nový index našel a spojil se správnou politikou ILM. Další informace naleznete v oficiální dokumentaci: https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index-lifecycle-management.html

Komponenty LogMan.io, jako je Dispatcher, pak používají zadaný alias ILM (lm_) a ElasticSearch automaticky umístí data do správného indexu přiřazeného pomocí politiky ILM.

Nastavení by mělo být provedeno následujícím způsobem:

Vytvořit politiku ILM

Kibana

K vytvoření zásad ILM v ElasticSearch lze použít Kibanu verze 7.x.

1.) Otevřete Kibanu

2.) Klikněte na položku Správa v levém menu

3.) V sekci ElasticSearch klikněte na položku Zásady životního cyklu indexu.

4.) Klikněte na modré tlačítko Vytvořit zásady

5.) Zadejte její název, který by měl být stejný jako předpona indexu, např. lm_.

6.) Nastavte maximální velikost indexu na požadovanou velikost rolování, např. 25 GB (velikost rolování).

7.) Nastavte maximální stáří indexu, např. 10 dní (časový rollover).

8.) Klepněte na přepínač dole na obrazovce ve fázi Odstranit a zadejte dobu, po které má být index odstraněn, např. 120 dní od rolloveru.

9.) Klikněte na zelené tlačítko Uložit zásady

Použijte zásady v šabloně indexu

Upravte šablonu (šablony) indexu.

Do šablony indexu JSON přidejte následující řádky:

"settings": {
  "index": {
    "lifecycle": {
      "name": "lmio-",
      "rollover_alias": "lmio-"
    }
  }
},

Kibana

Kibanu verze 7.x lze použít k propojení zásad ILM se šablonou indexu ES.

1.) Otevřete Kibanu

2.) Klikněte na položku Správa v levém menu

3.) V sekci ElasticSearch klikněte na položku Správa indexů.

4.) V horní části vyberte možnost Šablona indexu

5.) Vyberte požadovanou šablonu indexu, např. lmio-

6.) Klepněte na tlačítko Upravit

7.) Na obrazovce Nastavení přidejte:

{
  "index": {
    "lifecycle": {
      "name": "lmio-",
      "rollover_alias": "lmio-"
    }
  }
}

8.) Klikněte na Uložit

Vytvořte nový index, který bude využívat nejnovější šablonu indexu

Prostřednictvím aplikace PostMan nebo Kibana vytvořte následující požadavek HTTP na instanci ElasticSearch, kterou používáte:

PUT lmio-tenant-events-000001
{
  "aliases": {
    "lmio-tenant-events": {
      "is_write_index": true
    }
  }
}

Alias pak bude použit politikou ILM k distribuci dat do správného indexu ElasticSearch, takže se čerpadla nemusí starat o číslo indexu.

/Poznámka: Předpona a číslo indexu pro převrácení ILM musí být odděleny pomocí -000001, nikoli _000001!//

Konfigurace dalších součástí LogMan.io

Čerpadla nyní mohou používat zásady ILM prostřednictvím vytvořeného aliasu, kterým je ve výše uvedeném případě lm_tenant. Konfigurační soubor by pak měl vypadat takto:

[pipeline:<PIPELINE>:ElasticSearchSink].
index_prefix=lm_tenant
doctype=_doc

Čerpadlo vždy vloží data do aliasu lm_tenant, kde se ILM postará o správné přiřazení k indexu, např. lm_-000001.

/Poznámka: Ujistěte se, že ve zdroji není žádná konfigurace předpony indexu, jako je tomu v ElasticSearchSink v pipeline. Konfigurace kódu by nahradila soubor configuration.//.

Architektura Hot-Warm-Cold (HWC)

HWC je rozšířením standardní rotace indexů, kterou poskytuje ElasticSearch ILM, a je dobrým nástrojem pro správu dat časových řad. Architektura HWC nám umožňuje přidělit konkrétní uzly jedné z fází. Při správném použití spolu s architekturou clusteru to umožní dosáhnout maximálního výkonu a využít dostupný hardware na maximum.

Hot

Obvykle existuje určité časové období (týden, měsíc atd.), kdy se chceme intenzivně dotazovat na indexy, přičemž cílem je spíše rychlost než úspora paměti (a dalších zdrojů). Tehdy se hodí fáze "Hot", která nám umožní mít index s více replikami, rozložený a přístupný na více uzlech pro optimální uživatelský komfort.

Horké uzly

Horké uzly by měly využívat rychlé části dostupného hardwaru, využívat většinu procesorů a rychlejší IO.

Hot

Teplý

Jakmile toto období skončí a indexy již nebudou dotazovány tak často, využijeme jejich přesunutí do fáze "Warm", která nám umožní snížit počet uzlů (nebo se přesunout do uzlů s méně dostupnými zdroji) a replik indexů, čímž se sníží zatížení hardwaru, ale zároveň zůstane zachována možnost přiměřeně rychlého prohledávání dat.

Teplé uzly

Teplé uzly, jak název napovídá, stojí na rozcestí mezi tím, že slouží výhradně pro účely ukládání dat, a zároveň si zachovávají určitý výkon procesoru pro zpracování příležitostných dotazů.

warm

Studený

Někdy existují důvody, proč je třeba data uchovávat delší dobu (dané zákonem nebo nějakým interním předpisem). Nepředpokládá se, že se na data bude někdo dotazovat, ale zároveň je zatím nelze smazat.

Studené uzly

Zde přicházejí na řadu studené uzly, může jich být málo, mají jen málo prostředků CPU, nemají potřebu používat SSD disky, naprosto si vystačí s pomalejším (a případně větším) úložištěm.

cold

Závěr

Využití funkce HWC ILM v plném rozsahu vyžaduje určitou přípravu, je třeba ji zvážit při budování produkčního clusteru ElasticSearch. Přidaná hodnota však může být v závislosti na konkrétních případech použití velmi vysoká.