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.