تلميحات وحيل لتحويل البيانات غير المنظمة من السجلات إلى ELK Stack باستخدام GROK في LogStash

هيكلة البيانات غير المنظمة مع GROK



إذا كنت تستخدم المكدس المرن (ELK) وترغب في تعيين سجلات Logstash المخصصة إلى Elasticsearch ، فإن هذا المنشور هو لك.





ELK Stack هو اختصار لثلاثة مشاريع مفتوحة المصدر: Elasticsearch و Logstash و Kibana. ويشكلان معًا نظامًا أساسيًا لإدارة السجلات.



  • Elasticsearch هو محرك بحث وتحليلات.
  • Logstash هو خط أنابيب لمعالجة البيانات من جانب الخادم يأخذ البيانات من مصادر متعددة في نفس الوقت ، ويحولها ، ثم يرسلها إلى ذاكرة تخزين مؤقت مثل Elasticsearch.
  • تتيح كيبانا للمستخدمين تصور البيانات باستخدام الرسوم البيانية والرسوم البيانية في Elasticsearch.


جاءت الضربات لاحقًا وهي شركة شحن بيانات خفيفة. أدى إدخال Beats إلى تحويل Elk Stack إلى Elastic Stack ، لكن هذه ليست النقطة.



تركز هذه المقالة على Grok ، وهي ميزة في Logstash يمكنها تحويل سجلاتك قبل إرسالها إلى المخبأ. لأغراضنا ، سأتحدث فقط عن معالجة البيانات من Logstash إلى Elasticsearch.





Grok- Logstash, - . (regex) .



, Grok , .



Grok





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, , .





, Grok, , Github Elastic.





, - , .





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!





Grok !





, , Grok Elasticsearch. . , , , url-.



حاول إعطاء تعبيرات Grok لقطة! إذا كان لديك طريقة أخرى للقيام بذلك ، أو لديك أي مشاكل مع الأمثلة أعلاه ، فما عليك سوى كتابة تعليق أدناه لإخبارنا بذلك.



شكرًا للقراءة - ويرجى متابعتي هنا على 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/



PS رابط للمصدر



قناة Elasticsearch Telegram




All Articles