Hlavní navigace

Vlákno názorů k článku Prechod hostingu na mikroslužby: cesta zlyhaní a úspechov od dustin - Díky za hodně užitečné zkušenosti. Mohu poprosit o rozvedení...

  • Článek je starý, nové názory již nelze přidávat.
  • 27. 6. 2019 10:13

    dustin

    Díky za hodně užitečné zkušenosti.

    Mohu poprosit o rozvedení "Zároveň ES nie je vhodným na dlhodobé uchovávanie logov"? Zjišťuji praktické zkušenosti s ES, díky za detaily.

  • 27. 6. 2019 15:37

    Lukáš Kasič

    Našim veľkým problémom bola nenažranosť Elasticu - vzhľadom na hardvér. Aj tá malá inštancia ELK Stacku, ktorá nám slúži len pre vyhľadávanie v eventoch za posledné 3 týždne beží na samostatnom serveri (8-jadro / 32GB RAM / 240GB SSD), a neustále je ten server vyťažený na 60-80%.

    Spočiatku tento ELK Stack bežal na omnoho výkonnejšom serveri, avšak asi po pol roku sa totálne zrútil. Problém bol ten, že sme mali otvorené všetky indexy (inak povedané: aktívne všetky dáta) za posledných ~6 mesiacov. Čím viac indexov je v ES otvorených, tým väčšie množstvo RAM ES vyžaduje. Následne sme to riešili uzatváraním indexov starších ako 3 mesiace. Dáta tak boli stále uložené na disku, avšak elastic ich nemal v pamäti a nebolo možné s nimi aktívne pracovať. Idea bola taká, že v prípade potreby tie indexy znova otvoríme a vyhľadáme dané dáta.

    Väčšie inštancie ES je lepšie riešiť v clusteri - povedzme dva servery s vyšším výkonom a SSD diskami vyhradiť len na nedávne dáta, a k tomu mať v clusteri minimálne jeden ďalší server pre archívne dáta s pomalšími diskami o vyššej kapacite (a prípadne vertikálne škálovať servery pri nedostatočnej kapacite). Toto je vhodné riešenie pre ES obsahujúce destiatky tera dát. Idea síce dobrá, ale priveľmi drahá vzhľadom k tomu, ako často zisťujeme, čo sa dialo pred rokmi.

    Najväčší problém s dlhodobým uchovávaním logov sme videli v indexácii dát. Ako som spomínal v článku, ak je field ID typu integer, jeho zmena na string nie je v elasticu možná. Je nutné zahodiť index, a vytvoriť ho nanovo (možno kecám, a najnovšia verzia ES to už má vyriešené). Môže nastať aj situácia, že po čase zistíte, že Vám koliduje nejaký field, ktorý je zaindexovaný, a tie dáta nemáte (ES ich odmietol, pretože nesedel dátový typ). Pre kritické systémy je preto lepšie dodatočne tie dáta uchovávať aj v surovej forme.

    Retencia troch týždňov, ktorú sme si interne určili, vyšla z toho, že hlbšie do minulosti ideme len vo výnimočných prípadoch - najčastejšie ELK stack využívame len pre debugovanie pri vývoji. Pre vizualizáciu štatistík a zaujímavých dát sypeme metriky do Influxu a zobrazujeme ich Grafanou. A ak potrebujeme niečo spätne z tých historických dát extrahovať a vizualizovať, nie je to problém - surové dáta sú v JSONu a nie je nič jednoduchšie, ako prejsť dané fajly python skriptom.

  • 28. 6. 2019 11:42

    dustin

    Díky moc za vysvětlení, opravdu praktické zkušenosti s ES se moc často nepublikují.