Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π² ELK Stack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GROK Π² LogStash

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GROK

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ стСк Elastic (ELK) ΠΈ заинтСрСсованы Π² сопоставлСнии ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² Logstash с Elasticsearch, Ρ‚ΠΎ этот пост для вас.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π² ELK Stack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GROK Π² LogStash

Π‘Ρ‚Π΅ΠΊ ELK – это Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° для Ρ‚Ρ€Π΅Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ: Elasticsearch, Logstash ΠΈ Kibana. ВмСстС ΠΎΠ½ΠΈ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ управлСния ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌΠΈ.

  • Elasticsearch – это поисковая ΠΈ аналитичСская систСма.
  • Logstash – это сСрвСрный ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… источников ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΈ Π·Π°Ρ‚Π΅ΠΌ отправляСт Π² β€œΡ‚Π°ΠΉΠ½ΠΈΠΊβ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Elasticsearch.
  • Kibana позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π² Elasticsearch.

Beats появился ΠΏΠΎΠ·ΠΆΠ΅ ΠΈ являСтся Π»Π΅Π³ΠΊΠΈΠΌ Π³Ρ€ΡƒΠ·ΠΎΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Beats ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΎ Elk Stack Π² Elastic Stack, Π½ΠΎ это Π½Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ посвящСна Grok, которая являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π² Logstash, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ваши ΠΆΡƒΡ€Π½Π°Π»Ρ‹, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊ. Для Π½Π°ΡˆΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ я Π±ΡƒΠ΄Ρƒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ± ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Logstash Π² Elasticsearch.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π² ELK Stack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GROK Π² LogStash

Grok-это Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ Logstash, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Π±ΠΎΡ€Π° нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ структурированноС ΠΈ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅ запросу. Он находится ΠΏΠΎΠ²Π΅Ρ€Ρ… рСгулярного выраТСния (regex) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ тСкстовыС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для сопоставлСния строк Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ².

Как ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…, использованиС Grok ΠΈΠΌΠ΅Π΅Ρ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ± эффСктивном ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌΠΈ.

Π‘Π΅Π· Grok ваши Π΄Π°Π½Π½Ρ‹Π΅ ΠΆΡƒΡ€Π½Π°Π»Π° НСструктурированы

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π² ELK Stack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GROK Π² LogStash

Π‘Π΅Π· Grok, ΠΊΠΎΠ³Π΄Π° ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· Logstash Π² Elasticsearch ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Kibana, ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ сообщСния.

Запрос Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² этой ситуации Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΆΡƒΡ€Π½Π°Π»Π° хранятся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π΅. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅, Ссли Π±Ρ‹ сообщСния ΠΆΡƒΡ€Π½Π°Π»Π° Π±Ρ‹Π»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅.

НСструктурированныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π»ΠΎΠ³ΠΎΠ²

localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0

Если Π²Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотритС Π½Π° Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π° самом Π΄Π΅Π»Π΅ состоят ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… частСй, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ.

Для Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π²Ρ‹, вСроятно, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ каТдая ΠΈΠ· частСй ΠΈ Ρ‡Ρ‚ΠΎ это сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° ΠΎΡ‚ Π²Ρ‹Π·ΠΎΠ²Π° API. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Π½ΠΈΠΆΠ΅.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Π½Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…

  • ​ localhost == environment
  • ​ GET == method
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • ​ 400 == response_status
  • ​ 46ms == response_time
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π² структурированных Π΄Π°Π½Π½Ρ‹Ρ…, сущСствуСт порядок для нСструктурированных ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ². Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг – это программная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ Π³Π΄Π΅ Π“Ρ€ΠΎΠΊ сияСт.

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Grok

ВстроСнныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Grok

Logstash поставляСтся с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 100 встроСнными шаблонами для структурирования нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этим прСимущСством, ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ для ΠΎΠ±Ρ‰ΠΈΡ… систСмных ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ apache, linux, haproxy, aws ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Однако Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Ρ‹, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅? Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свой собствСнный шаблон Grok.

ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Grok

НуТно ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свой собствСнный шаблон Grok. Π― использовал Grok Debugger ΠΈ Grok Patterns.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ синтаксис шаблонов Grok выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: %{SYNTAX:SEMANTIC}

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ я попытался ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Discover Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ Grok. Π― ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Ссли Π±Ρ‹ этот инструмСнт ΠΌΠΎΠ³ автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ шаблон Grok, Π½ΠΎ это Π±Ρ‹Π»ΠΎ Π½Π΅ слишком ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ нашСл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° совпадСния.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π² ELK Stack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GROK Π² LogStash

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, я Π½Π°Ρ‡Π°Π» ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свой собствСнный шаблон Π½Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ Grok, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ синтаксис, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ Π½Π° страницС Github Elastic.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π² ELK Stack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GROK Π² LogStash

ΠŸΠΎΠΈΠ³Ρ€Π°Π² с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ синтаксисами, я Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ смог ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΆΡƒΡ€Π½Π°Π»Π° Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π² ELK Stack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GROK Π² LogStash

Бсылка Π½Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Grok https://grokdebug.herokuapp.com/

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст:

localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0

Pattern:

%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}

Π’ΠΎ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π² ΠΈΡ‚ΠΎΠ³Π΅

{
  "environment": [
    [
      "localhost"
    ]
  ],
  "method": [
    [
      "GET"
    ]
  ],
  "url": [
    [
      "/v2/applink/5c2f4bb3e9fda1234edc64d"
    ]
  ],
  "response_status": [
    [
      "400"
    ]
  ],
  "BASE10NUM": [
    [
      "400"
    ]
  ],
  "response_time": [
    [
      "46ms"
    ]
  ],
  "user_id": [
    [
      "5bc6e716b5d6cb35fc9687c0"
    ]
  ]
}

ИмСя Π² Ρ€ΡƒΠΊΠ°Ρ… шаблон Grok ΠΈ сопоставлСнныС Π΄Π°Π½Π½Ρ‹Π΅, послСдний шаг β€” Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Logstash.

ОбновлСниС Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Logstash.conf

На сСрвСрС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ установили стСк ELK, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Logstash:

sudo vi /etc/logstash/conf.d/logstash.conf

Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ измСнСния.

input { 
  file {
    path => "/your_logs/*.log"
  }
}
filter{
  grok {
    match => { "message" => "%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}"}
  }
}
output {
  elasticsearch {
    hosts => [ "localhost:9200" ]
  }
}

ПослС сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ пСрСзапуститС Logstash ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Π³ΠΎ состояниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ всС Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

sudo service logstash restart
sudo service logstash status

НаконСц, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ измСнСния вступили Π² силу, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ индСкс Elasticsearch для Logstash Π² Kibana!

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π² ELK Stack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GROK Π² LogStash

Π‘ Grok ваши Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² структурированы!

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ нСструктурированных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² Π² ELK Stack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GROK Π² LogStash

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅, Grok способСн автоматичСски ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΆΡƒΡ€Π½Π°Π»Π° с Elasticsearch. Π­Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌΠΈ ΠΈ быстрый запрос ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Ρ‹Ρ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ срСду ΠΈΠ»ΠΈ url-адрСс.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄Π°Ρ‚ΡŒ Grok expressions шанс! Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΈΠ»ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π²Ρ‹ΡˆΠ΅, просто Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΌΠ½Π΅ ΠΎΠ± этом.

Бпасибо Π·Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ β€” ΠΈ, поТалуйста, слСдуйтС Π·Π° ΠΌΠ½ΠΎΠΉ здСсь, Π½Π° Medium, для получСния Π±ΠΎΠ»Π΅Π΅ интСрСсных статСй ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ!

РСсурсы

https://www.elastic.co/blog/do-you-grok-grok
https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns
https://grokdebug.herokuapp.com/

P.S Бсылка Π½Π° источник

Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π» ΠΏΠΎ Elasticsearch

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