কম্পিউটার টিউটোরিয়াল

Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

আপনার IT ইনফ্রাস্ট্রাকচার যെ হয়ে বৃদ্ধি পায় এবং কমপ্লেক্স হয়ে যায়, আপনাকে সবকিছু সঠিকভাবে ম্যানেজড আছে কিনা সেটি নিশ্চিত করার জন্য বেশি মনোযোগ দিতে হতে পারে।

ক্লাউডের উত্থান থেকে, এটি বিশেষভাবে প্রাসঙ্গিক হয়ে উঠেছে, কারণ এখন আমাদের কাছে টেকনিক্যাল ইনফরমেশন প্রচুর পরিমাণে রয়েছে অনেক ভিন্ন ভিন্ন লোকেশনে ছড়িয়ে।

কিন্তু কম্প্রিহেনসিভ লগ অ্যানালাইসিস চালাতে পারা যেটেadium, টাইম-কনসামিং এবং খুব বিরক্তিকর।

এই ভার থেকে মুক্তি পাওয়ার একটি সিম্পল কিন্তু ইফেক্টিভ উপায় হলো সফটওয়্যার বা অ্যাপ্লিকেশন ব্যবহার করা যা লগ মনিটরিং সহজ করে দেয়… এবং সেটি ঠিক Alexis Gardin তার অ্যাপ্লিকেশন, Logub-এ করেছেন।

অনেক SaaS সমাধানের বিপরীতে, Logub এই কাজগুলো অন-প্রেমিস এবং ওপেন সোর্স হিসেবে চালাতে পারে। নিচের ধাপগুলো ফলো করলে, আপনি একটি অ্যাপ্লিকেশন তৈরি করতে পারবেন যা আপনার জন্য অ্যাপ্লিকেশন লগ কালেক্ট, এক্সপ্লোর, এবং অ্যানালাইস করবে।

এই অ্যাপ্লিকেশনের হৃদয়ে ছিল RediSearch-এর ক্ষমতা üzerine নির্ভরশীলতা যা বিভিন্ন লোকেশন জুড়ে লগ এক্সপ্লোর এবং অ্যানালাইস করতে পারে অপরাজিত দক্ষতার সাথে। আসুন দেখি Alexis কীভাবে এই অ্যাপ্লিকেশনটি একসাথে বানালেন।

কিন্তু ডুবার আগে, আমরা আপনাকে জানাতে চাই যে Redis Launchpad-এ আপনার জন্য এক্সাইটিং অ্যাপ্লিকেশনগুলোর একটি রেঞ্জ রয়েছে।

  1. আপনি কী বানাবেন?
  2. আপনার কী কী লাগবে?
  3. আর্কিটেকচার
  4. শুরু করা
  5. ডেটা কীভাবে স্টোর হয়
  6. ডেটা কীভাবে কুয়েরি হয়
  7. সার্চ বার কীভাবে কাজ করে?
  8. Logub আপনার প্রজেক্টে কীভাবে ইন্টিগ্রেট করবেন?
  9. উপসংহার

1. আপনি কী বানাবেন?

আপনি একটি স্পেশাল অ্যাপ বানাবেন যা Redis দ্বারা চালিত লগ অ্যাপ্লিকেশন কালেক্ট, অ্যানালাইস এবং এক্সপ্লোর করবে। নিচের ধাপগুলোতে, আমরা A-Z যেটা প্রয়োজন সেটি যাবতীয় এই অ্যাপ্লিকেশন বানাতে, রিকোয়ার্ড কম্পোনেন্টসহ দেখাব।

আপনি যদি Redis-এ নতুন হন, আমরা আপনাকে ঠিক কীভাবে এই পাওয়ারফুল ডেটাবেসের সাথে পরিচিত হবেন সেটি দেখাব। শুরু করার জন্য প্রস্তুত?

ঠিক আছে, সরাসরি ডুব যাই।
Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইডRedis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

2. আপনার কী কী লাগবে?

  • Fluentd: লগ প্রসেস করার জন্য একটি ক্রস-প্ল্যাটফর্ম ওপেন-সোর্স ডেটা কালেকশন সফটওয়্যার হিসেবে ব্যবহৃত হয়।
  • Redis output plugin for Fluent: fluent-plugin-redis হলো একটি fluent প্লাগইন যা Redis-এ আউটপুট দেয়। RediSearch:
  • Docker: ডেভেলপারদের জন্য অ্যাপ্লিকেশন কন্টেইনারে প্যাকেজ করার একটি প্ল্যাটফর্ম হিসেবে ব্যবহৃত হয়।
  • Docker Compose: মাল্টি-কন্টেইনার Docker অ্যাপ্লিকেশন ডিফাইন এবং রান করার জন্য ব্যবহৃত হয়।

3. আর্কিটেকচার

Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড
  • Fluentd বিভিন্ন ডেস্টিনেশন জুড়ে প্রতিটি অ্যাপ্লিকেশন থেকে সকল লগ কালেক্ট করে
  • Fluentd তারপর প্রতিটি লগ ফরম্যাট করে এবং সেগুলো স্টোরেজের জন্য Redis-এ পাঠায়
  • ডেটা Fluentd Redis প্লাগইন ব্যবহার করে স্টোর হয় – Redis-এ আউটপুট দিতে একটি fluent প্লাগইন।
  • Logub ব্যাকএন্ড RediSearch কে ফুল-টেক্সট সার্চ এবং ইউজার দ্বারা ডিফাইন করা ফিল্ড ইন্ডেক্স করতে দেয়।

4. শুরু করা

ডেমোতে, একটি DEMO অ্যাপ Logub-এ লগ পাবলিশ করবে। আপনি এই DEMO অ্যাপের সাথে ইন্টারঅ্যাক্ট করে আপনার লগ জেনারেট করতে পারবেন। তারপর আপনি Logub-এ সেগুলো রিকোয়েস্ট করতে পারবেন।

প্রে-রেকুইজিটস

  • Docker
  • Docker Compose

প্রথমে, নিশ্চিত করুন যে দিয়ে गये পোর্টগুলো আপনার সিস্টেমে খোলা আছে: 8080, 8081, 3000 & 6379।

স্টেপ ১: রিপোজিটরি ক্লোন করুন

git clone https://github.com/redis-developer/logub

স্টেপ ২. DEMO অ্যাপ চালু করুন

  • /demo ফোল্ডারে যান (cd ./demo)
  • দিয়ে गये কমান্ড দিয়ে docker-compose লঞ্চ করুন:

Logub ডেমো লঞ্চ করুন

লগ এক্সপ্লোর করার জন্য localhost:3000-এ যান।

Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

প্রায় এক মিনিট লাগতে পারে লগগুলো দেখতে। আপনি ডান পাশের সাইডবারে ফিল্টার দিয়ে পেজে লগগুলো দেখতে পারবেন। অথবা, টপের সার্চ বারের মাধ্যমে ফিল্টার বা ফুল-টেক্সট কুয়েরি দিয়ে সার্চ করতে পারবেন।

যখন আপনি একটি লগে ক্লিক করবেন, ডিটেইলস দেখাবে এবং আপনাকে বিজনেস প্রপার্টি ইন্ডেক্স করার অপশন থাকবে। এই বিজনেস প্রপার্টিগুলো পরে ফিল্টার হিসেবে ব্যবহার করা যাবে।

Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

এরপর, localhost:3000/demo-এ যান প্লে-গ্রাউন্ড অ্যাক্সেস করতে এবং আপনার কাস্টম লগ যোগ করতে। এই ডেমো পেজ আপনাকে দেয়:

  • ডেমো ফেক অ্যাপে ফেক ইউজার তৈরি করুন এবং লগে সেগুলো দেখুন।
  • সিস্টেমে আপনার লগ পাবলিশ করুন।
Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

আপনি যদি মেইন পেজে ফিরে যান, তবে আপনি যেনে আপনি জেনারেট করেছেন সেগুলো সার্চ করতে পারেন।

নোট: একটি কন্টেইনারে লগ প্রোডাকশন এবং Logub-এ ডিসপ্লے এর মধ্যে প্রায় ১ মিনিট লেটেন্সি রয়েছে। এই লেটেন্সি লগ কালেক্ট, ফরম্যাট, এবং ডেটাবেসে ইনজেস্ট করার প্রক্রিয়ায় হতে পারে।

5. এটি কীভাবে কাজ করে?

ডেটা কীভাবে স্টোর হয়

ডেটা Fluentd Redis Plugin ব্যবহার করে স্টোর হয়। এটি প্রতিটি লগ HSET দিয়ে স্টোর করে। উদাহরণস্বরূপ: HSET level DEBUG message "Hello World" thread main

ডেটা কীভাবে কুয়েরি হয়

এটি সেটি অবজেক্ট যা আপনি লগ ম্যানিপুলেট এবং Redis থেকে রিট্রিভ করতে ব্যবহার করবেন। এই অ্যাকশন করলে Logub UI লগগুলো ডিসপ্লে করতে পারবে। আপনার লগে কমপ্লেক্স কুয়েরি করতে হলে, আপনি RediSearch ব্যবহার করতে পারেন।

যেহেতু আপনি RediSearch স্কিমা ডাইনামিক্যালি চেঞ্জ করতে পারেন, আপনি 'List' ডেটা স্ট্রাকচার ব্যবহার করতে পারেন যেটি ট্র্যাক রাখে কোন স্কিমা ইন্ডেক্স করা হয়েছে।

উপরোক্ত কমান্ড আপনাকে একটি প্লেইন টেক্সট RediSearch কুয়েরি তৈরি করতে দেবে ইউজার ইনপুটের ভিত্তিতে। RediSearch লাইব্রেরির উপরে বিল্ট ছোট ছোট QueryBuildersের একটি বन्च রয়েছে। এটি সেই কমান্ড যা Logub UI পাঠাবে আপনার লগে কম্প্রিহেনসিভ এবং ইফিশিয়েন্ট সার্চ চালানোর জন্য।

স্টেপ ২: সার্চ বার কীভাবে কাজ করে

আপনি ট্যাগ বা ফুল-টেক্সট সার্চ দিয়ে সার্চ করতে পারেন। নিচে কিছু উদাহরণ দেওয়া হলো যা আপনি মডেল হিসেবে ব্যবহার করতে পারেন যদি আপনি আটকে যান।

  • env:dev Ut ea vero voluptate* dev এনভায়রনমেন্টের সকল লগ সার্চ করবে যাদের মেসেজ Ut ea vero voluptate দিয়ে শুরু হয়
  • -env:prod Ut ea vero voluptate* prod ছাড়া সকল এনভায়রনমেন্টের লগ সার্চ করবে যাদের মেসেজ Ut ea vero voluptate দিয়ে শুরু হয়
  • originRequest:France originRequest:USA France বা USA ভ্যালুയুক্ত originRequest ফিল্ড দিয়ে সকল লগ সার্চ করবে
  • "dog" "cat" "dog" এবং "cat" শব্দ সম্বলিত সকল লগ সার্চ করবে
  • -"dog" "cat" "dog" না থাকা কিন্তু "cat" থাকা সকল লগ সার্চ করবে

অ্যাপের সাথে ভালো টেস্টিং অভিজ্ঞতার জন্য, আমরা সুপারিশ করি আপনি প্লে-গ্রাউন্ডে আপনার নিজের লগ তৈরি করুন, বিজনেস প্রপার্টি যোগ করুন, এবং কিছু এক্সপেরিমেন্ট করুন যাতে ফিল পাওয়া যায়।

স্টেপ ৩: Logub আপনার প্রজেক্টে কীভাবে ইন্টিগ্রেট করবেন

Logub অপারেট করার জন্য নিচের Docker ইমেজগুলোর প্রয়োজন হবে:

  • Logub Fluentd ইমেজ লগ কালেক্ট এবং Redis-এ পাঠানোর জন্য – Logub Fluentd Image
  • RediSearch মডিউলসহ Redis ইমেজ Redis Mod Image
  • Logub কন্ট্রোলার ইমেজ লগ এক্সপ্লোরিং ফাংশনালিটি সার্ভ করার জন্য – Logub Controller Image
  • Logub UI লগ এক্সপ্লোর এবং কুয়েরি করার জন্য – Logub UI Image

Logub লগ ফরম্যাট

এখন Logub শুধু একটি নির্দিষ্ট লগ ফরম্যাট হ্যান্ডল করতে পারে। ভবিষ্যতে, এই ফরম্যাট এক্সটেন্ড হবে এবং আরও কাস্টমাইজেবল হবে।

এখানে Logub ফরম্যাট:

দয়া করে নোট করুন, এই ফিল্ডগুলো মানডেটরি নয়।

আপনি যদি আপনার বিজনেস প্রপার্টি যোগ করতে চান, তবে আপনাকে একটি নেস্টেড JSON অবজেক্ট যোগ করতে হবে যের ключ "mdc"। উদাহরণস্বরূপ:

Logub-এ লগ পাবলিশ করা

Loghub-এ লগ এক্সপ্লোর করতে, আপনার কন্টেইনারগুলো Docker Fluentd লগিং ড্রাইভার ব্যবহার করতে হবে। কাস্টমার ইন্টিগ্রেশনের জন্য একটি কনফিগারেশন উদাহরণ এখানে:

স্টেপ ৪: Logub-এ Redis সেটআপ করা

RediSearch

Logub অ্যাপ্লিকেশন লগ প্রসেস করার জন্য RediSearch-এর ফাংশনালিটি ব্যবহার করে। যখন লগগুলো Redis ডেটাবেসে প্যারসিস্ট হয়, সেগুলো ৩ টাইপ ফিল্ডের সাথে থাকে:

  • সিস্টেম প্রপার্টি: যে ইনফরমেশন Docker এবং Fluentd আমাদের দেয় লগ পাঠানোর সময় (যেমন এনভায়রনমেন্ট, কন্টেইনার নাম ইত্যাদি)।
  • বেসিক প্রপার্টি: যে বেসিক ইনফরমেশন একটি লগে থাকে (যেমন টাইমস্ট্যাম্প, সার্ভিস ইত্যাদি)। এই প্রপার্টিগুলো RediSearch-এ অটোমেটিক্যালি ইন্ডেক্সড।
  • বিজনেস প্রপার্টি: এই একটি Logub ইউজার দিয়ে একটি স্পেসিফিক ফিল্ডে দেয়া হয়। ইউজারকে এখানে Key-Value (Map) ফরম্যাট মেনটেইন করতে হবে। RediSearch-এর এডভান্সড ক্যাপাবিলিটির জন্য, আপনি এই 'বিজনেস প্রপার্টি' গুলো ইন্ডেক্স করতে পারবেন আপনি যদি সেগুলোর ওপর রিসার্চ করতে চান।

এখানে একটি লগের উদাহরণ রয়েছে যা বর্ণনা করে কীভাবে আমাদের টুল ফাংশন করে যখন Fluentd ফ্ল্যাটেন করে এবং Redis ডেটাবেসে প্যারসিস্ট করে। Logub API ইউজার বা কোম্পানিকে mdc অবজেক্টের এক বা সকল ফিল্ড ইন্ডেক্স করতে দেবে।

এই প্রজেক্টে, Tag Datatype широко ব্যবহার করা হয়েছে। লগগুলো প্রায়শই বিজনেস প্রপার্টির ভিত্তিতে সার্চ করা হয় (যেমন একটি কাস্টমার আইডি)। আরও, আমরা TextField Datatype ব্যবহার করি লগ মেসেজের জন্য। এটি ইউজারকে এই ফিল্ডে ফুল-টেক্সট সার্চ করতে দেয়।

সার্চ প্রসেসের একটি সিম্পলিফাইড স্কিমা:

Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

Redis

Redis Fluentd দ্বারা লগ স্টোর করতে ব্যবহৃত হয় এইভাবে Redis-এর HashSet টাইপ-এ।

Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

ইন্ডেক্সড ফিল্ড ট্র্যাক রাখার জন্য, আপনি একটি 'schema' অবজেক্টও যোগ করতে পারেন যা Redis-এর List টাইপ ব্যবহার করে।

Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

উপসংহার: RediSearch দিয়ে ক্লাটার কাটিয়ে বের করা

ডিজিটাল ইনোভেশন যেমন ক্লাউডের বিস্ফোরণের একটি ড্রব্যাক হলো IT ইনফ্রাস্ট্রাকচার মনিটরিং কমপ্লেক্স হতে পারে। অ্যাপ্লিকেশনগুলো সম্ভবত বিভিন্ন লোকেশনে ছড়িয়ে থাকবে, যা প্রতিটি লগকে এক লোকেশনে টানতে চ্যালেঞ্জিং করে দেয়।

তবে, Redis ব্যবহার করলে, এই প্রক্রিয়ার একঘেরা দূর হয়ে যায়, আপনাকে লগ সার্চ, গ্যাদার, এবং স্টোর করতে দিয়ে সহজে। আপনি যদি এই অ্যাপ্লিকেশন কীভাবে বানানো হয়েছে তার ইনস এবং আউটস জানতে চান, তবে Alexis-এর YouTube ভিডিওটি এখানে চেক আউট করুন।

আমাদের Launchpad-এ Alexis-এর মত ট্যালেন্টেড প্রোগ্রামাররা ডেভেলপ করা ইনোভেটিভ অ্যাপ্লিকেশনগুলোর একটি এক্সাইটিং রেঞ্জ রয়েছে। চেক আউট করুন, অনুপ্রাণিত হন, এবং দেখুন Redis ব্যবহার করে আপনি কী ইনোভেশন করতে পারেন।

Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

এই অ্যাপ্লিকেশনটি কে বানালেন?

Redis দিয়ে একটি স্কেলেবল লগ অ্যানালাইসিস প্ল্যাটফর্ম বানান: ধাপে ধাপে গাইড

Alexis Gardin

Alexis একজন ইনোভেটিভ সফটওয়্যার ইঞ্জিনিয়ার যিনি বর্তমানে Zendoc-এ কাজ করেন। তার GitHub পেজে যান দেখতে তিনি কী কী প্রজেক্টে জড়িত ছিলেন।

  1. Redis দিয়ে একটি স্কেলেবল ডিস্ট্রিবিউটেড বিজনেস রুলস ইঞ্জিন বানান – ধাপে ধাপে গাইড

  2. রিডিস দিয়ে রিয়েল-টাইম রক্তদান মিলিয়ে দেওয়ার অ্যাপ তৈরি করা

  3. পিসিতে আইওএস অ্যাপ চালান: ধাপে ধাপে গাইড

  4. Power Automate দিয়ে মাইক্রোসফট টিমস স্ট্যাটাস অটোমেটিক আপডেট করার সিমলেস গাইড