🟢 Beginner

Log Management — Centralizované Logovanie

Log management je proces zberu, spracovania, ukladania a analýzy logov z celej infraštruktúry na jednom mieste. V prostredí s desiatkami mikroslužieb a kontajnerov je centralizované logovanie nevyhnutnosť.


Čo je Log Management?

Logy sú najzákladnejší zdroj informácií o tom, čo sa deje v systéme. Log management zahŕňa:

  • Zber — automatický zber logov zo všetkých služieb
  • Spracovanie — parsovanie, filtrovanie a obohacovanie
  • Ukladanie — centrálne úložisko s indexáciou
  • Analýza — vyhľadávanie, vizualizácia a alerting
  • Retenčné politiky — automatické mazanie starých logov

Ako funguje

Populárne nástroje:

Grafana Loki — log agregácia navrhnutá pre Grafanu:

  • Indexuje len labely, nie plný text (nízke náklady na storage)
  • Dopytovací jazyk LogQL podobný PromQL
  • Natívna integrácia s Grafanou
# Promtail konfigurácia (agent pre Loki)
server:
  http_listen_port: 9080

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://loki:3100/loki/api/v1/push

scrape_configs:
  - job_name: containers
    docker_sd_configs:
      - host: unix:///var/run/docker.sock
    relabel_configs:
      - source_labels: ['__meta_docker_container_name']
        target_label: 'container'

Fluentd — univerzálny log collector (CNCF projekt):

  • Stovky input/output pluginov
  • Bufferovanie a retry logika
  • Ľahšia verzia Fluent Bit pre kontajnery
<source>
  @type tail
  path /var/log/app/*.log
  tag app.logs
  <parse>
    @type json
  </parse>
</source>

<match app.logs>
  @type loki
  url http://loki:3100
  <label>
    app $.app_name
    env $.environment
  </label>
</match>

Praktické použitie

  • Debugging — hľadanie chýb naprieč mikroslužbami podľa trace ID
  • Audit trail — kto čo kedy urobil (compliance, bezpečnosť)
  • Anomaly detection — nezvyčajný nárast error logov spustí alert
  • Kapacitné plánovanie — analýza trendov v logoch
  • Incident response — rýchle filtrovanie logov počas výpadku

Štruktúrované logovanie je základ:

{
  "timestamp": "2026-02-27T10:30:00Z",
  "level": "error",
  "service": "payment-api",
  "trace_id": "abc123",
  "message": "Payment failed",
  "error": "timeout connecting to bank API",
  "duration_ms": 5000
}

Best Practices

  • Štruktúrované logy (JSON) — nie plain text, parsovanie je drahé
  • Retenčné politiky — 7 dní hot, 30 dní warm, 90 dní cold/archive
  • Logujte kontext — trace ID, user ID, request ID v každom zázname
  • Nelogujte citlivé dáta — heslá, tokeny, osobné údaje (GDPR)
  • Log levels — používajte správne: ERROR, WARN, INFO, DEBUG
  • Sampling — v produkcii nelogujte každý DEBUG záznam

Centralizované logovanie premení chaos logov na prehľadný a prehľadávateľný zdroj pravdy.