Životní cyklus dat
Data (např. logy, události, metriky) jsou uchovávána v několika fázích dostupnosti, v podstatě v chronologickém pořadí. To znamená, že nedávné logy jsou uloženy v nejrychlejším datovém úložišti a jak stárnou, jsou přesouvány do pomalejšího a levnějšího datového úložiště a nakonec do offline archivu nebo jsou smazány.
Schéma: Životní cyklus dat v TeskaLabs LogMan.io.
Životní cyklus je řízen funkcí ElasticSearch, která se nazývá Index Lifecycle Management (ILM).
Index Lifecycle Management
Index Lifecycle Management (ILM) v ElasticSearch automaticky uzavírá nebo maže staré indexy (např. s daty staršími než tři měsíce), takže vyhledávací výkon je zachován a datové úložiště je schopné ukládat současná data. Nastavení je uloženo v tzv. ILM politice.
ILM by měl být nastaven před tím, než jsou data pumpována do ElasticSearch, aby nový index našel a přiřadil se k příslušné ILM politice. Pro více informací se podívejte na 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í specifikovaný ILM alias (lm_) a ElasticSearch automaticky přesouvá data do příslušného indexu přiřazeného k ILM politice.
Hot-Warm-Cold architektura (HWC)
HWC je rozšíření standardní rotace indexů poskytované ElasticSearch ILM a je to dobrý nástroj pro správu dat časových řad. HWC architektura nám umožňuje přidělit specifické uzly pro jednu z fází. Při správném použití, společně s architekturou clusteru, to umožní maximální výkon, využitím dostupného hardware na maximum.
Hot fáze
Obvykle existuje určité časové období (týden, měsíc atd.), kdy chceme intenzivně dotazovat indexy, s cílem na rychlost, spíše než na šetření paměti (a dalších zdrojů). Tady přichází na řadu „Hot“ fáze, která nám umožňuje mít index s více replikami, rozložený a přístupný na více uzlech pro optimální uživatelský zážitek.
Hot uzly
Hot uzly by měly využívat rychlé části dostupného hardware, využívající většinu CPU a rychlejší vstup/výstup.
Warm fáze
Jakmile toto období skončí a indexy už nejsou dotazovány tak často, budeme mít výhodu přesunu do „Warm“ fáze, která nám umožňuje snížit počet uzlů (nebo přejít na uzly s méně dostupnými zdroji) a replik indexů, čímž se snižuje zatížení hardware, zatímco stále zachovává možnost vyhledávání v datech přiměřeně rychle.
Warm uzly
Warm uzly, jak naznačuje jejich název, stojí na křižovatce mezi čistě úložnými uzly, zatímco stále zachovávají nějaký výkon CPU pro občasné dotazy.
Cold fáze
Někdy existují důvody pro uchovávání dat po delší období (diktované zákonem nebo nějakým interním pravidlem). Data se neočekává dotazovat, ale zároveň nemohou být smazána.
Cold uzly
Zde přichází na řadu Cold uzly, mohou být málo, s malými CPU zdroji, nemají potřebu používat SSD disky, jsou naprosto v pořádku s pomalejším (a případně větším) úložištěm.
Nastavení by mělo být provedeno následujícím způsobem:
Archivní fáze
Archivní fáze je v návrhu volitelná. Jedná se o offline dlouhodobé úložiště. Nejstarší data z cold fáze mohou být periodicky přesouvána do archivní fáze namísto jejich smazání.
Používají se standardní archivní politiky provozující organizace SIEM. Archivovaná data musí být šifrována.
Je také možné určitá logy přímo z warm fáze posílat do archivní fáze.
Vytvoření ILM politiky
Kibana
K vytváření ILM politiky v ElasticSearch lze použít Kibana verze 7.x.
1.) Otevřete Kibanu
2.) Klikněte na Správa v levém menu
3.) V sekci ElasticSearch klikněte na Index LifeCycle Policies
4.) Klikněte na modré tlačítko Vytvořit politiku
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 rollover, např. 25 GB (rollover podle velikosti)
7.) Nastavte maximální věk indexu, např. 10 dní (rollover podle času)
8.) Klikněte na spínač na dolní části obrazovky v sekci Fáze mazání a zadejte čas, po kterém by měl být index smazán, např. 120 dní od rolloveru
9.) Klikněte na zelené tlačítko Uložit politiku
Použití politiky v šabloně indexu
Úprava šablony indexu
Přidejte následující řádky do šablony indexu JSON:
"settings": {
"index": {
"lifecycle": {
"name": "lm_",
"rollover_alias": "lm_"
}
}
},
Kibana
K vytváření ILM politiky v ElasticSearch lze použít Kibana verze 7.x.
1.) Otevřete Kibanu
2.) Klikněte na Správa v levém menu
3.) V sekci ElasticSearch klikněte na Index Management
4.) Nahoře vyberte Šablonu indexu
5.) Vyberte požadovanou šablonu indexu, např. lm_
6.) Klikněte na Upravit
7.) Na obrazovce Nastavení přidejte:
{
"index": {
"lifecycle": {
"name": "lm_",
"rollover_alias": "lm_"
}
}
}
8.) Klikněte na Uložit
Vytvoření nového indexu, který bude využívat nejnovější šablonu indexu
Prostřednictvím PostMan nebo Kibana vytvořte následující HTTP požadavek na instanci ElasticSearch, kterou používáte:
PUT lm_tenant-000001
{
"aliases": {
"lm_": {
"is_write_index": true
}
}
}
Alias bude pak použit ILM politikou pro distribuci dat do příslušného ElasticSearch indexu, takže pumpy se nemusí starat o číslo indexu.
Varování
Předpona a číslo indexu pro ILM rollover musí být odděleny -
000001, ne _
000001!
Poznámka
Ujistěte se, že v zdroji není žádná konfigurace předpony indexu, jako v ElasticSearchSink v pipeline. Konfigurace kódu by nahradila konfiguraci v souboru.
Zálohování a obnova v Elasticsearch
Snímky
Nachází se pod Správa Stacků -> Snímky a Obnova
. Snímky jsou ukládány do umístění repozitáře. Struktura je následující. Snímek je pouze ukazatel na indexy, které obsahuje. Samotné indexy jsou uloženy v samostatném adresáři a jsou uloženy inkrementálně. To v podstatě znamená, že pokud vytvoříte snímek každý den, starší indexy jsou pouze znovu odkazovány ve snímku, zatímco nové indexy jsou skutečně kopírovány do záložního adresáře.
Repozitáře
Nejprve je potřeba nastavit repozitář pro snímky. Uveďte umístění, kde se repoziář snímků nachází, např. /backup/elasticsearch
. Tato cesta musí být přístupná ze všech uzlů v clusteru. Při spuštění Elasticsearch v dockeru to zahrnuje připojení prostoru uvnitř dockerových kontejnerů a jejich restartování.
Politiky
Pro zahájení pořizování snímků je potřeba vytvořit politiku. Politika určuje předponu názvů snímků, které vytváří, specifikuje repozitář, který bude používat pro tvorbu snímků. Vyžaduje nastavení rozvrhu, indexy (definované pomocí vzorů nebo specifických názvů indexů - např. lmio-mpsv-events-*
).
Kromě toho může politika určit, zda ignorovat nedostupné indexy, povolit částečné indexy a zahrnout globální stav. Použití těchto nastavení závisí na konkrétním případu, ve kterém bude politika snímků použita, a nejsou doporučeny ve výchozím nastavení. Je také možné nastavit automatické mazání snímků a definovat počet dnů, po kterých budou snímky smazány. Tyto nastavení také závisejí na konkrétní politice, nicméně samotné snímky jsou velmi malé (z hlediska paměti), když neobsahují globální stav, což je očekávané, vzhledem k tomu, že jsou to jen ukazatele na jiné místo, kde jsou skutečná data indexu uložena.
Obnovení snímku
Pro obnovení snímku jednoduše vyberte snímek obsahující index nebo indexy, které chcete obnovit, a vyberte "Restore". Pak musíte určit, zda chcete obnovit všechny indexy obsažené ve snímku, nebo jen část. Můžete přejmenovat obnovené indexy, také můžete obnovit částečně snímky indexů a upravit nastavení indexu při jejich obnovení. Nebo je obnovit na výchozí hodnoty. Indexy jsou pak obnoveny, jak bylo určeno, zpět do clusteru.
Úskalí
Při mazání snímků mějte na paměti, že musíte mít zálohované indexy pokryté snímkem, abyste je mohli obnovit. To znamená, že pokud například vymažete některé z indexů z clusteru a poté smažete snímek, který obsahoval odkaz na tyto indexy, nebudete je moci obnovit.