ELK Stack (Elasticsearch, Logstash, Kibana) ব্যবহার করে একটি Log Monitoring এবং Analysis System তৈরি করা একটি অত্যন্ত কার্যকর এবং স্কেলেবল পদ্ধতি। এই সিস্টেমটি লগ সংগ্রহ, ইনডেক্সিং, প্রসেসিং, এবং ভিজ্যুয়ালাইজেশনের মাধ্যমে ডেটার ওপর গভীর অন্তর্দৃষ্টি পেতে সাহায্য করে। নিচে স্টেপ-বাই-স্টেপ নির্দেশিকা দেওয়া হলো যা অনুসরণ করে আপনি একটি সম্পূর্ণ সিস্টেম তৈরি করতে পারবেন।
প্রয়োজনীয় টুলস এবং টেকনোলজি
- Elasticsearch: লগ ডেটা ইনডেক্স এবং স্টোরেজের জন্য সার্চ ইঞ্জিন।
- Logstash: লগ সংগ্রহ এবং প্রসেসিং পাইপলাইন।
- Kibana: লগ ডেটা ভিজ্যুয়ালাইজেশন এবং অ্যানালাইসিসের জন্য টুল।
- Filebeat: লগ শিপার যা বিভিন্ন সোর্স থেকে লগ সংগ্রহ করে Logstash বা Elasticsearch-এ পাঠায়।
সিস্টেম আর্কিটেকচার
- Filebeat → লগ সংগ্রহ করে Logstash/Elasticsearch-এ পাঠায়।
- Logstash → Filebeat থেকে ডেটা গ্রহণ করে, প্রসেসিং করে, এবং Elasticsearch-এ পাঠায়।
- Elasticsearch → প্রসেস করা লগ ডেটা ইনডেক্স করে এবং স্টোর করে।
- Kibana → Elasticsearch-এ স্টোর করা ডেটা ভিজ্যুয়ালাইজ এবং বিশ্লেষণ করতে ব্যবহৃত হয়।
স্টেপ ১: Elasticsearch ইনস্টল এবং কনফিগারেশন
Elasticsearch ইনস্টল করার জন্য:
- Docker ব্যবহার করতে পারেন:
docker run -d --name elasticsearch -p 9200:9200 -e "discovery.type=single-node" elasticsearch:8.0.0- অথবা লোকালি ইনস্টল করতে পারেন Elasticsearch-এর অফিসিয়াল গাইড অনুসরণ করে।
স্টেপ ২: Logstash ইনস্টল এবং কনফিগারেশন
Logstash ইনস্টল এবং কনফিগার করার জন্য:
Logstash ইন্সটল করুন (যেমন apt install logstash বা Docker ব্যবহার করতে পারেন)।
Logstash-এর জন্য একটি কনফিগারেশন ফাইল তৈরি করুন, যেমন logstash.conf:
input {
beats {
port => 5044
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "logs-%{+YYYY.MM.dd}"
}
}- Input সেকশন: Filebeat থেকে ডেটা গ্রহণ করে পোর্ট
5044এ। - Filter সেকশন:
grokফিল্টার ব্যবহার করে লগ ডেটা প্রসেস করে এবং টাইমস্ট্যাম্প ফরম্যাট করে। - Output সেকশন: প্রসেস করা ডেটা Elasticsearch-এ পাঠানো হয় এবং প্রতিদিন একটি নতুন ইনডেক্স তৈরি হয়।
Logstash চালু করুন:
logstash -f /path/to/logstash.confস্টেপ ৩: Filebeat ইনস্টল এবং কনফিগারেশন
Filebeat ইনস্টল করার জন্য:
Filebeat ইন্সটল করুন (apt install filebeat বা Docker)।
Filebeat কনফিগারেশন ফাইল (filebeat.yml) এডিট করুন:
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
output.logstash:
hosts: ["localhost:5044"]- Input সেকশন:
/var/log/থেকে সব লগ সংগ্রহ করবে। - Output সেকশন: Logstash সার্ভারের সাথে কানেক্ট করে
5044পোর্টে ডেটা পাঠাবে।
Filebeat চালু করুন:
sudo service filebeat startস্টেপ ৪: Kibana ইনস্টল এবং কনফিগারেশন
Kibana ইনস্টল করার জন্য:
Docker ব্যবহার করতে পারেন:
docker run -d --name kibana -p 5601:5601 --link elasticsearch:kibana elasticsearch/kibana:8.0.0Kibana ব্রাউজারে অ্যাক্সেস করুন: http://localhost:5601।
Index Pattern সেটআপ:
- Kibana-এর Stack Management-এ যান।
- একটি নতুন ইনডেক্স প্যাটার্ন তৈরি করুন, যেমন
logs-*। - Timestamp ফিল্ড হিসেবে
@timestampসিলেক্ট করুন।
স্টেপ ৫: লগ ভিজ্যুয়ালাইজেশন এবং অ্যানালাইসিস
- Discover ট্যাবে যান: এখানে আপনি আপনার ইনডেক্স করা লগ ডেটা দেখতে পারবেন এবং ফিল্টারিং করতে পারবেন।
- Visualizations তৈরি করুন:
- Pie Chart, Line Chart, বা Bar Chart ব্যবহার করে লগের বিভিন্ন মেট্রিক্স যেমন HTTP status codes, response times, error frequencies ইত্যাদি দেখতে পারেন।
- Dashboards তৈরি করুন:
- একাধিক ভিজ্যুয়ালাইজেশন একত্রে নিয়ে একটি সম্পূর্ণ ড্যাশবোর্ড তৈরি করতে পারেন।
- এটি লগ ডেটার ওপর রিয়েল-টাইম মনিটরিং এবং অ্যানালাইসিসে সহায়ক।
- Alerts এবং Actions:
- Kibana-তে অ্যালার্ট তৈরি করতে পারেন, যা নির্দিষ্ট শর্ত (যেমন নির্দিষ্ট সংখ্যার বেশি "error" মেসেজ) পূর্ণ হলে ইমেল বা স্ল্যাক নোটিফিকেশন পাঠাতে পারে।
স্টেপ ৬: সিস্টেম টেস্ট করা
আপনার সিস্টেম টেস্ট করতে কয়েকটি লগ তৈরি করুন এবং তা Filebeat-এর মাধ্যমে পাঠিয়ে দেখুন। যদি সিস্টেম ঠিকভাবে কাজ করে, তাহলে আপনার লগগুলো Kibana-তে দেখা যাবে এবং ভিজ্যুয়ালাইজেশন এবং ফিল্টারিং অপশনগুলো ব্যবহার করতে পারবেন।
উপসংহার
ELK Stack ব্যবহার করে একটি সম্পূর্ণ Log Monitoring এবং Analysis System তৈরি করা হলো। এই সিস্টেমটি:
- লগ সংগ্রহ, প্রসেসিং এবং ইনডেক্সিং করে।
- রিয়েল-টাইম মনিটরিং এবং অ্যালার্টিং সিস্টেম অফার করে।
- Kibana-এর মাধ্যমে ইন্টার্যাক্টিভ ভিজ্যুয়ালাইজেশন এবং ড্যাশবোর্ড তৈরি করতে সক্ষম করে তোলে।
Read more