Π‘Π°Π»ΡΡ, Ρ
Π°Π±ΡΠΎΠ²ΡΠ°Π½Π΅! Π ΠΏΡΠ΅Π΄Π΄Π²Π΅ΡΠΈΠΈ ΡΡΠ°ΡΡΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π½Π° ΠΊΡΡΡ
ΠΡΠ° ΡΡΠ°ΡΡΡ β ΠΊΡΠ°ΡΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Loki. ΠΡΠΎΠ΅ΠΊΡ Loki
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π²Π΄ΠΎΡ
Π½ΠΎΠ²Π΅Π½ΠΈΡ Π΄Π»Ρ Loki Π±ΡΠ»
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠΊ (labels) Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
- ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅ΡΡΡΡΠΎΠ²
ΠΡ Π΅ΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ ΡΠ°Π±ΠΎΡΡ Prometheus ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Kubernetes.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ² ΠΎ Prometheus
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Loki, Π²Π°ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π³ Π½Π°Π·Π°Π΄ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ Prometheus.
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ Prometheus ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊ ΠΈΠ· ΡΠΎΡΠ΅ΠΊ ΡΠ±ΠΎΡΠ° (ΡΠ΅ΡΠ΅Π· ΡΠΊΡΠΏΠΎΡΡΠ΅ΡΡ) ΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΡ
Π² TSDB (Time Series Data Base, Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ΄ΠΎΠ²) Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅ΡΠΎΠΊ.
ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Prometheus ΡΡΠ°Π» ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ Π² ΠΌΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ Kubernetes: Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°, Π° Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Kubernetes ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ½Π΄ΠΏΠΎΠΈΠ½Ρ Π΄Π»Ρ Prometheus. Prometheus ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅, ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π»ΠΎΠ³Π°ΠΌΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ βΠΏΠΎΠ΄ ΠΊΠ»ΡΡβ, ΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅Π±Ρ:
- ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΎΠ±Π»Π°ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΎΠ² (AWS, Azure ΠΈΠ»ΠΈ Google)
- ΡΠ΅ΡΠ²ΠΈΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Β«ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³Π°Β» (monitoring as a service) (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Datadog)
- ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΠ±ΠΎΡΠ° Π»ΠΎΠ³ΠΎΠ².
ΠΠ»Ρ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Elasticsearch, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Ρ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ» ΠΈΠΌ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅Π³ΠΎ ΡΡΠΆΠ΅ΡΡΡΡ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ).
Loki Π±ΡΠ» ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ Ρ ΡΠ΅Π»ΡΡ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ:
- Π±ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ Π΄Π»Ρ ΡΡΠ°ΡΡΠ°
- ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΠΌΠ°Π»ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ²
- ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ
- ΡΠ»ΡΠΆΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Prometheus Π΄Π»Ρ ΠΏΠΎΠΌΠΎΡΠΈ Π² ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π³ΠΎΠ²
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ° ΠΏΡΠΎΡΡΠΎΡΠ° Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π·Π° ΡΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠ². ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ β Π½Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΈΠ»ΠΈ Π±ΠΎΠ³Π°Ρ ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π΅ΡΡΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΏΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΡΠ΅ΠΊΡΡΠ°. ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Loki Ρ ΠΎΡΠ΅Ρ Π±ΡΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠΎΠΌ grep ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Prometheus, ΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ.
Π Π°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠ²
Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Loki Π½Π΅ Π½ΡΠΆΠ½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Loki:
1 Alert β 2 Dashboard β 3 Adhoc Query β 4 Log Aggregation β 5 Distributed Tracing β 6 Fix!
(1 ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ β 2 ΠΠ°ΡΠ±ΠΎΡΠ΄ β 3 Adhoc Query β 4 ΠΠ³ΡΠ΅Π³Π°ΡΠΈΡ Π»ΠΎΠ³ΠΎΠ² β 5 Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° β 6 ΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ!)
ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π°Π»Π΅ΡΡ (Slack Notification, SMS ΠΈ Ρ. Π΄.) ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ:
- ΡΠΌΠΎΡΡΠΈΠΌ Π΄Π°ΡΠ±ΠΎΡΠ΄Ρ Grafana
- ΡΠΌΠΎΡΡΠΈΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Prometheus)
- ΡΠΌΠΎΡΡΠΈΠΌ Π·Π°ΠΏΠΈΡΠΈ Π»ΠΎΠ³ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Elasticsearch)
- Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ΅ΠΉΡΡ (Jaeger, Zipkin ΠΈ Π΄Ρ.)
- ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ΄Π΅ΡΡ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΅ΠΊΠ° Grafana + Prometheus + Elasticsearch + Zipkin, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°. ΠΠ»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΎΡΠΎΡΠΎ Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΠ΅ ΡΡΠΈ ΡΡΠ°ΠΏΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°: Grafana. Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Grafana Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 6. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ Prometheus Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Grafana.
ΠΠΊΡΠ°Π½ Explorer ΡΠ°Π·Π΄Π΅Π»Π΅Π½ ΠΌΠ΅ΠΆΠ΄Ρ Prometheus ΠΈ Loki
ΠΠ° ΡΡΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π»ΠΎΠ³ΠΈ Π² Loki, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌΠΈ Prometheus, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 6.5, Grafana ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ (trace id) Π² Π·Π°ΠΏΠΈΡΡΡ Π»ΠΎΠ³ΠΎΠ² Loki Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ ΠΊ Π²Π°ΡΠΈΠΌ Π»ΡΠ±ΠΈΠΌΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ (Jaeger).
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΡ Loki
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Loki β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ docker-compose. Π€Π°ΠΉΠ» docker-compose Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Loki. ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git
:
$ git clone https://github.com/grafana/loki.git
ΠΠ°ΡΠ΅ΠΌ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ production:
$ cd production
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Docker:
$ docker-compose pull
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠ΅ΠΊ Loki Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
$ docker-compose up
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Loki
ΠΠΎΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Loki:
ΠΡΠΈΠ½ΡΠΈΠΏΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Loki
ΠΠ΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Promtail ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ
Π² Loki, Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π² Loki. Loki Π²ΡΠ΅ Π°Π³ΡΠ΅Π³ΠΈΡΡΠ΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π² Grafana.
Loki Π·Π°ΠΏΡΡΠ΅Π½. ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠΌΠ΅ΡΡΠΈΡ
ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ docker ps
Π ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π΅ΠΆΠ΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Docker ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅ΡΠ½ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
IMAGE PORTS NAMES
grafana/promtail: production_promtail_1
grafana/grafana: m 0.0.0.0:3000->3000/tcp production_grafana_1
grafana/loki: late 80/tcp,0.0.0.0:3100... production_loki_1
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ:
- Promtail: Π°Π³Π΅Π½Ρ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π»ΠΎΠ³ΠΎΠ²
- Grafana: ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π΄Π°ΡΠ±ΠΎΡΠ΄ΠΎΠ²
- Loki: Π΄Π΅ΠΌΠΎΠ½ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½) Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡ Π°Π³Π΅Π½Ρ Promtail. Grafana ΠΈ Loki ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π² Kubernetes
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Loki Π² Kubernetes Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ:
- daemonSet Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π°Π³Π΅Π½ΡΠ° Promtail Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΌΠ°ΡΠΈΠ½ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²
- ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ (Deployment) Loki
- ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ β ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Grafana.
Π ΡΡΠ°ΡΡΡΡ, Loki Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Helm, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π΅Π³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΠ΅Π· Heml
Heml ΡΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈΠ· GitHub-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ Π°ΡΡ
ΠΈΠ²Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π²Π°ΡΠ΅ΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅, ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ helm Π² $PATH
.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π²Π΅ΡΡΠΈΡ 3.0.0 Helm Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π½Π΅Π΄Π°Π²Π½ΠΎ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π½Π°ΡΠ°ΡΡ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π»Ρ Helm
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ βlokiβ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ helm add loki https://grafana.github.io/loki/charts
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ βlokiβ:
$ helm search loki
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
loki/loki 0.17.2 v0.4.0 Loki: like Prometheus, but for logs.
loki/loki-stack 0.19.1 v0.4.0 Loki: like Prometheus, but for logs.
loki/fluent-bit 0.0.2 v0.0.1 Uses fluent-bit Loki go plugin for...
loki/promtail 0.13.1 v0.4.0 Responsible for gathering logs and...
ΠΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
- ΠΏΠ°ΠΊΠ΅Ρ loki/loki ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΡ Loki
- ΠΏΠ°ΠΊΠ΅Ρ loki/fluent-bit ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ DaemonSet, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ fluent-bin Π΄Π»Ρ ΡΠ±ΠΎΡΠ° Π»ΠΎΠ³ΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ Promtail
- ΠΏΠ°ΠΊΠ΅Ρ loki/promtail ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°Π³Π΅Π½Ρ ΡΠ±ΠΎΡΠ° Π»ΠΎΠ³-ΡΠ°ΠΉΠ»ΠΎΠ²
- ΠΏΠ°ΠΊΠ΅Ρ loki/loki-stack, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π·Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Loki ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ Promtail.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Loki
Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Loki Π² Kubernetes, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ βmonitoringβ:
$ helm upgrade --install loki loki/loki-stack --namespace monitoring
ΠΠ»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π° Π΄ΠΈΡΠΊ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --set loki.persistence.enabled = true:
$ helm upgrade --install loki loki/loki-stack
--namespace monitoring
--set loki.persistence.enabled=true
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Grafana, ΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
--set grafana.enabled = true
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄:
LAST DEPLOYED: Tue Nov 19 15:56:54 2019
NAMESPACE: monitoring
STATUS: DEPLOYED
RESOURCES:
==> v1/ClusterRole
NAME AGE
loki-promtail-clusterrole 189d
β¦
NOTES:
The Loki stack has been deployed to your cluster. Loki can now be added as a datasource in Grafana.
See <a href="http://docs.grafana.org/features/datasources/loki/">http://docs.grafana.org/features/datasources/loki/</a> for more details.
ΠΠΎΡΠΌΠΎΡΡΠ΅Π² Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ² Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ βmonitoringβ, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎ:
$ kubectl -n monitoring get pods -l release=loki
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
NAME READY STATUS RESTARTS AGE
loki-0 1/1 Running 0 147m
loki-promtail-9zjvc 1/1 Running 0 3h25m
loki-promtail-f6brf 1/1 Running 0 11h
loki-promtail-hdcj7 1/1 Running 0 3h23m
loki-promtail-jbqhc 1/1 Running 0 11h
loki-promtail-mj642 1/1 Running 0 62m
loki-promtail-nm64g 1/1 Running 0 24m
ΠΡΠ΅ ΠΏΠΎΠ΄Ρ Π·Π°ΠΏΡΡΠ΅Π½Ρ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠΎΠ²!
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Grafana
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ Kubernetes ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Grafana, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΡΡΡΡ ΡΡΠ½Π½Π΅Π»Ρ ΠΊ Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΠΏΠΎΡΡΠ° 3000 Π΄Π»Ρ ΠΏΠΎΠ΄Π° Grafana:
$ kubectl -n port-forward monitoring svc/loki-grafana 3000:80
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ Π²Π°ΠΆΠ½ΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Grafana. ΠΠ°ΡΠΎΠ»Ρ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅ loki-grafana
Π² ΠΏΠΎΠ»Π΅ .data.admin-user
Π² ΡΠΎΡΠΌΠ°ΡΠ΅ base64.
ΠΠ»Ρ Π΅Π³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ kubectl -n monitoring get secret loki-grafana
--template '{{index .data "admin-password" | base64decode}}'; echo
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (admin).
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ Loki Π² Grafana
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ
Loki (Configuration / Datasource).
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ Loki
ΠΠ°ΠΆΠ°Π² Π½Π° βTestβ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΡΠ·Ρ Ρ Loki.
ΠΠ΅Π»Π°Π΅ΠΌ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Loki
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Grafana Π² ΡΠ°Π·Π΄Π΅Π» βExploreβ. ΠΡΠΈ ΠΏΡΠΈΠ΅ΠΌΠ΅ Π»ΠΎΠ³ΠΎΠ² ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Loki Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ Kubernetes. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π»ΠΎΠ³ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° promtail ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ: {container_name = "promtail"}
.
ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ
Loki.
ΠΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π²Π΅ΡΠ½Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡΠ° Π² Grafana
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°ΡΠ±ΠΎΡΠ΄
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Grafana 6.4, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π»ΠΎΠ³Π°Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° Π΄Π°ΡΠ±ΠΎΡΠ΄. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π΅Π³ΠΎ ΡΠ°ΠΉΡΠ΅ ΠΊ ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π°ΡΠ±ΠΎΡΠ΄Π°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅:
ΠΠ±ΡΠ°Π·Π΅Ρ Π΄Π°ΡΠ±ΠΎΡΠ΄Π° Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌΠΈ Prometheus ΠΈ Π»ΠΎΠ³Π°ΠΌΠΈ Loki
ΠΡΠ΄ΡΡΠ΅Π΅ Loki
Π― Π½Π°ΡΠ°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Loki Π΅ΡΠ΅ Π² ΠΌΠ°Π΅ / ΠΈΡΠ½Π΅ Ρ Π²Π΅ΡΡΠΈΠΈ 0.1. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΠΆΠ΅ Π²ΡΠΏΡΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ 1, ΠΈ Π΄Π°ΠΆΠ΅ 1.1 ΠΈ 1.2.
ΠΠ°Π΄ΠΎ ΠΏΡΠΈΠ·Π½Π°ΡΡ, ΡΡΠΎ Π²Π΅ΡΡΠΈΡ 0.1 Π±ΡΠ»Π° Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°. ΠΠΎ 0.3 ΠΏΠΎΠΊΠ°Π·Π°Π»Π° ΡΠΆΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ Π·ΡΠ΅Π»ΠΎΡΡΠΈ, Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ (0.4, Π·Π°ΡΠ΅ΠΌ 1.0) ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠ»ΠΈΠ»ΠΈ ΡΡΠΎ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅.
ΠΠΎΡΠ»Π΅ 1.0.0, Π½ΠΈ Ρ ΠΊΠΎΠ³ΠΎ ΡΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠ°ΡΠ°ΡΡΡΡ Π½Π΅ Loki, Π° ΡΠΊΠΎΡΠ΅Π΅ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠΉ Grafana. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π² Grafana 6.4 ΡΠΆΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Ρ ΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π΄Π°ΡΠ±ΠΎΡΠ΄Π°ΠΌΠΈ.
Grafana 6.5, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π½Π΅Π΄Π°Π²Π½ΠΎ, Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ»ΡΡΡΠ°Π΅Ρ ΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π»ΠΎΠ³ΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON.
ΠΠΈΠΆΠ΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Loki, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ
Π² Grafana
Π‘ΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ JSON, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ:
- ΡΡΡΠ»ΠΊΠΈ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ
- ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΎΠ²
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ Π½Π° traceId, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Zipkin ΠΈΠ»ΠΈ Jaeger.
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΆΠ΄Π΅ΠΌ Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ Π½Π°
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com