সুচিপত্র:

লিনাক্স সার্ভারের জন্য সার্ভিস মনিটর স্ক্রিপ্ট: 4 টি ধাপ
লিনাক্স সার্ভারের জন্য সার্ভিস মনিটর স্ক্রিপ্ট: 4 টি ধাপ

ভিডিও: লিনাক্স সার্ভারের জন্য সার্ভিস মনিটর স্ক্রিপ্ট: 4 টি ধাপ

ভিডিও: লিনাক্স সার্ভারের জন্য সার্ভিস মনিটর স্ক্রিপ্ট: 4 টি ধাপ
ভিডিও: Chrome Browser এর ৭টি ট্রিকস্, যা সবারই জানা দরকার | Google Chrome Tips and Tricks Bangla 2024, নভেম্বর
Anonim
লিনাক্স সার্ভারের জন্য সার্ভিস মনিটর স্ক্রিপ্ট
লিনাক্স সার্ভারের জন্য সার্ভিস মনিটর স্ক্রিপ্ট

একটি স্থিতিশীল, সর্বদা চলমান সিস্টেম থাকা, এমনকি যদি আপনি লিনাক্স ব্যবহার করেন তবে এটি একটি কঠিন কাজ হতে পারে।

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

ধাপ 1: Systemd দ্বারা প্রদত্ত পদ্ধতি ব্যবহার করা

আপনি হয়তো ইতিমধ্যেই জানেন, অধিকাংশ আধুনিক লিনাক্স অপারেশন সিস্টেম systemd ব্যবহার করছে।

যদি আপনি systemd এর সাথে পরিচিত না হন, এটি উইকিপিডিয়া অনুসারে:

"… ইউনিক্স সিস্টেম ভি বা বার্কলে সফটওয়্যার ডিস্ট্রিবিউশন (বিএসডি) ইনিট সিস্টেমের পরিবর্তে ব্যবহারকারীর স্থান বুটস্ট্র্যাপ করতে এবং পরবর্তীকালে সমস্ত প্রক্রিয়া পরিচালনা করতে লিনাক্স বিতরণে ব্যবহৃত একটি init সিস্টেম। …"

অনেক লোক এখনও যুক্তি দিচ্ছে যে কেন এই পুরানো ইনিস্ট সিস্টেমকে এই জটিল প্রক্রিয়া ব্যবস্থাপনা ব্যবস্থার সাথে প্রতিস্থাপন করা প্রয়োজন ছিল, তবে নিম্নলিখিত লিঙ্কে কেউ একটি ভাল ব্যাখ্যা খুঁজে পেতে পারে:

www.tecmint.com/systemd-replaces-init-in-l…

সবচেয়ে গুরুত্বপূর্ণ উন্নতি হবে যে এটি init এর ক্রমবর্ধমান পদ্ধতির পরিবর্তে বুটের সময়ে সমান্তরাল এবং সমান্তরাল প্রক্রিয়াকরণের কারণে এটি init এর চেয়ে দ্রুত সিস্টেম আনতে সক্ষম

Systemd এর গভীরতায় না গিয়ে, systemd- এ একটি প্রক্রিয়া যুক্ত করার জন্য, আপনাকে অবশ্যই একটি পরিষেবা ফাইল তৈরি করতে হবে। এই ধরনের ফাইলের সিনট্যাক্স খুব সাধারণ থেকে একেবারে জটিল পর্যন্ত হতে পারে এবং আমরা বিস্তারিত বিবরণে যাব না। একটি মৌলিক.service ফাইল থাকার জন্য, এটি নিম্নলিখিত এন্ট্রিগুলি ব্যবহার করার জন্য যথেষ্ট:

বিবরণ usr/sbin/application stopRestart = সবসময় [Install] WantedBy = multi-user.target

এগুলিকে application.service ফাইলে/lib/systemd/system ফোল্ডারে রাখুন।

এই বিকল্পগুলির প্রতিটি কী করে তা নীচের লিঙ্কে ব্যাখ্যা করা হয়েছে:

access.redhat.com/documentation/en-US/Red_…

আপনার আবেদন শুরু করার জন্য, নিম্নলিখিত কমান্ডটি ইস্যু করুন:

sudo systemctl start application.service

দ্রষ্টব্য:.service এক্সটেনশন বাদ দেওয়া যেতে পারে।

আবেদন বন্ধ করতে:

sudo systemctl stop application.service

যদি কনফিগারেশন ফাইল পরিবর্তন করা হয় এবং আপনি সেটিংস পুনরায় লোড করতে চান:

sudo systemctl reload application.service

অ্যাপ্লিকেশনটি পুনরায় চালু করতে:

sudo systemctl restart application.service

বুট এ স্বয়ংক্রিয় শুরু সক্রিয় করতে:

sudo systemctl application.service সক্ষম করে

যদি এটি সক্ষম করা হয়, তাহলে systemd প্রসেস ম্যানেজার সিস্টেম ফাইল দ্বারা প্রদত্ত সেটিংসের উপর ভিত্তি করে অ্যাপ্লিকেশনটি শুরু করার চেষ্টা করবে।

এটি নিষ্ক্রিয় করতে, উপরের মতো একই কমান্ডটি ব্যবহার করুন, তবে 'অক্ষম' প্যারামিটার সহ।

যদি আপনি Restart = সর্বদা পরিষেবা ফাইলে রাখেন, তাহলে systemd প্রক্রিয়াটি পর্যবেক্ষণ করবে এবং যদি এটি প্রক্রিয়া তালিকায় না পাওয়া যায়, তাহলে এটি স্বয়ংক্রিয়ভাবে পুনরায় চালু করার চেষ্টা করবে।

যদি আপনি বসান

রিস্টার্ট সেক = 30

পুনartসূচনা নির্দেশের পরে, প্রক্রিয়াটি পুনরায় চালু করার চেষ্টা করার আগে এটি 30 সেকেন্ডের জন্য অপেক্ষা করবে। এটি কার্যকর হতে পারে, কারণ একটি ব্যর্থ পরিষেবা/অ্যাপ্লিকেশনের ক্রমাগত পুনartসূচনা প্রচেষ্টা সিস্টেমে উচ্চ চাহিদা সৃষ্টি করতে পারে (লেখার ত্রুটি লগ ইত্যাদি)

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

এখানে এই নির্দেশযোগ্য স্ক্রিপ্টগুলি কাজে আসবে।

ধাপ ২: সার্ভিস চেকার স্ক্রিপ্ট কনফিগার এবং ব্যবহার করা

যদি আপনার চলমান প্রক্রিয়া/পরিষেবার আরো নিয়ন্ত্রণের প্রয়োজন হয়, তাহলে এই স্ক্রিপ্টগুলি সহায়ক হবে, নিশ্চিতভাবে।

যেহেতু কোডটি কিছুটা বড়, এটি গিথুব এ আপলোড করা হয়েছে এবং নিম্নলিখিত সংগ্রহস্থলের অধীনে পাওয়া যাবে:

github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh

পুরো প্যাকেজের 'হৃদয়' হল

checkService.sh

এটি ব্যবহার করার আগে, আপনাকে অবশ্যই পরিষেবা ফোল্ডারে সম্পূর্ণ পথটি প্রতিস্থাপন করতে হবে। এটি স্ক্রিপ্টের শুরুতে পাওয়া যাবে।

স্ক্রিপ্টটি বেশ কয়েকটি প্রক্রিয়া পর্যবেক্ষণ করতে পারে এবং অতিরিক্ত কাজ সম্পাদন করতে পারে, যেমনটি নীচে বর্ণিত হয়েছে:

এটি.serv বা.check এক্সটেনশানসমূহ /সার্ভিস সাবফোল্ডার থেকে প্রতিটি ফাইলের মধ্য দিয়ে যায় এবং 'অ্যাপ্লিকেশন' নামে একটি সক্রিয় প্রক্রিয়া আছে কিনা তা পরীক্ষা করবে।

যদি কোনও অ্যাপ্লিকেশনের জন্য '.check' ফাইল না থাকে, তবে শুধুমাত্র application.serv ফাইল:

যদি প্রক্রিয়াটি সক্রিয় থাকে, তাহলে এটি প্রক্রিয়াটিকে সক্রিয় হিসাবে বিবেচনা করবে।

যদি প্রক্রিয়াটি নিষ্ক্রিয় হয়, তাহলে এটি নিম্নলিখিত কমান্ডটি ইস্যু করে পরিষেবাটি পুনরায় চালু করবে:

systemctl রিস্টার্ট অ্যাপ্লিকেশন

যদি.serv ফাইলটি খালি থাকে!

যদি.serv ফাইলটি খালি না থাকে এবং এক্সিকিউটেবল অধিকার থাকে, তাহলে এটি একটি সাধারণ BASH স্ক্রিপ্ট হিসাবে চালানোর চেষ্টা করবে।

পরিষেবাটি পুনরায় চালু করার পাশাপাশি অতিরিক্ত কিছু করতে হলে এটি কার্যকর।

উদাহরণস্বরূপ, spamd.serv ফাইলে, উপরের রেপো থেকে, যদি স্প্যামড সার্ভিসটি মারা যায়, তাহলে স্প্যামাসাসিন পরিষেবাটি পুনরায় চালু করা প্রয়োজন, যা স্প্যামড পুনরায় চালু করবে। শুধু স্প্যামড পুনরায় চালু করা যথেষ্ট হবে না।

এই ধরনের সার্ভ ফাইলের বিষয়বস্তু প্রয়োজন অনুযায়ী সম্পাদনা করতে পারে।

আরেকটি উদাহরণ হল pcscd.serv ফাইল। এই ক্ষেত্রে অন্যান্য বেশ কয়েকটি প্রক্রিয়া পুনরায় চালু/হত্যা করা হয়েছিল।

যদি কোনও চেক ফাইল থাকে, প্রক্রিয়াটি চলছে কিনা তা যাচাই করার পরে, এটি অতিরিক্ত চেক করার জন্য এই স্ক্রিপ্ট ফাইলটিও চালাবে।

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

আরেকটি উদাহরণ হবে মিডিয়াটম্ব ডিএলএনএ পরিষেবা।

এটি একটি ছোট সার্ভার যা DLNA ক্লায়েন্টদের ভিডিও/অডিও সামগ্রী প্রদান করে এবং নেটওয়ার্কে নিজেই সম্প্রচার করে। কখনও কখনও পরিষেবা স্থগিত থাকে এবং এটি আর আবিষ্কার করা যায় না, তবে প্রক্রিয়াটি এখনও সক্রিয় থাকবে। পরিষেবাটি আবিষ্কার-সক্ষম কিনা তা পরীক্ষা করার জন্য, gssdp-discover নামক CLI ইউটিলিটি ব্যবহার করা হয়েছিল। DLNA সার্ভার যাচাই করে পুরো কোডটি একটি mediatomb.check স্ক্রিপ্টের ভিতরে রাখা হয়েছিল।

এই কিভাবে আপনি.serv এবং.check ফাইল ব্যবহার করতে পারেন তার কয়েকটি উদাহরণ।

একটি নতুন পরিষেবা পর্যবেক্ষণ করার জন্য, আপনাকে অবশ্যই একটি

যদি শুধুমাত্র প্রক্রিয়ার উপস্থিতি পরীক্ষা করা হয় যথেষ্ট, তাহলে একটি খালি.serv ফাইল যথেষ্ট হবে। যদি অতিরিক্ত চেক করতে হয়, তাহলে একটি.check ফাইল তৈরি করতে হবে এবং কাজটি করার জন্য একটি ছোট স্ক্রিপ্ট লিখতে হবে।

অবশ্যই,.sh স্ক্রিপ্টটি পর্যায়ক্রমে চালাতে হবে, তাই এর জন্য একটি ক্রন কাজও তৈরি করতে হবে:

#প্রতি 5 মিনিটে চলমান পরিষেবাগুলি পরীক্ষা করুন */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null

ধাপ 3: চূড়ান্ত চিন্তা

আমি আশা করি আপনি এই প্যাকেজটি কাজে লাগাবেন কারণ এটি লিনাক্স প্রক্রিয়ার ব্যাপকভাবে নজরদারি করতে পারে এবং আশা করি আপনার পরিষেবার ডাউনটাইম কমিয়ে দেবে।

যদি আপনি নতুন তৈরি করেন, তাহলে গিথুব -এ অতিরিক্ত স্ক্রিপ্ট আপলোড করুন। শুধু আমাকে জানান এবং আমি আপনাকে অবদানকারী হিসাবে যোগ করব।

প্রস্তাবিত: