LogStash ۾ GROK استعمال ڪندي لاگز کان ELK اسٽيڪ ۾ غير منظم ٿيل ڊيٽا کي تبديل ڪرڻ لاءِ صلاحون ۽ ترڪيبون

GROK سان گڏ غير منظم ڊيٽا جي جوڙجڪ

جيڪڏهن توهان استعمال ڪري رهيا آهيو لچڪدار (ELK) اسٽيڪ ۽ ميلاپ ڪرڻ ۾ دلچسپي رکو ٿا ڪسٽم Logstash لاگز کي Elasticsearch ڏانهن، پوء هي پوسٽ توهان لاء آهي.

LogStash ۾ GROK استعمال ڪندي لاگز کان ELK اسٽيڪ ۾ غير منظم ٿيل ڊيٽا کي تبديل ڪرڻ لاءِ صلاحون ۽ ترڪيبون

ELK اسٽيڪ ٽن اوپن سورس منصوبن لاءِ مخفف آهي: Elasticsearch، Logstash ۽ Kibana. گڏو گڏ اهي هڪ لاگ مئنيجمينٽ پليٽ فارم ٺاهيندا آهن.

  • ElasticsSearch هڪ ڳولا ۽ تجزياتي نظام آهي.
  • Logstash هڪ سرور-سائڊ ڊيٽا پروسيسنگ پائپ لائن آهي جيڪا ڪيترن ئي ذريعن مان ڊيٽا گڏ ڪري ٿي، ان کي تبديل ڪري ٿي، ۽ پوءِ ان کي "اسٽيش" ڏانهن موڪلي ٿي جهڙوڪ Elasticsearch.
  • ڪبيانا صارفين کي Elasticsearch ۾ چارٽ ۽ گراف استعمال ڪندي ڊيٽا کي ڏسڻ جي اجازت ڏئي ٿو.

ٻڪريون بعد ۾ آيو ۽ هڪ ٿلهي ڊيٽا shipper آهي. بيٽس جي تعارف ايلڪ اسٽيڪ کي لچڪدار اسٽيڪ ۾ تبديل ڪيو، پر اهو نڪتو ناهي.

هي آرٽيڪل Grok جي باري ۾ آهي، جيڪو Logstash ۾ هڪ خاصيت آهي جيڪو توهان جي لاگز کي تبديل ڪري سگهي ٿو ان کان اڳ اهي اسٽش ڏانهن موڪليا وڃن. اسان جي مقصدن لاءِ، مان صرف Logstash کان Elasticsearch ۾ ڊيٽا پروسيسنگ بابت ڳالهائيندس.

LogStash ۾ GROK استعمال ڪندي لاگز کان ELK اسٽيڪ ۾ غير منظم ٿيل ڊيٽا کي تبديل ڪرڻ لاءِ صلاحون ۽ ترڪيبون

Grok Logstash جي اندر ھڪڙو فلٽر آھي جيڪو غير منظم ٿيل ڊيٽا کي ھڪڙي منظم ۽ سوال جي قابل شيء ۾ پارس ڪرڻ لاء استعمال ڪيو ويندو آھي. اهو هڪ باقاعده اظهار (regex) جي چوٽي تي ويٺو آهي ۽ لاگ فائلن ۾ تارن کي ملائڻ لاءِ ٽيڪسٽ نمونن کي استعمال ڪري ٿو.

جيئن اسان هيٺ ڏنل حصن ۾ ڏسندا، Grok استعمال ڪندي هڪ وڏو فرق پيدا ڪري ٿو جڏهن اهو موثر لاگ انتظام جي اچي ٿو.

Grok کان سواءِ توهان جو لاگ ڊيٽا غير منظم آهي

LogStash ۾ GROK استعمال ڪندي لاگز کان ELK اسٽيڪ ۾ غير منظم ٿيل ڊيٽا کي تبديل ڪرڻ لاءِ صلاحون ۽ ترڪيبون

Grok کان سواءِ، جڏهن لاگز Logstash کان Elasticsearch ڏانهن موڪليا ويندا آهن ۽ Kibana ۾ پيش ڪيا ويندا آهن، اهي صرف پيغام جي قيمت ۾ ظاهر ٿيندا آهن.

هن صورتحال ۾ معقول معلومات جو سوال ڪرڻ ڏکيو آهي ڇاڪاڻ ته سڀئي لاگ ڊيٽا هڪ واحد چيڪ ۾ محفوظ ٿيل آهي. اھو بھتر ھوندو جيڪڏھن لاگ پيغامن کي بھتر ترتيب ڏنو وڃي.

لاگن مان غير منظم ڊيٽا

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

جيڪڏھن توھان خام ڊيٽا کي ويجھي نظر سان ڏسندا، توھان ڏسندؤ ته اھو اصل ۾ مختلف حصن تي مشتمل آھي، ھر ھڪ خلا سان جدا ٿيل آھي.

وڌيڪ تجربيڪار ڊولپرز لاءِ، توھان اندازو لڳائي سگھو ٿا ته ھر ھڪ حصن جو مطلب ڇا آھي ۽ اھو لاگ پيغام API ڪال مان ڇا آھي. هر شئي جي پيشڪش هيٺ ڏنل آهي.

اسان جي ڊيٽا جو ٺهيل منظر

  • مقامي ميزبان == ماحول
  • حاصل ڪريو == طريقو
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 == جواب_ اسٽيٽس
  • 46ms == جواب_وقت
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

جيئن اسان منظم ڪيل ڊيٽا ۾ ڏسون ٿا، اتي هڪ ترتيب آهي غير منظم لاگ لاءِ. ايندڙ قدم خام ڊيٽا جي سافٽ ويئر پروسيسنگ آهي. اهو آهي جتي Grok چمڪندڙ آهي.

گروڪ ٽيمپليٽس

بلٽ ان Grok ٽيمپليٽ

Logstash 100 کان وڌيڪ بلٽ ان ٽيمپليٽس سان گڏ اچي ٿو غير منظم ڊيٽا کي ترتيب ڏيڻ لاءِ. توھان کي ضرور ان مان فائدو وٺڻ گھرجي جڏھن به ممڪن ھجي ته عام syslogs جھڙوڪ apache، linux، haproxy، aws وغيره.

تنهن هوندي، ڇا ٿيندو جڏهن توهان وٽ ڪسٽم لاگ آهن جيئن مٿي ڏنل مثال ۾؟ توهان کي پنهنجو Grok ٽيمپليٽ ٺاهڻ گهرجي.

ڪسٽم Grok ٽيمپليٽ

توھان کي ڪوشش ڪرڻي پوندي پنھنجي گروڪ ٽيمپليٽ ٺاھيو. مون استعمال ڪيو گروڪ ڊيبگر и گروڪ نموني.

نوٽ ڪريو ته گروڪ ٽيمپليٽ نحو هن ريت آهي: %{SYNTAX:SEMANTIC}

پهرين شيء جيڪا مون ڪرڻ جي ڪوشش ڪئي هئي ٽيب ڏانهن وڃو ڊسڪور Grok debugger ۾. مون سوچيو ته اهو ٿڌو ٿيندو جيڪڏهن هي اوزار خودڪار طور تي هڪ گروڪ نمونو ٺاهي سگهي ٿو، پر اهو ايترو ڪارائتو نه هو ڇو ته اهو صرف ٻه ميچون مليا آهن.

LogStash ۾ GROK استعمال ڪندي لاگز کان ELK اسٽيڪ ۾ غير منظم ٿيل ڊيٽا کي تبديل ڪرڻ لاءِ صلاحون ۽ ترڪيبون

هن دريافت کي استعمال ڪندي، مون Grok debugger ۾ لچڪدار Github صفحي تي مليل نحو کي استعمال ڪندي پنهنجو ٽيمپليٽ ٺاهڻ شروع ڪيو.

LogStash ۾ GROK استعمال ڪندي لاگز کان ELK اسٽيڪ ۾ غير منظم ٿيل ڊيٽا کي تبديل ڪرڻ لاءِ صلاحون ۽ ترڪيبون

مختلف نحو سان گڏ راند ڪرڻ کان پوء، مان آخرڪار لاگ ڊيٽا کي ترتيب ڏيڻ جي قابل ٿي ويو جيئن مون چاهيو.

LogStash ۾ GROK استعمال ڪندي لاگز کان ELK اسٽيڪ ۾ غير منظم ٿيل ڊيٽا کي تبديل ڪرڻ لاءِ صلاحون ۽ ترڪيبون

گروڪ ڊيبگر لنڪ https://grokdebug.herokuapp.com/

اصل متن:

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

نمونہ:

%{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

آخرڪار، پڪ ڪرڻ لاء تبديليون اثر انداز ٿي ويا آهن، Kibana ۾ Logstash لاءِ پنھنجي Elasticsearch index کي اپڊيٽ ڪرڻ جي پڪ ڪريو!

LogStash ۾ GROK استعمال ڪندي لاگز کان ELK اسٽيڪ ۾ غير منظم ٿيل ڊيٽا کي تبديل ڪرڻ لاءِ صلاحون ۽ ترڪيبون

Grok سان، توهان جي لاگ ڊيٽا کي منظم ڪيو ويو آهي!

LogStash ۾ GROK استعمال ڪندي لاگز کان ELK اسٽيڪ ۾ غير منظم ٿيل ڊيٽا کي تبديل ڪرڻ لاءِ صلاحون ۽ ترڪيبون

جيئن اسان مٿي ڏنل تصوير ۾ ڏسي سگهون ٿا، Grok قابل آهي خودڪار طريقي سان ميلاپ ڊيٽا کي Elasticsearch سان. اهو آسان بڻائي ٿو لاگز کي منظم ڪرڻ ۽ جلدي معلومات پڇڻ. ڊيبگ ڪرڻ لاءِ لاگ فائلن جي ذريعي کوٽڻ بدران، توهان صرف ان ذريعي فلٽر ڪري سگهو ٿا جيڪي توهان ڳولي رهيا آهيو، جهڙوڪ ماحول يا url.

Grok اظهار جي ڪوشش ڪريو! جيڪڏهن توهان وٽ اهو ڪرڻ جو ٻيو طريقو آهي يا مٿي ڏنل مثالن سان ڪو مسئلو آهي، صرف مون کي ڄاڻڻ لاء هيٺ ڏنل تبصرو لکو.

پڙهڻ لاءِ مهرباني- ۽ مهرباني ڪري مون کي فالو ڪريو هتي ميڊيم تي وڌيڪ دلچسپ سافٽ ويئر انجنيئرنگ آرٽيڪل لاءِ!

ذريعا

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/

پي ذريعو لنڪ

ٽيليگرام چينل پاران ElasticsSearch

جو ذريعو: www.habr.com

تبصرو شامل ڪريو