কী কী মনিটর করতে হবে

প্রাইভেট ক্লাউডের জন্য Edge v. 4.17.01

সাধারণত প্রোডাকশন সেট-আপে, প্রাইভেট ক্লাউড ডিপ্লয়মেন্টের জন্য Apigee Edge-এর মধ্যে মনিটরিং মেকানিজম চালু করার প্রয়োজন হয়। এইসব মনিটরিং টেকনিক নেটওয়ার্ক অ্যাডমিনিস্ট্রেটর (বা অপারেটর)-কে কোনও সমস্যা বা ব্যর্থতা সম্পর্কে সতর্ক করে। জেনারেট হওয়া প্রতিটি সমস্যাকে Apigee Edge-এ সতর্কতা হিসেবে রিপোর্ট করা হয়। অ্যালার্ট সম্পর্কে আরও তথ্য পেতে, মনিটরিং সংক্রান্ত পেশাদার পদ্ধতি দেখুন।

সহজ করার জন্য, Apigee কম্পোনেন্টকে প্রধানত দুটি বিভাগে ভাগ করা হয়েছে:

  • Apigee-নির্দিষ্ট Java সার্ভার পরিষেবা – এর মধ্যে ম্যানেজমেন্ট সার্ভার, মেসেজ প্রসেসর, Qpid সার্ভার ও Postgres সার্ভার অন্তর্ভুক্ত।
  • থার্ড-পার্টি পরিষেবা – এর মধ্যে Nginx Router, Apache Cassandra, Apache ZooKeeper, OpenLDAP, PostgreSQL ডেটাবেস ও Qpid পড়ে।

Apigee Edge-এর অন-প্রিমিজ ডেপ্লয়মেন্টে, নিম্নলিখিত সারণীটি আপনাকে মনিটর করতে পারবেন এমন প্যারামিটারগুলির একটি দ্রুত ওভারভিউ প্রদান করে:

কম্পোনেন্ট

সিস্টেম চেক

প্রসেস-লেভেল স্ট্যাটিসটিকস

API-লেভেল চেক

মেসেজ ফ্লো চেক

কম্পোনেন্ট নির্দিষ্ট

Apigee-নির্দিষ্ট Java পরিষেবা

ম্যানেজমেন্ট সার্ভার

?

?

?

মেসেজ প্রসেসর

?

?

?

?

Qpid সার্ভার

?

?

?

Postgres সার্ভার

?

?

?

থার্ড-পার্টি পরিষেবা

Apache Cassandra

?

?

Apache ZooKeeper

?

?

OpenLDAP

?

?

PostgreSQL ডেটাবেস

?

?

Qpid

?

?

Nginx Router

?

?

?

সাধারণত, Apigee Edge ইনস্টল করার পরে, প্রাইভেট ক্লাউড ইনস্টলেশনের জন্য Apigee Edge-এর পারফর্ম্যান্স ট্র্যাক করতে, আপনি নিম্নলিখিত মনিটরিং টাস্কগুলি করতে পারবেন।

সিস্টেম হেল্থ চেক

CPU ব্যবহার, মেমরি ব্যবহার এবং পোর্ট কানেক্টিভিটির মতো সিস্টেমের হেলথ প্যারামিটারগুলি উচ্চতর লেভেলে পরিমাপ করা খুবই গুরুত্বপূর্ণ। সিস্টেমের স্বাস্থ্যের প্রাথমিক বিষয়গুলি জানতে আপনি নিম্নলিখিত প্যারামিটার মনিটর করতে পারেন।

  • সিপিইউ (CPU) ব্যবহার – সিপিইউ (CPU) ব্যবহার সম্পর্কে প্রাথমিক পরিসংখ্যান (ব্যবহারকারী/সিস্টেম/IO অপেক্ষা/নিষ্ক্রিয়) নির্দিষ্ট করে। যেমন, সিস্টেমের দ্বারা ব্যবহৃত মোট সিপিইউ।
  • ফ্রি/ব্যবহৃত মেমরি – বাইট হিসেবে সিস্টেম মেমরি ব্যবহারের পরিমাণ নির্দিষ্ট করে। যেমন, সিস্টেমের ব্যবহার করা ফিজিক্যাল মেমরি।
  • ডিস্ক স্পেসের ব্যবহার – বর্তমান ডিস্ক ব্যবহারের উপর ভিত্তি করে ফাইল সিস্টেম সংক্রান্ত তথ্য নির্দিষ্ট করে। যেমন, সিস্টেমের ব্যবহার করা হার্ড ডিস্ক স্পেস।
  • লোড অ্যাভারেজ – রান করার জন্য অপেক্ষা করা প্রসেসের সংখ্যা নির্দিষ্ট করে ।
  • নেটওয়ার্ক পরিসংখ্যান – নির্দিষ্ট কম্পোনেন্ট সম্পর্কে ট্রান্সমিশন সংক্রান্ত সমস্যার সাথে সাথে নেটওয়ার্ক প্যাকেট এবং/অথবা বাইট ট্রান্সমিট করা এবং গ্রহণ করা।

প্রসেস/অ্যাপ্লিকেশন চেক করা

প্রসেস লেভেলে, আপনি যেসব প্রসেস চলছে সেগুলির সম্পর্কে গুরুত্বপূর্ণ তথ্য দেখতে পাবেন। যেমন, এর মধ্যে মেমরি ও সিপিইউ ব্যবহারের পরিসংখ্যান অন্তর্ভুক্ত যা কোনও প্রসেস বা অ্যাপ্লিকেশন ব্যবহার করে। qpidd, postgres postmaster, java ইত্যাদির মতো প্রসেসের জন্য, আপনি নিম্নলিখিত বিষয়গুলি মনিটর করতে পারবেন:

  • প্রসেস শনাক্তকরণ: নির্দিষ্ট Apigee প্রসেস শনাক্ত করুন। যেমন, আপনি Apigee সার্ভার জাভা প্রসেস আছে কিনা তা মনিটর করতে পারেন।
  • থ্রেড পরিসংখ্যান: কোনও প্রসেস ব্যবহার করে এমন অন্তর্নিহিত থ্রেডিং প্যাটার্ন দেখুন। যেমন, আপনি সর্বোচ্চ থ্রেড সংখ্যা, সব প্রসেসের জন্য থ্রেড সংখ্যা মনিটর করতে পারবেন।
  • মেমরি ইউটিলাইজেশন: সব Apigee প্রসেসের জন্য মেমরি ব্যবহার দেখুন। যেমন, আপনি কোনও প্রসেস দ্বারা ব্যবহৃত হিপ মেমরি ব্যবহার, নন-হিপ মেমরি ব্যবহারের মতো প্যারামিটার মনিটর করতে পারেন।

API-লেভেল চেক

API লেভেলে, আপনি এটি মনিটর করতে পারবেন যে Apigee-এর মাধ্যমে প্রক্সি করা প্রায়শই ব্যবহৃত API কলের জন্য সার্ভার চালু আছে কিনা। যেমন, আপনি ম্যানেজমেন্ট সার্ভার, রাউটার, এবং মেসেজ প্রসেসরে নিম্নলিখিত cURL কমান্ড প্রয়োগ করে API চেক করতে পারেন:

curl http://<host>:<port>/v1/servers/self/up

যেখানে <host> হল Apigee Edge কম্পোনেন্টের IP অ্যাড্রেস। <port> নম্বরটি প্রতিটি Edge কম্পোনেন্টের জন্য নির্দিষ্ট। যেমন:

ম্যানেজমেন্ট সার্ভার: 8080

  • রাউটার: 8081
  • মেসেজ প্রসেসর: 8082
  • ইত্যাদি।

প্রতিটি কম্পোনেন্টের জন্য এই কমান্ড চালানোর ব্যাপারে তথ্য পেতে, নিচে দেওয়া আলাদা আলাদা বিভাগ দেখুন

এই কল "true" ও "false" রিটার্ন করে। সেরা ফলাফল পেতে, আপনি ব্যাকএন্ডে (যেটির সাথে Apigee সফ্টওয়্যার ইন্টার‍্যাক্ট করে) সরাসরি API কলও ইস্যু করতে পারেন, যাতে Apigee সফ্টওয়্যার এনভায়রনমেন্ট বা ব্যাকএন্ডে কোনও সমস্যা আছে কিনা তা দ্রুত নির্ধারণ করা যায়।

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

মেসেজ ফ্লো চেক

মেসেজ ফ্লো প্যাটার্ন/পরিসংখ্যান সম্পর্কে আপনি রাউটার ও মেসেজ প্রসেসর থেকে ডেটা সংগ্রহ করতে পারবেন। এর ফলে আপনি নিম্নলিখিত বিষয়গুলি মনিটর করতে পারবেন:

  • অ্যাক্টিভ ক্লায়েন্টের সংখ্যা
  • উত্তরের সংখ্যা (১০X, ২০X, ৩০X, ৪০X ও ৫০X)
  • কানেক্ট করা যায়নি

এটি আপনাকে API মেসেজ ফ্লোয়ের জন্য ড্যাশবোর্ড প্রদান করতে সাহায্য করে।

মেসেজ প্রসেসরের রাউটার হেলথ চেক

কোন মেসেজ প্রসেসর আশা অনুযায়ী কাজ করছে তা নির্ধারণ করতে রাউটার একটি হেলথ চেক মেকানিজম প্রয়োগ করে। কোনও মেসেজ প্রসেসর ডাউন বা ধীরে কাজ করছে বলে শনাক্ত করা হলে, রাউটার অটোমেটিক মেসেজ প্রসেসরটিকে রোটেট করা থেকে বাদ দিতে পারে। এমনটি ঘটলে, রাউটার /opt/apigee/var/log/edge-router/logs/system.log-এ রাউটার লগ ফাইলে "মার্ক ডাউন" মেসেজ লেখে।

এইসব মেসেজের জন্য আপনি রাউটার লগ ফাইল মনিটর করতে পারবেন। যেমন, রাউটার যদি কোনও মেসেজ প্রসেসরকে রোটেশন থেকে সরিয়ে দেয়, তাহলে সেটি লগ ফাইলে এই ফর্ম্যাটে মেসেজ লেখে:

2014-05-06 15:51:52,159 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now DISCONNECTED. handle = <MP_IP> at 1399409512159

2014-04-17 12:54:48,512 org: env: nioEventLoopGroup-2-2 INFO HEARTBEAT - HBTracker.gotResponse() : No HeartBeat detected from /<MP_IP>:<PORT> Mark Down

যেখানে /<MP_IP>:<PORT> হল IP অ্যাড্রেস এবং মেসেজ প্রসেসরের পোর্ট নম্বর।

পরে রাউটার যদি হেলথ চেক করে এবং দেখে যে মেসেজ প্রসেসর ঠিকমতো কাজ করছে, তাহলে রাউটার অটোমেটিক মেসেজ প্রসেসরকে আবার রোটেট করা শুরু করে দেয়। এছাড়াও, রাউটারটি লগে এই ফর্ম্যাটে একটি "মার্ক-আপ" মেসেজ লেখে:

2014-05-06 16:07:29,054 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now CONNECTED. handle = <IP> at 1399410449054

2014-04-17 12:55:06,064 org: env: nioEventLoopGroup-4-1 INFO HEARTBEAT - HBTracker.updateHB() : HeartBeat detected from /<IP>:<PORT> Mark Up