Deset serverů, třicet služeb. Hledat chybu v logách = SSH na každý server a grep. ELK stack centralizuje logy na jedno místo a dává jim smysl.
Tři pilíře¶
Elasticsearch: Distribuovaný search engine pro JSON dokumenty. Logstash: Pipeline pro parsing a enrichment logů. Kibana: Vizualizace a dashboardy.
Logstash konfigurace¶
input { beats { port => 5044 } }
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVACLASS:class} - %{GREEDYDATA:msg}" }
}
}
output {
elasticsearch { hosts => ["elasticsearch:9200"] index => "logs-%{+YYYY.MM.dd}" }
}
Structured logging¶
Nejlepší praxe: logujte přímo v JSON. Žádné grok parsování. V Javě s logstash-logback-encoder. Denní indexy, mazání po 30 dnech. ES heap max 50 % RAM, nikdy víc než 32 GB.
ELK je základ observability¶
Centralizované logování je nutnost pro distribuované systémy.
elkelasticsearchlogstashkibana