Loki β€” сбор Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Prometheus

Π‘Π°Π»ΡŽΡ‚, Ρ…Π°Π±Ρ€ΠΎΠ²Ρ‡Π°Π½Π΅! Π’ ΠΏΡ€Π΅Π΄Π΄Π²Π΅Ρ€ΠΈΠΈ старта Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π½Π° курс Β«DevOps ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ инструмСнты» ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ для вас ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ интСрСсного ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ β€” ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Loki. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Loki поддСрТиваСтся Grafana ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сбор Π»ΠΎΠ³ΠΎΠ² (с сСрвСров ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ источником вдохновСния для Loki Π±Ρ‹Π» Prometheus с ΠΈΠ΄Π΅Π΅ΠΉ примСнСния Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Π»ΠΎΠ³Π°ΠΌΠΈ:

  • использованиС ΠΌΠ΅Ρ‚ΠΎΠΊ (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:

Loki β€” сбор Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Prometheus
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.

Loki β€” сбор Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Prometheus
Π­ΠΊΡ€Π°Π½ 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 β€” сбор Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Prometheus
ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ 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 β€” сбор Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Prometheus
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки источника Π΄Π°Π½Π½Ρ‹Ρ… для Loki

НаТав Π½Π° β€œTest” ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ связь с Loki.

Π”Π΅Π»Π°Π΅ΠΌ запросы ΠΊ Loki

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Grafana Π² Ρ€Π°Π·Π΄Π΅Π» β€œExplore”. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ Π»ΠΎΠ³ΠΎΠ² ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Loki добавляСт ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Kubernetes. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

НапримСр, для Π²Ρ‹Π±ΠΎΡ€Π° Π»ΠΎΠ³ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° promtail ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос: {container_name = "promtail"}.
Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ источник Π΄Π°Π½Π½Ρ‹Ρ… Loki.

Π­Ρ‚ΠΎΡ‚ запрос Π²Π΅Ρ€Π½Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

Loki β€” сбор Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Prometheus
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запроса Π² Grafana

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°ΡˆΠ±ΠΎΡ€Π΄

Начиная с Grafana 6.4, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π»ΠΎΠ³Π°Ρ… нСпосрСдствСнно Π½Π° Π΄Π°ΡˆΠ±ΠΎΡ€Π΄. ПослС этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт быстро ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ количСством запросов Π½Π° Π΅Π³ΠΎ сайтС ΠΊ трСйсами прилоТСния.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Π°, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ это взаимодСйствиС:

Loki β€” сбор Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Prometheus
ΠžΠ±Ρ€Π°Π·Π΅Ρ† Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Π° с ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌΠΈ 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 β€” сбор Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Prometheus
ИспользованиС строк Loki, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² Grafana

Бтановится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ JSON, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для:

  • ссылки Π½Π° внСшний инструмСнт
  • Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ содСрТимого Π»ΠΎΠ³ΠΎΠ²

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° traceId, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Zipkin ΠΈΠ»ΠΈ Jaeger.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΆΠ΄Π΅ΠΌ ваши ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π²Π΅Π±ΠΈΠ½Π°Ρ€, Π³Π΄Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ DevOps-индустрия Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 2019 Π³ΠΎΠ΄Π° ΠΈ обсудим Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ развития Π½Π° 2020 Π³ΠΎΠ΄.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com