Přeskočit obsah

Životní cyklus dat

Data (např. logy, události, metriky) jsou ukládána v několika fázích dostupnosti, v zásadě v chronologickém pořadí. To znamená, že nejnovější logy jsou uloženy v nejrychlejším datovém úložišti a podle toho, jak stárnou, jsou přesunuty do pomalejšího a levnějšího datového úložiště a nakonec do offline archivu nebo jsou odstraněny.

Životní cyklus dat

Schema: Životní cyklus dat v systému TeskaLabs LogMan.io..

Životní cyklus je řízen funkcí ElasticSearch nazvanou Index Lifecycle Management (ILM).

Správa životního cyklu indexu

Funkce Index Lifecycle Management (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.

Architektura Hot-Warm-Cold (HWC)

HWC je rozšíření standardní rotace indexů poskytované 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.

Horká fáze

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á fáze

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 poměrně 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á fáze

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 by se na data někdo dotazoval, 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

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

Archivní fáze

Fáze archivace je v návrhu volitelná. Jedná se o offline dlouhodobé úložiště. Nejstarší data ze studené fáze by mohla být pravidelně přesouvána do archivní fáze namísto jejich mazání.

Uplatňují se standardní zásady archivace provozní organizace SIEM. Archivovaná data musí být zašifrována.

Je také možné předávat určité logy přímo z teplé fáze do archivační fáze.

Vytvoření zásad 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": "lm_",
      "rollover_alias": "lm_"
    }
  }
},

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ř. lm_

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

7.) Na obrazovce Nastavení přidejte:

{
  "index": {
    "lifecycle": {
      "name": "lm_",
      "rollover_alias": "lm_"
    }
  }
}

8.) Klikněte na Uložit

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

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

PUT lm_tenant-000001
{
  "aliases": {
    "lm_": {
      "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.

Warning

Prefix a číslo indexu pro převrácení ILM musí být odděleny pomocí -000001, nikoli _000001!

Note

Ujistěte se, že ve zdroji není žádná konfigurace předpony indexu, jako je tomu v ElasticSearchSink v potrubí. Konfigurace kódu by nahradila konfiguraci souboru.

Zálohování a obnovení Elasticsearch

Snímky

Nachází se v části Stack Management -> Snapshot and Restore. Snímky jsou uloženy v umístění úložiště. Struktura je následující. Samotný snímek je pouze ukazatel na indexy, které obsahuje. Samotné indexy jsou uloženy v samostatném adresáři a jsou ukládány inkrementálně. To v podstatě znamená, že pokud vytváříte snímek každý den, starší indexy jsou ve snímku pouze znovu odkazovány, zatímco do záložního adresáře se skutečně kopírují pouze nové indexy.

Úložiště

Nejprve je třeba nastavit úložiště snímků. Zadejte umístění, kde se úložiště snímků nachází, například /backup/elasticsearch. Tato cesta musí být přístupná ze všech uzlů v clusteru. V případě Elasticsearch běžícího v dockeru to zahrnuje připojení prostoru uvnitř kontejnerů dockeru a jejich restartování.

Zásady

Pro zahájení pořizování snímků je třeba vytvořit zásady. Zásada určuje prefix pojmenování vytvářených snímků, určuje úložiště, které bude používat pro vytváření snímků, Vyžaduje nastavení plánu, indexy (definované pomocí vzorů nebo konkrétních názvů indexů - například lmio-mpsv-events-*). Dále je v zásadě možné určit, zda má ignorovat nedostupné indexy, povolit částečné indexy a zahrnout globální stav. Jejich použití závisí na konkrétním případu, ve kterém bude politika snímků použita, a ve výchozím nastavení se nedoporučují. K dispozici je také nastavení pro automatické mazání snímků a definice vypršení platnosti. I ty závisí na konkrétní politice, samotné snapshoty jsou však velmi malé (paměťově), pokud nezahrnují globální stav, což se dá očekávat, protože jsou to jen ukazatele na jiné místo, kde jsou uložena skutečná data indexu.

Obnovení snapshotu

Chcete-li obnovit snímek, jednoduše vyberte snímek obsahující index nebo indexy, které chcete obnovit, a zvolte "Obnovit". Poté je třeba zadat, zda chcete obnovit všechny indexy obsažené ve snímku, nebo jen jejich část. Obnovené indexy můžete přejmenovat, můžete také obnovit indexy z části snímku a při jejich obnově upravit nastavení indexů. Nebo je obnovit na výchozí hodnoty. Indexy se pak podle zadání obnoví zpět do clusteru.

Upozornění

Při odstraňování snímků mějte na paměti, že abyste mohli obnovit zálohované indexy, musí být pokryty snímkem. To znamená, že když například vymažete některé indexy z clusteru a poté odstraníte snímek, který obsahoval odkaz na tyto indexy, nebudete je moci obnovit.