ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π²ΡΠ² ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° Π½Π°ΡΠ°ΡΡΠ²Π°ΡΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ Π½Π°ΡΠ°ΡΡΠ²Π°ΡΠ°ΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ ΡΡΡ Π½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ±ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ - ΠΈ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈΡΠ΅ Π΅Π΄ΠΈΠ½Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ°, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
Π‘ΡΡΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΈ. Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΈ ΡΡΠ΅ΠΊΠ°: EFK (Elasticsearch) ΠΈ PLG (Loki) ΠΈ ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ.
EFK ΡΡΠ΅ΠΊ
ΠΠΎΠΆΠ΅ Π±ΠΈ Π²Π΅ΡΠ΅ ΡΡΠ΅ ΡΡΠ²Π°Π»ΠΈ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅ ELK ΠΈΠ»ΠΈ EFK. Π‘ΡΠ΅ΠΊΡΡ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°ΡΡΠΈ: Elasticsearch (ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ), Logstash ΠΈΠ»ΠΈ FluentD (ΡΡΠ±ΠΈΡΠ°Π½Π΅ ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅) ΠΈ Kibana Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
Π’ΠΈΠΏΠΈΡΠ΅Π½ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
Elasticsearch β ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Ρ ΡΡΡΡΠ΅Π½Π΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΡΠ»ΠΈΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΠΎΠ»ΡΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΊΠ°ΡΠΎ JSON Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΡΠ΄ΡΡΠΆΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ Π΄ΡΠΌΠΈ ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΡΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎ ΡΡΡΡΠ΅Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° Π΅ Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΡΡΠ°ΡΠΊΠ°ΡΠ° Apache Lucene.
FluentD Π΅ ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° Π΄Π°Π½Π½ΠΈΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ΅ ΡΡΠ±ΠΈΡΠ°Ρ ΠΈ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Ρ. Π’ΠΎΠΉ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° Π΄Π°Π½Π½ΠΈΡΠ΅ Π² JSON ΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅. ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΠΌΡ Π΅ ΡΠ°Π·ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΈΠΌΠ° ΠΎΡΠ΅
Kibana Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° Elasticsearch Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, Π³ΡΠ°ΡΠΈΠΊΠΈ, ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Elasticsearch
ΠΠ°Π½Π½ΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° Elasticsearch ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ Π½Π΅Π³ΠΎΠ²ΠΈ Π²ΡΠ·Π»ΠΈ. ΠΠ»ΡΡΡΠ΅ΡΡΡ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·Π»ΠΈ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡΡΠ° ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡΠ°. ΠΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΎΠ»ΠΈ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°, Π½ΠΎ ΠΏΡΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ, ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½ΠΈΡ Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ Π²ΡΠ·Π»Π°Π³Π°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ.
Π’ΠΈΠΏΠΎΠ²Π΅ ΠΊΠ»ΡΡΡΠ΅ΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ:
- Π³Π»Π°Π²Π΅Π½ Π²ΡΠ·Π΅Π» - ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΡΡΡΠ±Π²Π°Ρ Π²ΠΈ ΠΏΠΎΠ½Π΅ ΡΡΠΈ, Π΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π°ΠΊΡΠΈΠ²Π΅Π½;
- Π²ΡΠ·Π΅Π» Π·Π° Π΄Π°Π½Π½ΠΈ - ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ Ρ ΡΡΡ ;
- Π²ΡΠ·Π΅Π» Π·Π° ΠΏΠΎΠ³Π»ΡΡΠ°Π½Π΅ - ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈ Π·Π° ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅;
- ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠ°Ρ Π²ΡΠ·Π΅Π» - ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°, Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Π°ΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΡΡΠ΅Π½Π΅ΡΠΎ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΡΠΏΠΎΠ²ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅;
- Π²ΡΠ·Π΅Π» Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ - ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ Π·Π° ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π°Π½Π΅;
- Π²ΡΠ·Π΅Π» Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ - ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°Π΄Π°ΡΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ Π½Π° Π΄Π°Π½Π½ΠΈ.
ΠΠ°Π½Π½ΠΈΡΠ΅ Π½Π° Π²ΡΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ, Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠΎΠ²Π°:
ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡ
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΡΡ
$ 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. ΠΡΠ°ΡΠ°Π½Π° Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Loki.
Loki Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π½Π° ΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ ΠΊΠ°ΡΠΎ Prometheus, ΡΠ°ΠΊΠ° ΡΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Kubernetes.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΠΎΠΊΠΈ
Loki ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅.
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΡΠΎ ΠΊΠ°ΡΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠ° ΠΈ ΠΊΠ°ΡΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°. ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΠΌΠ΅ΡΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π° ΡΠΈΠ½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³. ΠΠ° ΠΈΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΡΠΈΡΡΠ° Π·Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·. ΠΡΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΈΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΈ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½ΠΈ ΡΠΏΠΎΡΠ΅Π΄ Π½ΡΠΆΠ΄ΠΈΡΠ΅.
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π±Π΅Π· ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ:
Π Π΅ΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ (Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ):
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ:
Promtail - Π°Π³Π΅Π½Ρ, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Π½Π° Π²ΡΠ·Π»ΠΈ (ΠΊΠ°ΡΠΎ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠ»ΡΠ³ΠΈ), ΡΠΎΠΉ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Kubernetes API, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° Π΄Π½Π΅Π²Π½ΠΈΠΊΠ° Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ»ΡΠ³Π° Π½Π° Loki. ΠΠ° ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΡΡΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ ΠΊΠ°ΡΠΎ Π² Prometheus.
ΠΠΈΡΡΡΠΈΠ±ΡΡΠΎΡ - ΡΠ΅ΡΠ²ΠΈΠ·-Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΎΡ, ΡΠ°Π±ΠΎΡΠ΅Ρ ΠΊΠ°ΡΠΎ Π±ΡΡΠ΅Ρ. ΠΠ° Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΠΈ, ΡΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ° Π²Ρ ΠΎΠ΄ΡΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ Π³ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Ρ. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΡΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ ΡΠ°Π±ΠΎΡΡΡ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈ ΠΊΡΠΌ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Π²Ρ ΠΎΠ΄ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°Π²ΡΡΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ Π² Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π½Π΅Π³ΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΡΠΎ ΠΏΡΡΡΡΠ΅Π½ ΠΎΡ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΡΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Ρ Π΅ΡΠΈΡΠ°Π½Π΅. ΠΠ° ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ n ΠΏΡΡΠΈ (3, Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΎ).
ΠΏΠΎΠ³Π»ΡΡΠ°ΠΌ β ΡΠ΅ΡΠ²ΠΈΠ·Π΅Π½ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ. ΠΠ»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Ρ Π΄Π°Π½Π½ΠΈ ΠΈΠ΄Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Ρ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠ΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ Π±Π»ΠΎΠΊΡΡ ΡΡΠ°Π½Π΅ Ρ Π΄ΠΎΡΡΠ°ΡΡΡΠ΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠΎΠΉ ΡΠ΅ ΠΈΠ·Ρ Π²ΡΡΠ»Ρ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡΠΈΠ²Π°Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°, Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ Π»ΠΎΠ³ Π±Π»ΠΎΠΊΠ° ΠΎΡΠΈΠ²Π°Ρ Π² Chunks (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΡΡΡΠΎ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ). Π‘Π»Π΅Π΄ Π½ΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΡΡ ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ² Π±Π»ΠΎΠΊ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ Π½ΠΎΠ²ΠΈ Π·Π°ΠΏΠΈΡΠΈ.
ΠΈΠ½Π΄Π΅ΠΊΡ - Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, DynamoDB, Cassandra, Google BigTable ΠΈ Π΄Ρ.
Π₯Π°ΠΏΠΊΠΈ - Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π° ΡΠΎΡΠΌΠ°, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π² ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 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 pod.
Π ΡΠ΅Π³Π° Π½Π΅ΠΊΠ° ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄Π²Π΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΅Π΄Π½Π° Ρ Π΄ΡΡΠ³Π°.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
ΠΠ·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ
Elasticsearch ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π·ΠΈΠΊΠ° Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Query DSL ΠΈ Lucene, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎ ΡΡΡΡΠ΅Π½Π΅. Π’ΠΎΠ²Π° Π΅ ΡΡΠ²ΡΡΠ΄Π΅Π½Π° ΠΌΠΎΡΠ½Π° ΡΡΡΡΠ°ΡΠΊΠ° Ρ ΡΠΈΡΠΎΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ. Π‘ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΡΡΠΈΡΠ΅ ΠΏΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ Π΄Π° ΡΠΎΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎ ΡΠΌΠ΅ΡΡΠ½ΠΎΡΡ.
ΠΡ Π΄ΡΡΠ³Π°ΡΠ° ΡΡΡΠ°Π½Π° Π½Π° ΠΏΡΡΡΡΠ΅Π½Π° Π΅ LogQL Π½Π° Loki, Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ Π½Π° PromQL (Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Prometheus). Π’ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠ·Π±ΠΎΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½ΡΠΊΠΎΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π² 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 ΠΎΡ ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com