বাংলা

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

মেট্রিক্স সংগ্রহ: প্রোমিথিউস এবং গ্রাফানা সহ একটি বিস্তৃত গাইড

আজকের জটিল আইটি ল্যান্ডস্কেপে, অ্যাপ্লিকেশন এবং অবকাঠামোর স্বাস্থ্য এবং কর্মক্ষমতা বজায় রাখার জন্য কার্যকর মনিটরিং অত্যন্ত গুরুত্বপূর্ণ। মেট্রিক্স সংগ্রহ এই মনিটরিংয়ের ভিত্তি সরবরাহ করে, যা আপনাকে মূল কর্মক্ষমতা সূচক (KPIs) ট্র্যাক করতে, সম্ভাব্য সমস্যা চিহ্নিত করতে এবং সংস্থান ব্যবহার অপ্টিমাইজ করতে সক্ষম করে। এই বিস্তৃত গাইডটি প্রোমিথিউস এবং গ্রাফানা, দুটি শক্তিশালী ওপেন-সোর্স সরঞ্জাম ব্যবহার করে কিভাবে শক্তিশালী মেট্রিক্স সংগ্রহ এবং ভিজ্যুয়ালাইজেশন করা যায় তা আলোচনা করবে।

মেট্রিক্স সংগ্রহ কী?

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

মেট্রিক্স সংগ্রহ কেন গুরুত্বপূর্ণ?

প্রোমিথিউস এবং গ্রাফানার அறிமுகம்

প্রোমিথিউস হল একটি ওপেন-সোর্স সিস্টেম মনিটরিং এবং অ্যালার্টিং টুলকিট যা মূলত সাউন্ডক্লাউডে তৈরি করা হয়েছে। এটি সময়-সিরিজ ডেটা সংগ্রহ এবং সংরক্ষণে খুব ভালো, যা টাইমস্ট্যাম্প দ্বারা সূচিত ডেটা। প্রোমিথিউস নিয়মিত বিরতিতে লক্ষ্য থেকে (যেমন, সার্ভার, অ্যাপ্লিকেশন) মেট্রিকগুলি স্ক্র্যাপ করার জন্য একটি পুল-ভিত্তিক মডেল ব্যবহার করে। এটি সংগৃহীত ডেটা বিশ্লেষণ এবং অ্যালার্টিং নিয়ম সংজ্ঞায়িত করার জন্য একটি শক্তিশালী ক্যোয়ারী ভাষা (PromQL) অফার করে।

গ্রাফানা হল একটি ওপেন-সোর্স ডেটা ভিজ্যুয়ালাইজেশন এবং মনিটরিং প্ল্যাটফর্ম। এটি আপনাকে প্রোমিথিউস সহ বিভিন্ন উৎস থেকে ডেটা ভিজ্যুয়ালাইজ করার জন্য ইন্টারেক্টিভ ড্যাশবোর্ড এবং গ্রাফ তৈরি করতে দেয়। গ্রাফানা গ্রাফ, চার্ট, টেবিল এবং গেজ সহ ভিজ্যুয়ালাইজেশন বিকল্পগুলির একটি সমৃদ্ধ সেট সরবরাহ করে। এটি অ্যালার্টিং সমর্থন করে, আপনাকে নির্দিষ্ট সীমা অতিক্রম করলে বিজ্ঞপ্তি পেতে সক্ষম করে।

একসাথে, প্রোমিথিউস এবং গ্রাফানা একটি শক্তিশালী এবং নমনীয় মনিটরিং সমাধান তৈরি করে যা বিস্তৃত পরিবেশ এবং ব্যবহারের ক্ষেত্রে অভিযোজিত হতে পারে। এগুলো বিশ্বব্যাপী DevOps এবং SRE (সাইট রিলায়েবিলিটি ইঞ্জিনিয়ারিং) অনুশীলনে ব্যাপকভাবে ব্যবহৃত হয়।

প্রোমিথিউস আর্কিটেকচার এবং ধারণা

কার্যকর বাস্তবায়ন এবং ব্যবহারের জন্য প্রোমিথিউসের মূল উপাদানগুলি বোঝা অপরিহার্য:

প্রোমিথিউস ওয়ার্কফ্লো

  1. টার্গেট (অ্যাপ্লিকেশন, সার্ভার, ইত্যাদি) মেট্রিক প্রকাশ করে। এই মেট্রিকগুলি সাধারণত একটি HTTP এন্ডপয়েন্টের মাধ্যমে প্রকাশ করা হয়।
  2. প্রোমিথিউস সার্ভার কনফিগার করা টার্গেট থেকে মেট্রিক স্ক্র্যাপ করে। এটি পর্যায়ক্রমে এই এন্ডপয়েন্টগুলি থেকে মেট্রিক টানে।
  3. প্রোমিথিউস তার টাইম-সিরিজ ডেটাবেসে স্ক্র্যাপ করা মেট্রিকগুলি সংরক্ষণ করে।
  4. ব্যবহারকারীরা PromQL ব্যবহার করে মেট্রিক ক্যোয়ারী করে। এটি তাদের ডেটা বিশ্লেষণ এবং গ্রাফ এবং ড্যাশবোর্ড তৈরি করতে দেয়।
  5. সতর্কতা নিয়মগুলি সঞ্চিত মেট্রিকের উপর ভিত্তি করে মূল্যায়ন করা হয়। যদি কোনও নিয়মের শর্ত পূরণ হয় তবে একটি সতর্কতা ট্রিগার হয়।
  6. Alertmanager ট্রিগার করা সতর্কতাগুলি পরিচালনা করে। এটি ডি-ডুপ্লিকেট, গ্রুপ এবং উপযুক্ত বিজ্ঞপ্তি চ্যানেলে রুট করে।

গ্রাফানা আর্কিটেকচার এবং ধারণা

সংগৃহীত মেট্রিকগুলি ভিজ্যুয়ালাইজ এবং বিশ্লেষণ করার জন্য একটি ব্যবহারকারী-বান্ধব ইন্টারফেস সরবরাহ করে গ্রাফানা প্রোমিথিউসের পরিপূরক:

গ্রাফানা ওয়ার্কফ্লো

  1. ডেটা উৎস কনফিগার করুন: আপনার প্রোমিথিউস সার্ভারের সাথে গ্রাফানা সংযোগ করুন।
  2. ড্যাশবোর্ড তৈরি করুন: আপনার মেট্রিকগুলি ভিজ্যুয়ালাইজ করার জন্য ড্যাশবোর্ড ডিজাইন করুন।
  3. ড্যাশবোর্ডে প্যানেল যোগ করুন: PromQL ক্যোয়ারী ব্যবহার করে প্রোমিথিউস থেকে নির্দিষ্ট ডেটা পয়েন্ট প্রদর্শন করার জন্য প্যানেল যোগ করুন।
  4. অ্যালার্টিং কনফিগার করুন (ঐচ্ছিক): নির্দিষ্ট মেট্রিক থ্রেশহোল্ডের উপর ভিত্তি করে বিজ্ঞপ্তি পেতে গ্রাফানার মধ্যে অ্যালার্টিং নিয়ম সেট আপ করুন।
  5. ড্যাশবোর্ড শেয়ার করুন: মনিটরিং এবং বিশ্লেষণে সহযোগিতা করার জন্য আপনার দলের সাথে ড্যাশবোর্ড শেয়ার করুন।

প্রোমিথিউস এবং গ্রাফানা সেট আপ করা

এই বিভাগে প্রোমিথিউস এবং গ্রাফানা সেট আপ করার বিষয়ে একটি ধাপে ধাপে গাইড প্রদান করা হয়েছে।

প্রোমিথিউস ইনস্টল করা

1. প্রোমিথিউস ডাউনলোড করুন:

অফিসিয়াল ওয়েবসাইট থেকে প্রোমিথিউসের সর্বশেষ সংস্করণটি ডাউনলোড করুন: https://prometheus.io/download/। আপনার অপারেটিং সিস্টেমের জন্য উপযুক্ত প্যাকেজটি চয়ন করুন (যেমন, লিনাক্স, উইন্ডোজ, ম্যাকওএস)।

২. আর্কাইভটি নিষ্কাশন করুন:

ডাউনলোড করা আর্কাইভটি আপনার পছন্দের ডিরেক্টরিতে বের করুন।

3. প্রোমিথিউস কনফিগার করুন:

একটি `prometheus.yml` কনফিগারেশন ফাইল তৈরি করুন। এই ফাইলটি সেই টার্গেটগুলিকে সংজ্ঞায়িত করে যা প্রোমিথিউস স্ক্র্যাপ করবে এবং অন্যান্য কনফিগারেশন অপশন। একটি বেসিক কনফিগারেশন দেখতে এইরকম হতে পারে:


global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

এই কনফিগারেশন দুটি স্ক্র্যাপ কাজ সংজ্ঞায়িত করে: একটি প্রোমিথিউসের নিজের জন্য (নিজের মেট্রিক স্ক্র্যাপ করা) এবং অন্যটি লোকালহোস্ট পোর্ট 9100 এ চলমান একটি node_exporter এর জন্য। `scrape_interval` নির্দিষ্ট করে প্রোমিথিউস কত ঘন ঘন টার্গেট স্ক্র্যাপ করবে।

4. প্রোমিথিউস শুরু করুন:

আপনি যে ডিরেক্টরি থেকে আর্কাইভটি বের করেছেন সেখান থেকে প্রোমিথিউস এক্সিকিউটেবল চালান:

./prometheus --config.file=prometheus.yml

প্রোমিথিউস শুরু হবে এবং ডিফল্টভাবে পোর্ট 9090 এ শুনবে। আপনি আপনার ব্রাউজারে http://localhost:9090 এ প্রোমিথিউস ওয়েব ইন্টারফেস অ্যাক্সেস করতে পারেন।

গ্রাফানা ইনস্টল করা

1. গ্রাফানা ডাউনলোড করুন:

অফিসিয়াল ওয়েবসাইট থেকে গ্রাফানার সর্বশেষ সংস্করণটি ডাউনলোড করুন: https://grafana.com/grafana/download। আপনার অপারেটিং সিস্টেমের জন্য উপযুক্ত প্যাকেজটি চয়ন করুন।

2. গ্রাফানা ইনস্টল করুন:

আপনার অপারেটিং সিস্টেমের জন্য ইনস্টলেশন নির্দেশাবলী অনুসরণ করুন। উদাহরণস্বরূপ, ডেবিয়ান/উবুন্টুতে:


sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

3. গ্রাফানা শুরু করুন:

গ্রাফানা পরিষেবা শুরু করুন:

sudo systemctl start grafana-server

4. গ্রাফানা অ্যাক্সেস করুন:

গ্রাফানা শুরু হবে এবং ডিফল্টভাবে পোর্ট 3000 এ শুনবে। আপনি আপনার ব্রাউজারে http://localhost:3000 এ গ্রাফানা ওয়েব ইন্টারফেস অ্যাক্সেস করতে পারেন।

ডিফল্ট ইউজারনেম এবং পাসওয়ার্ড হল `admin` এবং `admin`। প্রথম লগইনের সময় আপনাকে পাসওয়ার্ড পরিবর্তন করতে বলা হবে।

প্রোমিথিউসের সাথে গ্রাফানা সংযোগ করা

গ্রাফানাতে প্রোমিথিউস থেকে মেট্রিক ভিজ্যুয়ালাইজ করার জন্য, আপনাকে গ্রাফানাতে প্রোমিথিউসকে ডেটা উৎস হিসাবে কনফিগার করতে হবে।

1. ডেটা উৎস যোগ করুন:

গ্রাফানা ওয়েব ইন্টারফেসে, কনফিগারেশন > ডেটা উৎস এ নেভিগেট করুন এবং ডেটা উৎস যোগ করুন এ ক্লিক করুন।

2. প্রোমিথিউস নির্বাচন করুন:

ডেটা উৎসের প্রকার হিসাবে প্রোমিথিউস নির্বাচন করুন।

3. প্রোমিথিউস সংযোগ কনফিগার করুন:

আপনার প্রোমিথিউস সার্ভারের URL প্রবেশ করুন (যেমন, `http://localhost:9090`)। প্রয়োজন অনুযায়ী অন্যান্য অপশন কনফিগার করুন (যেমন, প্রমাণীকরণ)।

4. সংরক্ষণ করুন এবং পরীক্ষা করুন:

গ্রাফানা প্রোমিথিউসের সাথে সফলভাবে সংযোগ স্থাপন করতে পারে কিনা তা যাচাই করতে সংরক্ষণ করুন এবং পরীক্ষা করুন এ ক্লিক করুন।

গ্রাফানাতে ড্যাশবোর্ড তৈরি করা

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

1. একটি নতুন ড্যাশবোর্ড তৈরি করুন:

গ্রাফানা ওয়েব ইন্টারফেসে, সাইডবারে + আইকনে ক্লিক করুন এবং ড্যাশবোর্ড নির্বাচন করুন।

2. একটি প্যানেল যোগ করুন:

ড্যাশবোর্ডে একটি নতুন প্যানেল যোগ করতে একটি খালি প্যানেল যোগ করুন এ ক্লিক করুন।

3. প্যানেল কনফিগার করুন:


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

এই ক্যোয়ারীটি 5-মিনিটের ব্যবধানে নোড_এক্সপোর্টার দ্বারা সংগৃহীত প্রক্রিয়াগুলি দ্বারা ব্যবহৃত CPU সময়ের পরিবর্তনের হার গণনা করে।

4. ড্যাশবোর্ড সংরক্ষণ করুন:

ড্যাশবোর্ড সংরক্ষণ করতে সেভ আইকনে ক্লিক করুন।

PromQL: প্রোমিথিউস ক্যোয়ারী ভাষা

PromQL হল একটি শক্তিশালী ক্যোয়ারী ভাষা যা প্রোমিথিউসে সঞ্চিত মেট্রিকগুলি পুনরুদ্ধার এবং ম্যানিপুলেট করতে ব্যবহৃত হয়। এটি আপনাকে বিস্তৃত ক্রিয়াকলাপ সম্পাদন করতে দেয়, যার মধ্যে রয়েছে:

PromQL উদাহরণ


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes

(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100

rate(http_requests_total[5m])

কার্যকরভাবে প্রোমিথিউস এবং গ্রাফানা ব্যবহার করার জন্য PromQL শেখা অপরিহার্য। ভাষার একটি বিস্তৃত গাইডের জন্য প্রোমিথিউস ডকুমেন্টেশন দেখুন।

প্রোমিথিউস এবং Alertmanager এর সাথে অ্যালার্টিং

প্রোমিথিউস একটি শক্তিশালী অ্যালার্টিং সিস্টেম সরবরাহ করে যা আপনাকে মেট্রিক মানের উপর ভিত্তি করে নিয়ম সংজ্ঞায়িত করতে দেয়। যখন একটি নিয়মের শর্ত পূরণ হয়, তখন একটি সতর্কতা ট্রিগার হয় এবং Alertmanager বিজ্ঞপ্তি প্রক্রিয়া পরিচালনা করে।

অ্যালার্টিং নিয়ম সংজ্ঞায়িত করা

অ্যালার্টিং নিয়ম `prometheus.yml` কনফিগারেশন ফাইলে সংজ্ঞায়িত করা হয়। CPU ব্যবহার 80% অতিক্রম করলে ট্রিগার হওয়া একটি অ্যালার্টিং নিয়মের একটি উদাহরণ এখানে দেওয়া হল:


rule_files:
  - "rules.yml"

তারপর, `rules.yml` নামের একটি ফাইলে, এইরকম নিয়ম রাখুন:


groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: rate(process_cpu_seconds_total{job="node_exporter"}[5m]) > 0.8
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "উচ্চ CPU ব্যবহার সনাক্ত করা হয়েছে"
      description: "{{ $labels.instance }} এ CPU ব্যবহার 80% এর উপরে"

ব্যাখ্যা:

Alertmanager কনফিগার করা

Alertmanager সতর্কতাগুলির রুটিং এবং বিজ্ঞপ্তি পরিচালনা করে। কোথায় সতর্কতা পাঠানো উচিত তা নির্দিষ্ট করতে আপনাকে Alertmanager কনফিগার করতে হবে (যেমন, ইমেল, স্ল্যাক, পেজারডিউটি)। বিস্তারিত কনফিগারেশন নির্দেশাবলীর জন্য Alertmanager ডকুমেন্টেশন দেখুন।

একটি ন্যূনতম `alertmanager.yml` কনফিগারেশন দেখতে এইরকম হতে পারে:


global:
  resolve_timeout: 5m

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
  receiver: 'web.hook'

receivers:
- name: 'web.hook'
  webhook_configs:
  - url: 'http://localhost:8080/'

এই কনফিগারেশনটি লোকালহোস্ট পোর্ট 8080 এ একটি ওয়েবহুকে সতর্কতা পাঠায়। আপনি স্ল্যাক বা ইমেলের মতো পরিষেবাগুলি ব্যবহার করতে `receivers` বিভাগটি কাস্টমাইজ করতে পারেন।

ব্যবহারিক উদাহরণ এবং ব্যবহারের ক্ষেত্র

প্রোমিথিউস এবং গ্রাফানা বিস্তৃত অ্যাপ্লিকেশন এবং অবকাঠামো উপাদানগুলি নিরীক্ষণের জন্য ব্যবহার করা যেতে পারে। এখানে কিছু ব্যবহারিক উদাহরণ দেওয়া হল:

উদাহরণ: একটি মাইক্রোসার্ভিস আর্কিটেকচার মনিটরিং

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

উন্নত কৌশল এবং সেরা অনুশীলন

প্রোমিথিউস এবং গ্রাফানা থেকে সর্বাধিক সুবিধা পেতে, নিম্নলিখিত উন্নত কৌশল এবং সেরা অনুশীলনগুলি বিবেচনা করুন:

সাধারণ সমস্যাগুলির সমাধান

যত্ন সহকারে পরিকল্পনা এবং বাস্তবায়ন করা সত্ত্বেও, প্রোমিথিউস এবং গ্রাফানা ব্যবহার করার সময় আপনি সমস্যার সম্মুখীন হতে পারেন। এখানে কিছু সাধারণ সমস্যা এবং তাদের সমাধান দেওয়া হল:

বিকল্প মনিটরিং সমাধান

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

আপনার সংস্থার জন্য সেরা মনিটরিং সমাধান আপনার নির্দিষ্ট প্রয়োজনীয়তা এবং বাজেটের উপর নির্ভর করবে।

উপসংহার

অ্যাপ্লিকেশন এবং অবকাঠামোর স্বাস্থ্য এবং কর্মক্ষমতা বজায় রাখার জন্য মেট্রিক্স সংগ্রহ অপরিহার্য। প্রোমিথিউস এবং গ্রাফানা মেট্রিক সংগ্রহ, সংরক্ষণ এবং ভিজ্যুয়ালাইজ করার জন্য একটি শক্তিশালী এবং নমনীয় ওপেন-সোর্স সমাধান সরবরাহ করে। এই গাইডে বর্ণিত মূল ধারণাগুলি বোঝা এবং সেরা অনুশীলনগুলি অনুসরণ করে, আপনি আপনার সংস্থার চাহিদা পূরণ করে এমন একটি শক্তিশালী মনিটরিং সিস্টেম তৈরি করতে প্রোমিথিউস এবং গ্রাফানা ব্যবহার করতে পারেন।

কার্যকর মনিটরিং, সক্রিয় সতর্কতা এবং দ্রুত ঘটনা প্রতিক্রিয়ার সাথে মিলিত হয়ে আধুনিক আইটি অপারেশনের ভিত্তি। প্রোমিথিউস এবং গ্রাফানার মতো সরঞ্জাম গ্রহণ করা সংস্থাগুলিকে তাদের অবস্থান বা শিল্প নির্বিশেষে তাদের ব্যবহারকারীদের নির্ভরযোগ্য এবং কার্যকরী পরিষেবা সরবরাহ করতে সক্ষম করে।