Docker میں Logstash

Docker My Logstash



Logstash ایک اوپن سورس ڈیٹا پروسیسنگ پائپ لائن ہے جو آپ کو مختلف ذرائع سے لاگ ڈیٹا اکٹھا کرنے، پروسیس کرنے اور آگے بڑھانے کی اجازت دیتی ہے۔

اس ٹیوٹوریل میں، ہم بنیادی ترتیب کے ساتھ Docker کنٹینر میں Logstash چلانے کے عمل میں آپ کی رہنمائی کریں گے۔

تقاضے:

اس سے پہلے کہ ہم سبق کے ساتھ شروع کریں، یقینی بنائیں کہ آپ کے پاس درج ذیل ہیں:







  1. آپ کی میزبان مشین پر ڈوکر انسٹال ہے (ورژن 23 اور اس سے اوپر کی سفارش کی جاتی ہے)
  2. آپ کی مشین پر ڈوکر کمپوز انسٹال ہے۔

دی گئی ضروریات کو پورا کرنے کے ساتھ، ہم ٹیوٹوریل کے ساتھ آگے بڑھ سکتے ہیں۔



Logstash کنفیگریشن فائل سیٹ اپ کریں۔

Logstash اس بات کی وضاحت کرنے کے لیے کنفیگریشن فائلوں کا استعمال کرتا ہے کہ ڈیٹا کو کیسے اندراج، فلٹر اور آؤٹ پٹ پر بھیجا جاتا ہے۔ مختلف قسم کے اختیارات ہیں جنہیں آپ تشکیل دے سکتے ہیں جیسا کہ آپ سرکاری دستاویزات میں حوالہ دے سکتے ہیں۔



ہماری مثال کے طور پر، ہم بنیادی ترتیب پر توجہ مرکوز کرتے ہیں جو لاگ فائل سے ڈیٹا کو ہضم کرتی ہے، اسے مماثل ریکارڈ کے لیے فلٹر کرتی ہے، اور ڈیٹا کو فائل میں آؤٹ پٹ کرتی ہے۔





'logstash.conf' نامی ایک فائل بنائیں اور کنفیگریشن کو اس طرح شامل کریں:

ان پٹ {
فائل {
راستہ => '/var/log/apache/access.log'

start_position => 'شروع'

sincedb_path => '/dev/null'

ignore_older => 0
}
}

فلٹر {
اگر [پیغام] =~ 'خرابی' {
گروک {
میچ => { 'پیغام' => '%{COMBINEDAPACHELOG}' }
}
}
}

آؤٹ پٹ {
فائل {
راستہ => '/var/log/apache/error_logs.log'
}
}

پچھلی فائل کنفیگریشن کی وضاحت کرتی ہے جیسا کہ درج ذیل میں دکھایا گیا ہے۔

  1. ان پٹ سیکشن - ان پٹ سیکشن فائل ان پٹ پلگ ان کو /var/log/apache/access.log میں موجود اپاچی لاگ فائل کو پڑھنے کے لیے استعمال کرتا ہے۔
    • اس کے بعد ہم شروع میں شروع کی پوزیشن سیٹ کرتے ہیں جو Logstash کو شروع سے پوری فائل کو پڑھنے کی اجازت دیتا ہے۔
    • Sincedb_path - یہ پیرامیٹر ہمیں قیمت کو /dev/null پر سیٹ کرکے Logstash کی sincedb ٹریکنگ کو غیر فعال کرنے کی اجازت دیتا ہے۔ یہ یقینی بناتا ہے کہ Logstash ہمیشہ فائل کے شروع سے پڑھتا ہے۔
    • Ignore_older - اس پیرامیٹر کی قدر کو 0 پر سیٹ کرنا Logstash کو لاگ فائل کی تمام اندراجات پر کارروائی کرنے کی اجازت دیتا ہے۔
  2. فلٹر سیکشن - فلٹر سیکشن میں، ہم یہ چیک کرنے کے لیے فلٹر پیٹرن کی وضاحت کرتے ہیں کہ آیا لاگ میسج میں ERROR کا لفظ موجود ہے۔ آپ فلٹر بلاکس کی شرائط کو فائل میں زیادہ درست میچوں کے لیے فلٹر کرنے کے لیے ایڈجسٹ کر سکتے ہیں۔
    • اگر شرط پوری ہو جاتی ہے، تو ہم COMBINEDAPACHELOG پیٹرن کا استعمال کرتے ہوئے اپاچی لاگ لائن کو پارس کرنے کے لیے grok فلٹر کا استعمال کرتے ہیں جو Apache لاگز کو پارس کرنے کے لیے Logstash میں ایک بلٹ ان پیٹرن ہے۔
  3. آؤٹ پٹ سیکشن - یہ سیکشن ہمیں مماثل اندراجات کے لیے آؤٹ پٹ فارمیٹ کی وضاحت کرنے کی اجازت دیتا ہے۔
    • ہمارے معاملے میں، ہم انہیں پاتھ پیرامیٹر کا استعمال کرتے ہوئے /var/log/apache/error_logs.log فائل میں لکھتے ہیں۔

یہ ہمیں ایک بنیادی Logstash کنفیگریشن فراہم کرے گا جو ہمیں Logstash کے کچھ بنیادی کاموں کا مظاہرہ کرنے کی اجازت دیتا ہے۔

براہ کرم درج ذیل فراہم کردہ دستاویزات کے وسائل میں لاگ اسٹاش پائپ لائنز بنانے اور ترتیب دینے کے بارے میں مزید حوالہ دیں۔

https://www.elastic.co/guide/en/logstash/current/configuration.html

ڈاکر فائل بنائیں

Logstash کنفیگریشنز کی وضاحت کرنے کے بعد، ہم آگے بڑھ سکتے ہیں اور کنٹینر کو چلانے کا طریقہ سیکھ سکتے ہیں۔ 'logstash.conf' فائل والی ڈائرکٹری کے اندر، 'Dockerfile' نامی ایک نئی فائل بنائیں۔

اس فائل میں ترمیم کریں اور درج ذیل اندراجات شامل کریں:

docker.elastic.co/logstash/logstash:8.9.2 سے

logstash.conf /usr/share/logstash/pipeline/logstash.conf کاپی کریں

دی گئی مثال میں، ہم ورژن 8.9.2 کا استعمال کرتے ہوئے بیس امیج کو آفیشل لاگ سٹیش امیج کے طور پر بیان کرتے ہیں۔

پھر ہم 'logstash.conf' فائل کو کاپی کرتے ہیں جو ہم نے تصویر میں /usr/share/logstash/pipeline/logstash.conf میں بنائی ہے۔

ڈوکر امیج بنائیں

اگلا، اس ڈائرکٹری پر جائیں جس میں Dockerfile اور Logstash کنفیگریشن فائل ہے۔ تصویر بنانے کے لیے درج ذیل کمانڈ کو چلائیں:

$ ڈاکر کی تعمیر -t custom-logstash-image

Logstash کنٹینر چلائیں۔

اب جب کہ ہم نے Docker امیج بنایا ہے، ہم Docker 'run' کمانڈ کا استعمال کرتے ہوئے Logstash کنٹینر چلا سکتے ہیں:

$ ڈاکر رن -d --نام logstash-server custom-logstash-image

اس کو لاگ اسٹاش کنٹینر کو اس تصویر کا استعمال کرتے ہوئے چلنا چاہئے جو ہم نے پچھلے مرحلے میں بنایا تھا۔

Logstash کنٹینر لاگز کی تصدیق کریں۔

اس بات کی تصدیق کرنے کے لیے کہ Logstash صحیح طریقے سے چل رہا ہے، آپ درج ذیل کمانڈ کا استعمال کرتے ہوئے کنٹینر لاگز کو چیک کر سکتے ہیں۔

$ ڈاکر لاگز < کنٹینر_نام >

آؤٹ پٹ:

نتیجہ

اس ٹیوٹوریل میں، آپ نے سیکھا کہ کس طرح آپ لاگ اسٹش سرور کو تیزی سے ترتیب دے سکتے ہیں جو ایک حسب ضرورت کنفیگریشن فائل کا استعمال کرتے ہوئے ڈوکر کے طور پر چلتا ہے۔ ہم تجویز کرتے ہیں کہ تصویری پیرامیٹرز اور کنفیگریشن کے اختیارات پر دستاویزات کو چیک کریں۔