এই বিস্তারিত গাইড আপনাকে ধাপে ধাপে dstat ব্যবহার করে লিনাক্স (অথবা ইউনিক্স) সার্ভার মনিটর করা শিখাবে।
যদি আপনার দায়িত্বে অফিস বা ডেটা সেন্টারে একটি লিনাক্স সার্ভার থাকে, তবে আপনি যতটা সম্ভব ১০০% আপটাইম বজায় রাখতে চান। সেক্ষেত্রে সিস্টেম কেমন চলছে তা নজরদারি করতে হয়। সঠিকভাবে বললে, সিস্টেম সুন্দরভাবে চালানোর জন্য যে সব রিসোর্স দায়ী—মেমরি, সিপিইউ, ডিস্ক ইউসেজ ইত্যাদি—তাদের পর্যবেক্ষণ করতে হয়। সাধারণত লিনাক্স/ইউনিক্স-এ দেওয়া টুলগুলোর কম্বিনেশন ব্যবহার করা হয়: free, top, vmstat ইত্যাদি। আজ আমি আপনাকে এমন একটি টুল দিই যা সেই সব টুলের তথ্য একসাথে এক জায়গায় দেয়—Dstat। এই কমান্ড লাইন টুলের ডেভেলপার ড্যাগ ویअার্স (Dag Wieers) এটিকে "vmstat, iostat, netstat এবং ifstat-এর বহুমুখী প্রতিস্থাপন" বলে অভিহিত করেছেন। তিনি আরও বলেছেন, "Dstat তাদের কিছু সীমাবদ্ধতা দূর করেছে এবং কিছু এক্সট্রা ফিচার যোগ করেছে।" আমার কাছে Dstat হলো সব কমান্ড লাইন সিস্টেম মনিটরিং টুলের জননী। এটি ইনস্টল করা সহজ, ব্যবহার করা সহজ, সহজে টুইক করা যায়, এবং এটি এমন রিপোর্ট জেনারেট করে যা স্প্রেডশিটে ইম্পোর্ট করে গ্রাফ আঁকা যায়—বসকে ইমপ্রেস করার জন্য পারফেক্ট!
Dstat ইনস্টলেশন
Dstat ইনস্টলার ডাউনলোড করে শুরু করুন। ব্রাউজারে Dstat প্রজেক্টের হোমপেজে যান: https://dag.wieers.com/home-made/dstat/। পেজের নিচে ডাউনলোড সেকশনে আপনার লিনাক্স ডিস্ট্রিবিউশনের জন্য লেটেস্ট ভার্সন ডাউনলোড করুন। রেড হ্যাট এন্টারপ্রাইজ লিনাক্স ৪-এ ইনস্টল করার উদাহরণ:
# wget https://dag.wieers.com/rpm/packages/dstat/dstat-0.6.6-1.el4.rf.noarch.rpm
এখন Dstat ইনস্টল করুন:
# rpm -Uvh dstat-0.6.6-1.el4.rf.noarch.rpm
এরর ছাড়া ইনস্টল হলে তাই হয়ে গেলো—Dstat রেডি। যদি ডিপেন্ডেন্সি এরর আসে তবে রিকোয়ার্ড প্যাকেজ ইনস্টল করে আবার চেষ্টা করুন। Dstat-এ অনেক ডিপেন্ডেন্সি নেই, তাই সমস্যা হওয়ার চান্স কম।
Dstat ব্যবহার
Dstat ইনস্টল হলে টার্মিনাল থেকে চালান:
# dstat
আউটপুটের উদাহরণ (বের হতে ctrl+c চাপুন):
# dstat
----total-cpu-usage---- -disk/total -net/total- --paging-- --system--
usr sys idl wai hiq siq|_read write|_recv _send|__in_ _out_|_int_ _csw_
7 1 91 1 0 0| 0 0 | 0 0 | 0 0 | 0 0
1 0 99 0 0 0| 0 0 | 0 0 | 0 0 |1051 1945
0 0 100 0 0 0| 0 12k|2269B 11.2k| 0 0 |1031 1923
1 0 99 0 0 0| 0 40k| 0 0 | 0 0 |1078 2235
0 0 100 0 0 0| 0 16k|6027B 21.5k| 0 0 |1008 2219
Dstat-এ অনেক অপশন রয়েছে। যেমন, শুধু সিপিইউ, ডিস্ক, ও নেটওয়ার্ক দেখতে চাইলে:
# dstat -CDN
আরো অপশন জানতে হেল্প দেখুন:
# dstat -h
অপশনগুলো এক্সপেরিমেন্ট করুন। ডিফল্ট ইন্টারভাল ২ সেকেন্ড। ইন্টারভাল পরিবর্তন করতে (যেমন ১০ সেকেন্ড):
# dstat 10
এগরিগেটেড আপডেট পেতে (প্রতি ১০ সেকেন্ডে নতুন লাইন, কিন্তু লাইনটি প্রতি সেকেন্ড আপডেট হবে):
# dstat 3 5
এটি ৩ সেকেন্ড ইন্টারভালে ৫ বার আপডেট দেবে।
CSV আউটপুট দিয়ে গ্রাফ বানানো
Dstat-র সবচেয়ে উপযোগী ফিচার হলো আউটপুট এক্সপোর্ট। সেশন আউটপুট কমা-সেপারেটেড ফাইলে লিখা যায়, যা পরে এক্সেল বা ওপেন অফিসে ইম্পোর্ট করে গ্রাফ বানানো যায়:
# dstat --output /tmp/dstat_data.csv -CDN
এই কমান্ড চালিয়ে আপনার অ্যাপ্লিকেশন বা টেস্টিং চালান। শেষে ctrl+c দিয়ে বন্ধ করুন। dstat_data.csv ফাইলটি স্প্রেডশিটে খুলে কাঙ্ক্ষিত কলামগুলো প্লট করুন।
ইমেইলে রিপোর্ট পাওয়া
হয়তো আপনি”一정 সময় সার্ভার পারফরম্যান্স পর্যবেক্ষণ করতে চান। একটি ব্যাকগ্রাউন্ড প্রসেস সেটআপ করুন যা নির্দিষ্ট ইন্টারভালে রিডিং নেবে, রিপোর্ট জেনারেট করবে, এবং আপনাকে মেইল করবে। এটি স্ট্রেস-টেস্টের সময় খুব কাজে আসে। নিচের স্ক্রিপ্ট ৩ ঘণ্টা dstat চালাবে, প্রতি ৩০ সেকেন্ডে ডেটা নেবে, এবং me@myemailid.com-এ মেইল করবে:
#!/bin/bash dstat --output /tmp/dstat_data_mail.csv -CDN 30 360 mutt -a /tmp/dstat_data_mail.csv -s "Dstat Report for 3 hour run" me@myemailid.com < /dev/null
এই স্ক্রিপ্টটি dstat_script.sh নামে সেভ করুন, এক্সিকিউটেবল পারমিশন দিন, এবং ব্যাকগ্রাউন্ড প্রসেস হিসেবে চালান:
# chmod +x dstat_script.sh
# nohup ./dstat_script.sh &
হয়ে গেলো! এখন রান কমপ্লিট হলে আপনাকে রিপোর্ট মেইল আসবে। চাইলে এটি দৈনিক ক্রন জব হিসেবে শিডিউল করুন যাতে প্রতিদিন ডেটা পান।
Dstat পারফরম্যান্স মনিটরিং ও ডিবাগিং-এ অত্যন্ত শক্তিশালী টুল। ডেটার গ্র্যানুলারিটি, ফ্রিকোয়েন্সি, এবং প্রকৃতি সম্পূর্ণ আপনার হাতেই। Dstat আপনাকে জানতে দেয় আপনার সার্ভারে কী ঘটছে। বুদ্ধিমানীपूর্বক ব্যবহার করলে এটি আপনার অনেক স्लीপলেস রাত বাঁচাতে পারে।