ááŒáá·áºáá±ááŸá¯á áá áºáá»á¬ážá ááŸá¯ááºááœá±ážááŸá¯áá»á¬áž ááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ á á±á¬áá·áºááŒáá·áºáá±á·áá¬ááŒááºážááẠááŒá®ážááœá¬ážáá¬áá±á¬ cloud ááŒá±ááŸááºážáá»ááºáá»á¬ážá¡ááœáẠá¡ááœááºá¡áá±ážááŒá®ážáá±á¬ á¡á áááºá¡ááá¯ááºážáá áºáᯠááŒá áºáá¬áá«áááºá áá°ááá¯á·áá²á· á¡ááŒá¯á¡áá°ááᯠáá¬ážáááºááá¯á· ááá¯áá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážá០áá±áá¬áá»á¬ážááᯠá á¯áá±á¬ááºážááá¯ááºááá·áº á¡ááœááºá¡á á¬ážááŸá áááááá¬áá»á¬áž ááá¯á¡ááºááẠ- áá»áœááºážáá»ááºáá°áá»á¬ážááᯠá áœááºážáá±á¬ááºáááºááá¯ááºážááŒá¬ážá áááºááŒá¬ááŸá¯á á¡ááŸá¬ážá¡ááœááºáž ááá¯ááºááŒááŸá¯á áááŸáááá¯ááºááŸá¯ááŸáá·áº ááŸááºáááºážáá»á¬ážááŸáá·áºá¡áá° áá áºáá¯áááºážáá±á¬ á¡ááºáá¬áá±á·á áºááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
á€áá°áááá¬áá»á¬ážááẠáááá±á¬ááºááŒá®áž á¡áá»áá¯ážááŸáááá«áááºá á€áá±á¬ááºážáá«ážááœááºá EFK (Elasticsearch) ááŸáá·áº PLG (Loki) ááá¯á·ááᯠáá°ááŒáá¯ááºáá»á¬ážáá±á¬ áááºážááá¬á¡á á¯ááŸá áºáá¯ááᯠááŒáá·áºááŸá¯ááŒá®áž áááºážááá¯á·á áááá¯áá¬áááºáá¬áá»á¬ážááŸáá·áº ááœá²ááŒá¬ážááŸá¯áá»á¬ážááᯠáááºážá á áºáá«áááºá
EFK stack
á¡ááœááºáá¬áááºááŒá®ážáá±á¬ ELK ááá¯á·ááá¯áẠEFK á¡ááŒá±á¬ááºáž áááºááŒá¬ážáá°ážááŒá®ážáá¬ážááŒá áºáá±áááºá á¡á á¯á¡áá±ážááœáẠááœá²ááŒá¬ážáá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬ážá áœá¬ áá«áááºáááº- Elasticsearch (á¡áá¬ááá¹áᯠááá¯ááŸá±á¬ááºááŸá¯)á Logstash ááá¯á·ááá¯áẠFluentD (ááŸááºáááºáž á á¯áá±á¬ááºážááŒááºážááŸáá·áº á á¯á ááºážááŸá¯) ááŸáá·áº á¡ááŒááºá¡á¬áá¯á¶á¡ááœáẠKbanaá
áá¯á¶ááŸááºá¡áá¯ááºá¡ááœá¬ážá¡áá¬ááẠá€áá²á·ááá¯á·ááŒá áºáááº-
Elasticsearch â ááŸá¬ááœá±ááŸá¯ááŸáá·áº á¡áá»áááºááŸáá·áºáá áºááŒá±ážáá® ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááŒáá·áº á¡áá¬ááá¹áá¯ááá¯ááŸá±á¬ááºááŸá¯ááᯠááŒáá·áºáá±áááºá ááŸááºáááºážáá»á¬ážáá²á·ááá¯á·áá±á¬ semi-structured data á¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážááŒá±ááŸááºážáá»ááºá á¡áá»ááºá¡áááºáá»á¬ážááᯠJSON á á¬ááœááºá á¬áááºážáá»á¬ážá¡ááŒá Ạááááºážáááºážáá¬ážááŒá®ážá á¡áá»áááºááŸáá·áºáááŒá±ážáá® á¡ááœáŸááºážááŒá¯áᬠá¡á á¯á¡áá±ážáá»á¬ážáá áºáá»áŸá±á¬áẠááŒáá·áºáá±áá«áááºá Apache Lucene ááŸá¬ááœá±áá±ážá¡ááºáá»ááºááᯠá¡ááŒá±áá¶áá¬ážááá·áº á á¬áá¬ážá¡ááŒáá·áºá¡á á¯á¶ááŸá¬ááœá±ááŸá¯á¡ááœáẠáá°ážááŒá¬ážáá±á¬á áá¬ážáá¯á¶ážáá»á¬ážááŸáá·áº áááºá ááºá á¬ááœááºá á¬áááºážáá»á¬ážáá«ááŸááá±á¬ ááŒá±á¬ááºážááŒááºá¡ááœáŸááºážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
FluentD á
á¯áá±á¬ááºážáá¯á¶ážá
áœá²ááá·áºá¡áá« áá±áá¬á
á¯áá±á¬ááºážáá°ááẠáá±áá¬á
á¯áá±á¬ááºážáá°ááŒá
áºáááºá áááºážááẠJSON ááœáẠáá±áá¬ááᯠáááºááá¯ááºááá»áŸ á
á¯á
ááºážááẠááŒáá¯ážá
á¬ážáááºá áááºážááááá¯áá¬ááá¬áááºááá¯ážáá»á²á·ááá¯ááºáá±á¬á ááá¯áá»á¬ážáááºá
áá®áá¬áᬠ- á¥ááá¬á á¡áá»áááºá á®ážáá®ážááœá²ááŒááºážá áááºááŒá¬ááŒááºážá ááááºááœá²ááŒááºážá áááºááŒá¬ááŒááºážá á ááºáááºáá°ááŒááºážááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážáá«ááŸááá±á¬ Elasticsearch á¡ááœáẠáá±áá¬ááᯠáá¯á¶áá±á¬áºááŒááºážáááááá¬áá áºáá¯á
Elasticsearch áááá¯áá¬
Elasticsearch á¡á á¯á¡áá±ážáá±áá¬ááᯠáááºážá node á¡á¬ážáá¯á¶ážááœáẠááŒáá·áºáá»ááºááááºážáááºážáá¬ážáááºá á¡á á¯á¡áá±ážáá áºáá¯ááœáẠáááŸáááá¯ááºááŸá¯ááŸáá·áº áá¶ááá¯ááºáááºááŸáááŸá¯ááᯠááŒáŸáá·áºáááºááẠnode á¡áá»á¬ážá¡ááŒá¬ážáá«áááºáááºá áááºááá·áº node áááᯠcluster á á¡áááºážááá¹áá¡á¬ážáá¯á¶ážááᯠáá¯ááºáá±á¬ááºááá¯ááºáá±á¬áºáááºáž ááŒá®ážáá¬ážáá±á¬ ááŒáá·áºáá»ááºááŸá¯ááœááºá node áá»á¬ážááᯠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº áá áºáŠážáá»ááºážáá¯ááºáá±á¬ááºá áá¬áá»á¬ážááᯠáá¬áááºáá±ážá¡ááºáááºá
Cluster node á¡áá»áá¯ážá¡á á¬ážáá»á¬áž-
- master node - á¡á á¯á¡áá±ážááᯠá á®áá¶ááá·áºááœá²áááºá á¡áááºážáá¯á¶áž áá¯á¶ážáá¯ááá¯á¡ááºáááºá áá áºáá¯ááẠá¡ááŒá²áááºážáááºááŒáœáá±áá«áááºá
- data node - indexed data ááœá±ááᯠááááºážáááºážááŒá®áž á¡áá»áá¯ážáá»áá¯ážáá±á¬ áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±ážáá«áááºá
- á á¬ážáá¯á¶ážáááá±á¬ node - á¡ááœáŸááºážááááºáá® áá±áá¬á¡ááœááºááŒá±á¬ááºážáááºá¡ááœáẠááá¯ááºááá¯ááºážáá»á¬ážááᯠá á¯á ááºážáá±ážáááºá
- ááŸáááŸáá¯ááºážáá±áž node - áááºážááŒá±á¬ááºážáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá ááŸá¬ááœá±ááŸá¯áá¯ááºáá±á¬ááºááŒááºážá¡ááá·áºááᯠáá»áŸá±á¬á·áá»ááŒááºážá á¡á á¯ááá¯ááºá¡ááŒá¯á¶ááá¯áẠá¡ááœáŸááºážááááºážáá»á¬ážááᯠááŸáááŸáá¯ááºážáá±á¬ááºááœááºááŒááºážá
- ááááá±ážáá»áẠnode - ááááá±ážáá»ááºáá¯ááºáá±á¬ááºá áá¬áá»á¬ážááᯠá áááºááŒááºáž;
- machine learning node - á ááºáááºáá°ááŒááºážáá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒááºážá
ááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬áá±áá¬áááŸáááá¯ááºááŸá¯áááŸáá á±áááºá¡ááœáẠáá±áá¬áá»á¬ážááᯠáááºáá²á·ááá¯á· ááááºážáááºážáá¬ážáá¯á¶ááŸáá·áº áá¯á¶áá°áá°ážáá»ááŒááºážááᯠá¡á±á¬ááºáá«áá¯á¶ááœáẠááŒáá¬ážáááºá
áá¯á¶áá°áá áºáá¯á á®ááá±áá¬ááᯠááŒá±á¬ááºážááŒááºá¡ááœáŸááºážáá áºáá¯ááœáẠááááºážáááºážáá¬ážááŒá®ážá áááºážááẠáááºááá¯á·ááŒá áºáá»ááºáááºááᯠá¡á±á¬ááºáá«áá¯á¶áá±áá¯á¶ááœáẠááŒááááº-
ustanovka
á¡áá±ážá
áááºááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
$ helm install efk-stack stable/elastic-stack --set logstash.enabled=false --set fluentd.enabled=true --set fluentd-elastics
PLG á¡ááœá²
Grafana Loki áᯠááá¯áááá±á¬ááŒá±á¬áá·áº á€á¡ááá¯áá±á¬ááºááᯠááŸá¬áááœá±á·áá«á áá¡á¶á·ááŒáá«ááŸáá·áºá áááºááá¯á·áááºááá¯á á±á áááºážááẠáááºáá±ááŒáááºážááá¬ááá¯ááºáᬠááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ááŒá±á¬áá·áº ဠstack ááẠáá°ááŒáá¯ááºáá»á¬ážáá¬áá«áááºá áá°ááŒáá¯ááºáá»á¬ážáá²á· áá¯á¶áá±á¬áºááŒááºážáááááᬠGrafana ááᯠáááºááŒá¬ážáá°ážááŒá®ážáá¬ážááŒá áºááŸá¬áá«á Prometheus á០ááŸá¯ááºááœááºážáá¬ážáá±á¬ áá®ááœááºáá°áá»á¬ážááẠá¡áá»á¬ážááá¯áẠá¡ááá¯ááºážá¡áá¬ááŒáá·áº á áœááºážáá±á¬ááºáááºááŒáá·áº ááŸááºáááºážáá±á«ááºážá ááºážááŸá¯á áá ẠLoki ááᯠáá®ááœááºáá²á·áááºá Loki ááẠá¡áá¯á¶ážááŒá¯áááœááºáá°ááŒá®áž áá¯ááºáá»á ááááºáááºáá¬ááá·áº áááºážááá¬ááá¯ááºáᬠááŒá±ááŸááºážáá»ááºáá áºáá¯ááá¯ááºáá² áááºáá¬áá±áá¬áá»á¬ážááá¯áᬠáá»á¬áááºáá»á¬ážááá¯ááºááá¯áẠá¡ááœáŸááºážáá±ážáááºá
Promtail - áááºáááºááŸá¯á áá áºá០Loki á¡á á¯á¡áá±ážááá¯á· ááŸááºáááºážáá»á¬ážáá±ážááá¯á·ááẠá¡á±ážáá»áá·áºá Grafana Loki á០áá±áá¬áá»á¬ážááᯠá¡ááŒá±áá¶á áá¯á¶áá±á¬áºááŒááºážáááááá¬áá áºáá¯ááŒá áºáááºá
Loki ááᯠPrometheus áá²á·ááá¯á· áá°áá®áá±á¬ á ááºážáá»ááºážáá»á¬ážááŒáá·áº áááºáá±á¬ááºáá¬ážááŒá®áž Kubernetes ááŸááºáááºážáá»á¬ážááᯠááááºážáááºážááŒááºážááŸáá·áº ááœá²ááŒááºážá áááºááŒá¬ááŒááºážá¡ááœáẠááá·áºáá»á±á¬áºáá«áááºá
Loki áááá¯áá¬
Loki ááᯠáá¯ááºáááºážá ááºáá áºáá¯áááºážá¡ááŒá Ạááá¯á·ááá¯áẠáá¯ááºáááºážá ááºáá»á¬ážá áœá¬á¡ááŒá Ạáá¯ááºáá±á¬ááºááá¯ááºááŒá®ážá á¡áá»á¬ážááá¯áẠá¡ááá¯ááºážá¡áá¬ááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºá
áááºážááẠmonolithic á¡ááá®áá±ážááŸááºážáá áºáá¯á¡ááŒá Ạááá¯á·ááá¯áẠmicroservice áá áºáá¯á¡áá±ááŒáá·áºáááºáž áá¯ááºáá±á¬ááºááá¯ááºáááºá áá¯ááºáááºážá ááºáá áºáá¯áááºážá¡ááŒá Ạáá¯ááºáá±á¬ááºááŒááºážááẠáá±áááœá¶á·ááŒáá¯ážáá±ážá¡ááœáẠááá¯á·ááá¯áẠá¡áá±ážá á¬ážá á±á¬áá·áºááŒáá·áºááŸá¯áá»á¬ážá¡ááœáẠá¡áá¯á¶ážáááºáá«áááºá á ááºááŸá¯áá¯ááºáááºáž á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááŸáá·áº á¡ááœááºá¡á á¬áž á¡ááá¯ááºážá¡áá¬á¡ááœááºá ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯ ááœá±ážáá»ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯áá¬ážáááºá áá±áá¬áá±ážáá¬ážááŒááºážááŸáá·áº áááºááŸá¯ááŒááºážá¡ááœáẠáááºážááŒá±á¬ááºážáá»á¬ážááᯠááœá²ááŒá¬ážáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááᯠááá¯á¡ááºáááᯠáá»áááºááŸáááŒá®áž áá»áááºááŸáááá¯ááºáá«áááºá
á¡áá±ážá áááºááá±á¬áºááŒáá² ááŸááºáááºážá á¯áá±á¬ááºážááŒááºážá áá áºá áááºáá±á¬ááºáá¯á¶ááᯠááŒáá·áºááŒáá«á áá¯á·á
á€ááœáẠáá±á¬áºááŒáá»áẠ(ááá¯ááºáááá¯áá¬ážáá áºáááá¯áá¬)á
á¡á áááºá¡ááá¯ááºážáá»á¬áž
Promtail â node áá»á¬ážááœáẠááá·áºááœááºážáá¬ážááá·áº á¡á±ážáá»áá·áº (áááºáá±á¬ááºááŸá¯á¡á á¯áá áºáá¯á¡áá±ááŒáá·áº) áááºážááẠáá¯ááºáá±á¬ááºá áá¬áá»á¬ážá០ááŸááºáááºážáá»á¬ážááᯠáááºááŸá¬ážááŒá®áž ááŸááºáááºážáá»á¬ážááᯠáááºáá¯ááºááá·áº áááºáá¬áá±áá¬ááá°ááẠKubernetes API ááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯áááºá ááá¯á·áá±á¬áẠáááºážááẠááŸááºáááºážááᯠáááºá Loki áááºáá±á¬ááºááŸá¯ááá¯á· ááá¯á·áá±ážáááºá Metadata mapping ááẠPrometheus áá²á·ááá¯á· áááºááŒááºážá ááºážáá»ááºážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
ááŒáá·áºááŒá°áž - ááŒá¬ážáá¶á¡ááŒá áºáá¯ááºáá±á¬ááºáá±á¬ áááºáá±á¬ááºááŸá¯ááŒáá·áºááŒá°ážáá°á áááºážáá±á«ááºážáá»á¬ážá áœá¬áá±á¬ ááŸááºáááºážáá»á¬ážááᯠá á®áá¶áá±á¬ááºááœááºáááºá¡ááœáẠáááºážááẠá¡áááºáá±áá¬ááᯠáá¯ááºááá¯ážááŒá®áž áá±á¬ááºááŸááá¬áááºááŸáá·áºá¡áá»áŸ áááºážááᯠááá±á¬ááºáá»á¬ážá¡ááœááºáž áá»á¯á¶á·áá¬ážáááºá áá±áá¬á á¯ááºááœááºáá»á¬ážá áœá¬ááẠáá áºááŒáá¯ááºáááºáááºáž áá¯ááºáá±á¬ááºáá±áá±á¬áºáááºáž á¡áááºáá±áá¬á á®ážááŒá±á¬ááºážáá áºáá¯á ááŸááºáááºážáá»á¬ážááẠáááºážááá¯ááºááœááºá¡á¬ážáá¯á¶ážá¡ááœáẠáááºážááá¯á·áá²ááŸáá áºáá¯ááœááºáᬠáá±á«áºáá¬ááá·áºáááºá áááºážááᯠá á¯ááºááœááºá¡ááá¯ááºážáá áºáá¯á¡ááŒá Ạá á®á á¥áºááŒá®áž ááá·áºáá² áááºááŒááºáž ááŒá áºáááºá á¡ááŸá¬ážáá¶ááá¯ááºáááºááŸáááŒááºážááŸáá·áº áááºáá±á¬ááºážááŒááºážá¡ááœááºá áááºážááᯠn á¡ááŒááẠ(ááŒááºáááºáááºááŸááºááá¬ážáá«á 3) áá¯ááºáá±á¬ááºáááºá
Ingester - áááºáá±á¬ááºááŸá¯áááºáá¶áá°á ááŸááºáááºážáá»á¬ážááá·áºááœááºážááŒááºážááŒáá·áº áá±áá¬ááá±á¬ááºáá»á¬áž áá±á¬ááºááŸááá¬áááºá ááá±á¬ááºááẠáá¯á¶áá±á¬ááºáá±á¬á¡ááœááºá¡á á¬ážááŸááá±á¬á¡áá«á ááá±á¬ááºááẠáá±áá¬áá±á·á áºááá¯á· áá°ážááŒá±á¬ááºážááœá¬ážáááºá áááºáá¬áá±áá¬ááẠá¡ááœáŸááºážááá¯á·ááœá¬ážáááºá ááŸááºáááºážááááºááá¯á·ááŒááºážááŸáá±áá¬ááẠChunks (áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á¡áá¬ááá¹áá¯ááá¯ááŸá±á¬ááºááŸá¯) ááá¯á·ááœá¬ážáá«áááºá ááŒááºáááºáááºááŸááºááŒá®ážáá±á¬ááºá áááºáá¶áá°ááẠá¡áá áºááá·áºááœááºážááá·áº ááá±á¬ááºá¡áá áºáá áºáá¯ááᯠáááºáá®ážáááºá
á¡ááœáŸááºážááááºáž - áá±áá¬áá±á·á á DynamoDBá Cassandraá Google BigTable á áááºááŒáá·áºá
á¡ááá¯ááºážá¡á áá»á¬áž â áá¯á¶ááŸááºá¡á¬ážááŒáá·áº á¡áá¬ááá¹áá¯ááá¯ááŸá±á¬ááºááŸá¯ááœáẠááááºážáááºážáá¬ážáá±á¬á á¥ááá¬á S3á
áá±ážááŒááºážáá° - áá áºáááºáá±á¬á¡áá¯ááºá¡á¬ážáá¯á¶ážááá¯áá¯ááºáá±á¬ááºáá±á¬á á¬áááºááŒááºážáááºážá áááºážááẠá¡áá»áááºá¡ááá¯ááºážá¡ááŒá¬ážááŸáá·áº á¡áá»áááºáá¶ááááºááᯠááŒáá·áºááŸá¯ááŒá®ážáá±á¬áẠááá¯ááºáá®ááŸá¯áá»á¬ážááᯠááŸá¬ááœá±ááẠá¡ááœáŸááºážááᯠááŒáá·áºááŸá¯áááºá ááá¯á·áá±á¬ááºá áááºážááẠáá±áá¬ááá±á¬ááºáá»á¬ážááᯠáááºááŒá®áž ááááºáááŸáááẠáááºážááá¯á·ááᯠá á áºáá¯ááºáááºá
áá² á¡á¬ážáá¯á¶ážáá²á· áá¯ááºáá±á¬ááºáá»ááºááᯠááŒáá·áºááŒáá¡á±á¬ááºá
ustanovka
Kubernetes ááœáẠááá·áºááœááºážááẠá¡ááœááºáá°áá¯á¶ážáááºážáááºážááŸá¬ áŠážáá¯ááºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒá
áºáááºá áááºážááᯠáááºááá·áºááœááºážááŒá®áž ááŒááºáááºáááºááŸááºáá¬ážááŒá®ážááŒá
áºáááºáᯠáá»áœááºá¯ááºááá¯á· áá°áááẠ(
ááá¯ááŸá±á¬ááºáááºážááᯠáá±á«ááºážááá·áºáᬠstack áá áºáá¯ááᯠááá·áºááœááºážáá«á
$ helm repo add loki https://grafana.github.io/loki/charts
$ helm repo update
$ helm upgrade --install loki loki/loki-stack --set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false
á¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážáá±á¬á¥ááᬠdashboard ááẠEtcd áááºááá áºáá»á¬ážá¡ááœáẠPrometheus ááŸáá·áº Etcd pod ááŸááºáááºážáá»á¬ážá¡ááœáẠLoki ááŸáá±áá¬ááá¯ááŒááá¬ážáááºá
á¡áᯠá áá áºááŸá áºáá¯áá¯á¶ážáá²á· áááºáá±á¬ááºáá¯á¶á¡ááŒá±á¬ááºáž ááœá±ážááœá±ážááŒá®áž áá°ááá¯á·áá²á· á áœááºážáá±á¬ááºáááºááœá±ááᯠáá áºáá¯áá²á·áá áºáᯠááŸáá¯ááºážááŸááºááŒáá·áºáá¡á±á¬ááºá
ááŸáá¯ááºážááŸááºááŸá¯
áá±ážááŒááºážááŸá¯ áá¬áá¬á áá¬áž
Elasticsearch ááẠá á¬áá¬ážááŸá¬ááœá±ááŸá¯á áœááºážáááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºá¡ááœáẠQuery DSL ááŸáá·áº Lucene query language ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá áááºážááẠáá»ááºááŒáá·áºáá±á¬ á¡á±á¬áºááá±áá¬áá¶á·ááá¯ážááŸá¯ááŒáá·áº ááá¯ááºáá¬á¡á¬ážáá±á¬ááºážáá±á¬ ááŸá¬ááœá±áá±ážá¡ááºáá»ááºáá áºáá¯ááŒá áºáááºá áááºážááŸáá·áºá¡áá°á áááºááẠá¡ááŒá±á¬ááºážá¡áá¬á¡ááá¯áẠááŸá¬ááœá±ááá¯ááºááŒá®áž áááºááá¯ááºáá¬á¡ááá¯áẠá á®ááá¯ááºáá«áááºá
áááºá
áœááºáá¡ááŒá¬ážáá
áºáááºááœáẠPromQL (Prometheus query language) ááᯠLoki ááœááºá¡áá¯á¶ážááŒá¯áááºá áááºážááẠááŸááºáááºážááŸááºáá¬áá»á¬ážááᯠá
á
áºáá¯ááºááŒá®áž ááŸááºáááºážáá±áá¬ááᯠááœá±ážáá»ááºááẠá¡áá¯á¶ážááŒá¯áááºá áá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºáž á¡áá»áá¯á·áá±á¬ á¡á±á¬áºááá±áá¬áá»á¬ážááŸáá·áº ááááºážáááºá¹áá»á¬ááá¯á·ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
Loki ááŸá á á¯á¶á ááºážááŸá¯áá»á¬ážááẠáááºáá»á¬ážááŸáá·áº áááºá ááºáá±áá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááẠáááºááá áºáá»á¬ážááŸáá·áº áááºááœááºááẠááœááºáá°ááŒá®áž ááááºá¡áá±ááŒáá·áº áááºážááá¯á·ááẠáá¯ááºáááºážáááºáááºááŸá¯ á á±á¬áá·áºááŒáá·áºááŒááºážá¡á¬áž á á¯á ááºážááẠááá¯ááá¯ááœááºáá°áá«áááºá
á¡áá±á«áºáá¶
stacks ááŸá áºáá¯á áá¯á¶ážááᯠá¡áá»á¬ážááá¯áẠá¡ááá¯ááºážá¡áᬠáá¯ááºááá¯ááºáá±ááá·áº Loki á áá®ážááŒá¬áž read and write paths áá²á· microservice áááá¯áá¬áá áºáá¯áá«ááŸáááá¯á· ááá¯ááœááºáá«áááºá Loki ááᯠááá·áºááá¯á¡ááºáá»ááºáá»á¬ážááŸáá·áº ááá¯ááºáá®á¡á±á¬áẠá áááºááŒáá¯ááºááŒááºáááºááá¯ááºááŒá®áž á¡ááœááºááŒá®ážáá¬ážáá±á¬ ááŸááºáááºážáá±áá¬á¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
Multitenancy
Cluster multitenancy ááẠOPEX á¡ááá¯áá±á¬ááºááŸá áá¯á¶áá±á¬ááºáá¯ááºáá
áºáá¯ááŒá
áºááŒá®áž stacks ááŸá
áºáá¯áá¯á¶ážááẠmultitenancy ááá¯áá±ážáá«áááºá Elasticsearch á¡ááœáẠá¡áá»á¬ážá¡ááŒá¬ážááŸááá«áááºá
ááá¯ááºáá»á ááááº
Loki ááẠáá±áá¬á áááºáá¬áá±áá¬ááá¯áᬠá¡ááœáŸááºážáááŒáá±á¬ááŒá±á¬áá·áº áá¯ááºáá»á
áááẠá¡ááœááºáááºáá¬áá«áááºá áá«á¡á±á¬ááºááŒááºáá«áááºá
áá±á¬ááºáá»ááº
EFK stack ááᯠááœá²ááŒááºážá áááºááŒá¬ááŸá¯á ááŒááºáá¬ááŒááºáá¬ááŸá¯ááŸáá·áº áá±ážááŒááºážáá»ááºáá»á¬ážá¡ááœáẠá¡ááŒáá·áºáá¯á¶ážááŒá±á¬ááºážááœááºááŒááºááœááºááŸáá·áº á¡ááºá¹áá«áááºááŒáœááºááá±á¬ Kibana á¡ááºáá¬áá±á·á áºááᯠáááºááœááºáá»ááºá¡áá»áá¯ážáá»áá¯ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á ááºáááºáá°ááŸá¯á áœááºážáááºáá»á¬ážááŒáá·áº áááºážááᯠáááºáá¶ááŒáŸáá·áºáááºááá¯ááºáááºá
Loki stack ááẠáááºážá áááºáá¬áá±áá¬ááŸá¬ááœá±ááŸá¯ ááá¹ááá¬ážááŒá±á¬áá·áº Kubernetes áá±áá áá áºááœáẠá¡áá¯á¶ážáááºáááºá Grafana ááŸáá·áº ááŸááºáááºážáá»á¬ážááŸá á¡áá»áááºá á®ážáá®ážáá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶á á á±á¬áá·áºááŒáá·áºááŒááºážá¡ááœáẠáá±áá¬ááᯠá¡ááœááºááá° áááºá ááºááá¯ááºáááºá
áá¯ááºáá»á ááááºááŸáá·áº áá±ááŸááºááŸááºáááºážááá¯ááŸá±á¬ááºááŸá¯ááŸáá·áºáááºáááºá Loki ááẠcloud solutions áá»á¬ážáá²ááá¯á· á¡áá±á¬ááºážáá¯á¶ážáááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºáááºá
á á»á±ážááœááºááœáẠá¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá»á¬áž ááŸááá«áááº- á¡áá»áá¯á·á ááá·áºá¡ááœáẠááá¯áá±á¬ááºážáá±áááºá á¥ááá¬á¡á¬ážááŒáá·áºá GKE ááœáẠáá±á¬ááºážááœááºáá±á¬á á±á¬áá·áºááŒáá·áºáá±ážááŒá±ááŸááºážáá»ááºááᯠáá¶á·ááá¯ážáá±ážááá·áº Stackdriver áá±á«ááºážá ááºááŸá¯áá áºáá¯ááŸááááºá áááºážááá¯á·ááᯠá€áá±á¬ááºážáá«ážááœáẠáá»áœááºá¯ááºááá¯á·á ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááœáẠááá·áºááœááºážááá¬ážáá«á
ááá·áºááºáá»á¬áž
https://github.com/grafana/loki/blob/master/docs/overview/comparisons.md https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up https://www.elastic.co/blog/found-elasticsearch-in-production/
áá±á¬ááºážáá«ážááᯠáááºáááºážáá»á¬ážá០Habr á¡ááœáẠáá¬áá¬ááŒááºááŒá®áž ááŒááºáááºáá¬ážáá«áááºá
source: www.habr.com