ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΡΠ°Π» Π²Π΅ΡΡΠΌΠ° Π²Π°ΠΆΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΡΠ°ΡΡΡΡΠΈΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠΎΡΡΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ½ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. ΠΡΠΆΠ½Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠΎΠ³ΡΡ ΡΠΎΠ±ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎ Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² β ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΡ ΠΈ ΠΆΡΡΠ½Π°Π»Π°ΠΌΠΈ.
ΠΡΠΈ ΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΡΠ΅ΠΊΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ: EFK (Elasticsearch) ΠΈ PLG (Loki) ΠΈ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΡ.
Π‘ΡΠ΅ΠΊ EFK
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΌ ELK ΠΈΠ»ΠΈ EFK. Π‘ΡΠ΅ΠΊ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ: Elasticsearch (ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅), Logstash ΠΈΠ»ΠΈ FluentD (ΡΠ±ΠΎΡ ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ²) ΠΈ Kibana Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π’ΠΈΠΏΠΈΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Elasticsearch β ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠΉ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ². ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² JSON, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠ·Π»Π°ΠΌ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅ Apache Lucene.
FluentD β ΡΡΠΎ ΡΠ±ΠΎΡΡΠΈΠΊ Π΄Π°Π½Π½ΡΡ
, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΈ ΠΈΡ
ΡΠ±ΠΎΡΠ΅ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΈ. ΠΠ½ ΡΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² JSON Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ³ΠΎ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠ°, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅
Kibana β ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Elasticsearch Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΄ΠΎΠ², Π³ΡΠ°ΡΠΎΠ², ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΡΠΎΡΠΈΠΌ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Elasticsearch
ΠΠ°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Elasticsearch Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ°Π·ΠΌΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ·Π»Π°ΠΌ. ΠΠ»Π°ΡΡΠ΅Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·Π»ΠΎΠ² Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ. ΠΡΠ±ΠΎΠΉ ΡΠ·Π΅Π» ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΠ΅ ΡΠΎΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, Π½ΠΎ Π² ΠΊΡΡΠΏΠ½ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡΡ ΡΠ·Π»Π°ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
Π’ΠΈΠΏΡ ΡΠ·Π»ΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°:
- ΠΌaster node β ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ, Π½ΡΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ, ΠΎΠ΄Π½Π° Π°ΠΊΡΠΈΠ²Π½Π° Π²ΡΠ΅Π³Π΄Π°;
- data node β Ρ ΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π·Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ;
- ingest node β ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅Ρ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠ΅ΠΉ;
- coordinating node β ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠΈΡΠΊΠ°, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ;
- alerting node β Π·Π°ΠΏΡΡΠΊ Π·Π°Π΄Π°Ρ ΠΏΠΎ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ;
- machine learning node β ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°Π΄Π°Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΡΡΡΡΡ ΠΏΠΎ ΡΠ·Π»Π°ΠΌ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ°Π½Π½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅, ΡΡ Π΅ΠΌΠ° Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ΅ΡΠ°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ
$ helm install efk-stack stable/elastic-stack --set logstash.enabled=false --set fluentd.enabled=true --set fluentd-elastics
Π‘ΡΠ΅ΠΊ PLG
ΠΠ΅ ΡΡΠΎΠΈΡ ΡΠ΄ΠΈΠ²Π»ΡΡΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΡΠΎΡ Π°ΠΊΡΠΎΠ½ΠΈΠΌ, Π²Π΅Π΄Ρ Π΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊ Grafana Loki. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎΡ ΡΡΠ΅ΠΊ Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΆΠ΅ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ Grafana, ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ΅ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ, Π²Π΄ΠΎΡ Π½ΠΎΠ²Π»ΡΡΡΡ Prometheus, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Loki, Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ ΠΆΡΡΠ½Π°Π»ΠΎΠ². Loki ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ Π½Π΅ ΡΠ°ΠΌΠΈ ΠΆΡΡΠ½Π°Π»Ρ, ΡΡΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΅ΠΌΡ ΡΡΠ°ΡΡ ΠΏΡΠΎΡΡΡΠΌ Π² ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ³ΠΎΠ΄Π½ΡΠΌ.
Promtail β Π°Π³Π΅Π½Ρ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ Loki. Grafana β ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Loki.
Loki ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° ΡΠ΅Ρ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ , ΡΡΠΎ ΠΈ Prometheus, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΆΡΡΠ½Π°Π»ΠΎΠ² Kubernetes.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Loki
Loki ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ ΠΊΠ°ΠΊ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠ°ΠΊ ΠΈ Π² Π²ΠΈΠ΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠ°ΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΠ°ΠΏΡΡΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΆΠ΅ Π΄Π»Ρ ΠΌΠ΅Π»ΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΠ»Ρ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ½ΠΊΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠ° ΠΆΡΡΠ½Π°Π»ΠΎΠ² Π±Π΅Π· Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
Π Π·Π΄Π΅ΡΡ β ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°):
Π‘ΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ:
Promtail β Π°Π³Π΅Π½Ρ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠΉ Π½Π° ΡΠ·Π»Ρ (Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²), ΠΎΠ½ ΡΠ½ΠΈΠΌΠ°Π΅Ρ ΠΆΡΡΠ½Π°Π»Ρ ΠΈΠ· Π·Π°Π΄Π°Ρ ΠΈ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ API Kubernetes Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΆΡΡΠ½Π°Π»Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΆΡΡΠ½Π°Π» ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ Loki. ΠΠ»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΡΡΠΎ ΠΈ Π² Prometheus.
Distributor β ΡΠ΅ΡΠ²ΠΈΡ-ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΊΠ°ΠΊ Π±ΡΡΠ΅Ρ. ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΎΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΠΆΠΈΠΌΠ°Ρ ΠΈΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΈΡ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ. ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΆΡΡΠ½Π°Π»Ρ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΎΠ². ΠΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ»ΡΡΠ° ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ ΠΈ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ n ΡΠ°Π· (3, Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ).
Ingester β ΡΠ΅ΡΠ²ΠΈΡ-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ. ΠΠ»ΠΎΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΡΠΆΠ°ΡΡΠΌΠΈ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΆΡΡΠ½Π°Π»Π°ΠΌΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ±ΡΠΎΡ Π±Π»ΠΎΠΊΠ° Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ΄ΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡ, Π° Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ Π±Π»ΠΎΠΊΠ° Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠΌ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² Chunks (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅). ΠΠΎΡΠ»Π΅ ΡΠ±ΡΠΎΡΠ° ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊ, ΠΊΡΠ΄Π° Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
Index β Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , DynamoDB, Cassandra, Google BigTable ΠΈ ΠΏΡΠΎΡΠ΅Π΅.
Chunks β Π±Π»ΠΎΠΊΠΈ ΠΆΡΡΠ½Π°Π»ΠΎΠ² Π² ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, S3.
Querier β ΠΏΡΡΡ ΡΡΠ΅Π½ΠΈΡ, Π΄Π΅Π»Π°ΡΡΠΈΠΉ Π²ΡΡ ΡΠ΅ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ½ ΡΠΌΠΎΡΡΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠ΅ΡΠΊΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΌΠΎΡΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ. ΠΠ°Π»Π΅Π΅ ΡΠΈΡΠ°Π΅Ρ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΈΠ»ΡΡΡΡΠ΅Ρ ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ΅ Π² ΡΠ°Π±ΠΎΡΠ΅.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² Kubernetes ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ helm. ΠΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π²Ρ ΡΠΆΠ΅ Π΅Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ (
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΡΡΠ°Π²ΠΈΠΌ ΡΡΠ΅ΠΊ.
$ 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
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Prometheus Π΄Π»Ρ ΠΌΠ΅ΡΡΠΈΠΊ Etcd ΠΈ Loki Π΄Π»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ² Etcd.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΎΠ±Π΅ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
Π―Π·ΡΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ²
Π Elasticsearch ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Query DSL ΠΈ Lucene query language, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°. ΠΡΠΎ ΡΡΡΠΎΡΠ²ΡΠΈΠΉΡΡ ΠΌΠΎΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Ρ ΡΠΈΡΠΎΠΊΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΎΡΡΠΈ.
ΠΠ° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΡΠΈΠ½Π³Π° β LogQL, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π² Loki, Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ PromQL (Prometheus query language). ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΊΠΈ ΠΆΡΡΠ½Π°Π»ΠΎΠ² Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
ΠΆΡΡΠ½Π°Π»ΠΎΠ². ΠΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π°ΠΏΡΠΎΡΡ Π² Loki ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ β ΠΈΡ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠΎΡΠ½Π΅ΡΡΠΈ Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌΠΈ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³.
ΠΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ
ΠΠ±Π° ΡΡΠ΅ΠΊΠ° Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ Ρ Loki ΡΡΠΎ ΠΏΡΠΎΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΏΡΡΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. Loki ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ ΠΏΠΎΠ΄ Π²Π°ΡΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ².
ΠΡΠ»ΡΡΠΈΠ°ΡΠ΅Π½Π΄Π½ΠΎΡΡΡ
ΠΡΠ»ΡΡΠΈΠ°ΡΠ΅Π½Π΄Π½ΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° β ΠΎΠ±ΡΠ°Ρ ΡΠ΅ΠΌΠ° Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ OPEX, ΠΎΠ±Π° ΡΡΠ΅ΠΊΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΌΡΠ»ΡΡΠΈΠ°ΡΠ΅Π½Π΄Π½ΠΎΡΡΡ. ΠΠ»Ρ Elasticsearch Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ
Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ
Loki Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
, Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΡΠ΅ΠΊ EFK ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π»Π΅ΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Kibana Π΄Π»Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΡΡΡΠ΅Π½ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
Π‘ΡΠ΅ΠΊ Loki ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ Kubernetes ΠΈΠ·-Π·Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΄ΠΎΠ² Π² Grafana ΠΈ ΠΆΡΡΠ½Π°Π»Π°Ρ .
ΠΠΎΠ³Π΄Π° ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΆΡΡΠ½Π°Π»ΠΎΠ², Loki ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° Π² ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ° ΡΡΠ½ΠΊΠ΅ Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ² β Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΡΡΠ΅ Π΄Π»Ρ Π²Π°Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ 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.com