Sobes.tech
Middle

Čo viete o elastickom zásobníku ELK a EFK?

sobes.tech AI

Odpoveď od AI

Elastic Stack (ELK) je súbor nástrojov na centralizované zber, analýzu a vizualizáciu logov. EFK je jeho varianta, ktorá nahrádza Logstash Fluentd.

Zloženie ELK:

  • Elasticsearch: Distribuovaný vyhľadávací a analytický engine založený na Lucene. Používa sa na ukladanie, indexovanie a vyhľadávanie logov.
  • Logstash: Pipeline na spracovanie dát. Prijíma dáta z rôznych zdrojov, filtruje ich, transformuje a odosiela do Elasticsearch.
  • Kibana: Webové rozhranie na vizualizáciu dát uložených v Elasticsearch. Umožňuje vytvárať dashboardy, grafy a vykonávať interaktívnu analýzu logov.

V zostave stacku sú často zahrnuté Beats — ľahké agenti na zber dát zo serverov (Filebeat pre logy, Metricbeat pre metriky atď.).

Zloženie EFK:

  • Elasticsearch: Podobne ako ELK, používa sa na ukladanie a vyhľadávanie.
  • Fluentd: Otvorený zdrojový konsolidátor logov. Plní podobné funkcie ako Logstash, ale je považovaný za ľahší a má flexibilnejší systém pluginov. Je obľúbený v kontajnerových prostrediach (Kubernetes).
  • Kibana: Podobne ako ELK, používa sa na vizualizáciu.

Hlavné funkcie a výhody:

  • Centralizácia logov: Zber logov z viacerých serverov a aplikácií na jednom mieste.
  • Vyhľadávanie a analýza: Rýchle vyhľadávanie v obrovských objemoch dát a vykonávanie zložitých analýz.
  • Monitoring a upozornenia: Vizualizácia trendov, odhaľovanie anomálií a nastavovanie upozornení na základe logov.
  • Odstraňovanie problémov: Zrýchlenie vyhľadávania príčin incidentov a chýb v systémoch.
  • Škálovateľnosť: Horizontálne škálovanie všetkých komponentov stacku.

Porovnanie Logstash a Fluentd:

Charakteristika Logstash Fluentd
Architektúra Na báze JVM, monolitická Na báze Ruby/C, modulárna, s pluginmi na Ruby
Pamäť Často vyššia spotreba pamäte Menej náročný na pamäť
Výkon Dobrá, ale môže byť ťažkopádny Často efektívnejší pri vysokých záťažiach
Prostredie Tradičné serverové prostredia, VM Obzvlášť populárne v kontajneroch (Docker, K8s)
Pluginy Veľké množstvo vstavaných pluginov Obrovské množstvo pluginov od komunity
Konfigurácia Vlastná syntax JSON alebo YAML

Príklad použitia:

# Príklad konfigurácie Filebeat na zber logov Docker v Kubernetes
- module: docker
  containers:
    ids: '*'
    stream: 'stdout' # Zber logov iba zo stdout
    paths:
      - /var/lib/docker/containers/${data.docker.container.id}/*.log

  processors:
  - add_kubernetes_metadata:
      in_cluster: true # Automatické pridanie metadát Kubernetes
# Príklad konfigurácie Fluentd na odosielanie logov do Elasticsearch
<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<match kubernetes.**>
  @type elasticsearch
  host elasticsearch-logging.default.svc.cluster.local # Adresa Elasticsearch
  port 9200
  logstash_format true
  logstash_prefix kubernetes
  <buffer>
    flush_interval 5s
  </buffer>
</match>

Výber medzi ELK a EFK závisí od špecifikácií infraštruktúry, preferencií v nástrojoch a požiadaviek na výkon a zdroje. V kontajnerových prostrediach je EFK často preferovanou voľbou kvôli ľahkosti Fluentd a integrácii s Kubernetes.