Logy nejsou nuda: Vytěž si vlastní data a předběhni šéfa v KPIs webseidon Lukáš Adámek Vítkov Klokočov Odry Fulnek web developer

Logy nejsou nuda: Vytěž si vlastní data a předběhni šéfa v KPIs

Logy nejsou nuda: Vytěž si vlastní data a předběhni šéfa v KPIs

Logy nejsou nuda: Vytěž si vlastní data a předběhni šéfa v KPIs

Syslogy, event logy, access logy, debug logy… Spousta textu, který běžně zapadá v ROT folderu na serveru. Přitom v nich leží odpověď na otázky, které se manažeři i admini ptají každé pondělí: „Kolik lidí použilo funknost X?“, „Co brzdí aplikaci?“, „Kolik peněz jsme ztratili kvůli chybě 500?“. V tomhle článku tě naučím, jak z nudných logů vyrobit jazyk čísel a grafů – a jak díky nim zazářit na poradě, dřív než vychladne káva.



1 · Proč logy nejsou jen „audit trail“

V logu je každé kliknutí, chyba, latence i cashflow. Když je začneš číst správně, získáš:

  • Operativní přehled – error rate > 2 %? Víš to dřív, než začne helpdesk zvonit.
  • Optimalizaci výkonu – pinpoint endpoint, který žere 80 % CPU.
  • Business insight – tržby za hodinu, konverzní trychtýř přímo z access logu.
  • Compliance & forenzní stopu – GDPR, ISO 27001, SOC2.

2 · Architektura ELK + Grafana v kostce

[Agents] → Filebeat / Winlogbeat
                  ↓
             Logstash (parse + enrich)
                  ↓
           Elasticsearch cluster
                  ↓
       Grafana ← → Alertmanager / ElastAlert

Filebeat posílá syrové logy, Logstash je čistí a přidává geoIP, Elasticsearch indexuje na SSD, Grafana vizualizuje. Alerty řeší buď Grafana Alerting, nebo ElastAlert.


3 · Sběr logů: Filebeat, Winlogbeat, syslog‑ng

3.1 Filebeat instalace (Linux)

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.13.0-amd64.deb
dpkg -i filebeat-8.13.0-amd64.deb
filebeat modules enable nginx system mysql
filebeat setup -e
systemctl enable --now filebeat

3.2 Winlogbeat instalace (Windows)

Invoke-WebRequest https://artifacts.elastic.co/downloads/beats/winlogbeat/winlogbeat-8.13.0-windows-x86_64.zip -OutFile winlogbeat.zip
Expand-Archive winlogbeat.zip -DestinationPath 'C:\Program Files'
cd 'C:\Program Files\winlogbeat'
.\install-service-winlogbeat.ps1

Povolit kanály Application, System, Security, plus IIS.

3.3 Syslog‑ng pro switch/router

network(); destination("10.0.0.10" transport("tcp") port(514));


4 · Logstash pipeline: parsuj, obohacuj, filtruj

filter {
  grok {
    match => {"message" => "%{IP:client_ip} - - \[%{HTTPDATE:timestamp}\] \"%{WORD:method} %{URIPATH:uri}"}
  }
  geoip { source => "client_ip" }
  useragent { source => "agent" target => "ua" }
  mutate {
    add_field => {"section" => "%{[uri][1]}"}
    convert => {"response" => "integer" "bytes" => "integer"}
  }
}

Výsledek: strukturovaný JSON místo textu, vhodný pro agregace.


5 · Indexace a lifecycle v Elasticsearch

  • Index template s dynamic mapping false – žádné neočekávané pole.
  • ILM policy: hot (7 dní SSD) → warm (30 dní HDD) → cold (S3 snapshot).
  • Rollup pro year‑over‑year metriky (hodinové agregáty).

6 · Grafana dashboard: od error rate po revenue

6.1 Důležité panely

  • Error Rate 4xx/5xxsum(response>=400)/sum(*)
  • P95 latencyquantile(0.95, ms)
  • Registrace uživatelů/den – Filebeat → filter POST /api/register
  • Tržby – pokud loguješ order_total, udělej sum by day.

6.2 Public vs. internal folders

Management dostane „Executive“ složku (jen KPI), devops „Infra“ (detaily).


7 · Alerting: Prometheus alertmanager vs. ElastAlert

- alert: HighErrorRate
  expr: sum(rate(log_errors_total[5m])) / sum(rate(log_requests_total[5m])) > 0.05
  for: 2m
  labels:
    severity: critical
  annotations:
    summary: "Error rate >5 % posledních 5 min."

Alternativa v ElastAlert:

type: frequency
index: filebeat-*
num_events: 50
timeframe:
  minutes: 1
filter:
- term:
    response: 500

8 · Logy jako business KPI: case study e‑shopu

KPIPřed (GA4)Z logů (real‑time)Benefit
Konverze košíku24 h delay< 1 minRychlejší AB test
Prům. objednávkaN/ALog parsingPřesnější marže
Drop‑off bodySampling100 % datPřesný funnel

Díky tomu e‑shop optimalizoval banner a zvýšil konverzi o 12 % do dvou týdnů.


9 · Anomálie & ML jobs v Elastic ML

  • Job high_mean_response_time – detekuje latency spike.
  • Job low_unique_visitors – upozorní na SEO drop.
  • Integruj s Watcher → Slack alert s grafem.

10 · Bezpečnost: GDPR, maskování, RBAC

  • PII maskuj v Logstash (mutate gsub na e‑maily, IP hash).
  • Elasticsearch — TLS + RBAC: readonly pro externí tým.
  • Větve indexů: logs-prod‑* vs. logs‑dev‑*.
  • Retention – max 90 dní pro PII, 365 pro agg.

11 · Náklady a optimalizace hot/cold storage

10 GB dat/den:

  • Hot (SSD) 7 dní → 70 GB
  • Warm (HDD) 30 dní → 300 GB
  • Cold (S3) 335 dní → 3,3 TB (4 €/TB/m)

Shrnutí: < 40 €/m pro celý rok, výrazně méně než Splunk Cloud.


12 · FAQ

Proč ne Graylog / Loki?
Loki je super na text + Promtail, ale chybí full‑text bez regex. Elastic má silnější ML.
Není Filebeat těžký?
Spotřeba RAM < 30 MB, CPU mizivé. Pro ≥ 5 k EPS raději Fluent Bit.
Můžu posílat Windows Eventy bez Winlogbeat?
Ano, přes NXLog nebo Wevtutil + Syslog Forwarder, ale Winlogbeat je nejjednodušší.

13 · Závěr

Logy opravdu nejsou nuda. Jsou to spíše neotevřené dopisy, ve kterých se skrývají odpovědi na technické i byznysové otázky. Seber je, vyčisti, ulož, zobraz – a uvidíš, jak se z „šedého šumu“ stane palubní deska, která ti ukáže kudy k vyšší spokojenosti uživatelů i k větším tržbám.


Klíčová slova

log management, elk stack, filebeat, elasticsearch, grafana, kpi dashboards, logstash, observability, log analytics, time series, devops metrics, siem

↥ Zpět nahoru

Sdílejte na sítích

Webseidon
Webseidon
Articles: 32