কীভাবে কোনও পরিষেবা নিরীক্ষণ করবেন এবং লিনাক্সে বন্ধ হয়ে গেলে পুনরায় চালু করবেন


24

আসলে আমি শেল স্ক্রিপ্টগুলি ব্যবহার করা উচিত কিনা, বা ইতিমধ্যে কিছু উপায় আছে কিনা তা আমি নিশ্চিত নই। তবে আমরা যে কোনও পদ্ধতির ব্যবহার করি না কেন, আমি সর্বদা একটি পরিষেবা চালিয়ে যেতে চাই।

iptablesউদাহরণ হিসাবে বলা যাক । তাহলে ..

  • যখনইiptables সেবা stoppedবা (অন্য কথায়) চলমান না, আমি এটা হতে চান started(অথবা restartedস্বয়ংক্রিয়ভাবে) .. যখনই এটি বন্ধ (অথবা চলমান না)।
  • আরও সাধারণ কথায়, আমি একটি পরিষেবা সর্বদা চালিয়ে এবং চালিয়ে যেতে চাই ।

( রিয়েল-টাইম চেকিং করা যদি সমস্যা হয় তবে আমি যাচাই করার জন্য একটি ন্যায্য ফ্রিকোয়েন্সি দিতে পারি So তাই বলে রাখি , প্রতি 5 মিনিটে)

আমি কেবল ভাবতে পারি, ক্রোন ট্যাব সহ শেল স্ক্রিপ্ট ব্যবহার করা।

  • দয়া করে কোনও স্মার্ট সমাধান আছে?

ধন্যবাদ!


আপনার এটা করা উচিৎ না. মনে করুন কোনও পরিষেবা দু'টি কনফিগার করা আছে, আপনার কৌশলটি কী অর্জন করবে? Retrials একটি অসীম তালিকা। পরিবর্তে আপনার একটি ক্রন্টব স্ক্রিপ্ট লিখতে হবে যা alertsআপনি কাজ করছেন না এমন কিছুতে।
মারিয়াসমাতুটিয়া

মূল প্রশ্নের জন্য আমি কেবল সোজা সমাধান সম্পর্কে কৌতূহলী। এবং এছাড়াও, আমার একটি পরিষেবা রয়েছে যা restartedযখনই কোনও কারণে বন্ধ হয়ে যায় কেবল তখনই সহজ হওয়া দরকার । পুনরায় চালু করতে সমস্যা নেই।
夏 期 劇場

1
আপনার নিজস্ব প্রস্তাবিত সমাধান যথেষ্ট স্মার্ট। আপনি যদি এটি সঠিকভাবে ব্যবহার করেন (পরিষেবা ইতিমধ্যে চালু থাকলে অবিলম্বে প্রস্থান করুন, আপনাকে সতর্ক করুন যে পরিষেবাটি বন্ধ হয়ে গেছে যাতে আপনি এটি ঠিক করতে পারেন, এবং আরও ....) এটি সহজতম উপায়। একটি পরিষেবা যা স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় এটি একটি সমস্যাযুক্ত পরিষেবা, সুতরাং অবশেষে আপনার এটি ঠিক করা উচিত, তবে অন্যথায় অস্থায়ী প্যাচ, ক্রোন স্ক্রিপ্ট বা অন্য কোনও অতি-সরল ডেমন যে বেশিরভাগ সময় ঘুমায় তা কাজটি ঠিকঠাক করবে। Mmonit.com/monit এর মতো কিছু সরঞ্জাম রয়েছে তবে আমি মনে করি যে শেষ পর্যন্ত তারা সকলেই একইরকম দৃষ্টিভঙ্গি ব্যবহার করে

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

উত্তর:


25

মার্চ 2018 আপডেট করুন

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

নীচে উত্তর উত্তরোত্তর জন্য সংরক্ষিত।


উপরের মনিট উত্তরটি বৈধ, তবে আমি ভেবেছিলাম কিছু বিকল্প উল্লেখ করব:

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

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

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

তবে আপনি যা কিছু করুন দয়া করে দয়া করে শেল স্ক্রিপ্ট ব্যবহার করবেন না। এই পদ্ধতির সাথে অনেক কিছুই ভুল আছে!


কিভাবে sysvinit দিয়ে এটি করতে?
ঘোড়াওয়ালা

12

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

যাইহোক, একটি ইউটিলিটি যা monitচাইবে তা করবে। আপনি যদি ডেবিয়ান ব্যবহার করেন তবে এটি খুব apt-get install monitদূরে। এটি সম্পর্কে কিছুটা জড়িত তবে খুব নমনীয়।


3

সতর্কতা তৈরি করতে এবং পরিষেবাটি চালু না থাকলে পরিষেবা শুরু করতে আমরা এই সাধারণ স্ক্রিপ্টটি ব্যবহার করছি, আপনি আরও পরিষেবা যুক্ত করতে পারেন ..

 file name: uptime.sh

 #!/bin/bash
 #service monitoring
 /bin/netstat -tulpn | awk '{print $4}' | awk -F: '{print $4}' | grep ^80$ > /dev/null   2>/dev/null
 a=$(echo $?)
 if test $a -ne 0
 then
 echo "http service down" | mail -s "HTTP Service DOWN and restarted now" root@localhost
 /etc/init.d/httpd start > /dev/null 2>/dev/null
 else
 sleep 0
 fi
 /bin/netstat -tulpn | awk '{print $4}' | awk -F: '{print $4}' | grep ^53$ > /dev/null   2>/dev/null
 b=$(echo $?)
 if test $b -ne 0
 then
 echo "named service down" | mail -s "DNS Service DOWN and restarted now" root@localhost
 /etc/init.d/named start > /dev/null 2>/dev/null
 else
 sleep 0
 fi

 Cron setup:
 */5 * * * * /root/uptime.sh > /dev/null 2>/dev/null

মারিয়াসমাতুটিয়ার কথাটি সঠিক তবে আমরা আমার সার্ভারে এইচটিটিপিডি এবং ডিএনএস পরিষেবা নিরীক্ষণের জন্য একটি সহজ স্ক্রিপ্ট করেছি, এটি চলমান জরিমানা। যখনই পরিষেবাটি নিচে থাকবে তখন স্ক্রিপ্টটি পরিষেবাটি পুনরায় আরম্ভ করবে এবং আমাদেরকে একটি সতর্কতা তৈরি করবে, এটি পরিষেবাটি সম্পর্কে আমরা প্রচুর সতর্কতা / মেল পাই, তারপরে আমরা এটিতে তদন্ত করতে পারি।
রঞ্জিতকুমার টি

1

ডেস্কটপের জন্য বিকল্প সমাধান (কেডিএ):

আমরা অ্যাপলেট / উইজেট সার্ভারের স্থিতি সহ এএএ পরিষেবা দেখতে পারি ... এটি ইনস্টল করার পরে আপনার সার্ভিসটি নিরীক্ষণের জন্য উইজেটে কেবল একটি আদেশ যোগ করুন

উদাহরণ: systemctl status httpd.service

কেডিএ 4 সংস্করণ: https://store.kde.org/content/show.php?content=101336

কেডিএ 5 সংস্করণ: https://store.kde.org/p/1190292/


0

আমি জানি প্রশ্নটি জিজ্ঞাসা করার পরে বেশ কয়েক বছর হয়ে গেছে। তবে সিস্টেমেড (বেশিরভাগ সেন্টোস এবং আরএইচএল সহ উপলব্ধ) এর সাহায্যে আপনি সার্ভিস বন্ধ থাকলে চেক এবং পুনরায় চালু করতে ক্রোন দিয়ে এই বাশ কমান্ডটি চালাতে পারেন।

#!/bin/bash

service=$@
/bin/systemctl -q is-active "$service.service"
status=$?
if [ "$status" == 0 ]; then
    echo "OK"
else
    /bin/systemctl start "$service.service"
fi

এটি আপনার বিন ডিরেক্টরিতে সংরক্ষণ করুন এবং মনিটরের মতো নাম দিন। এটি যথাযথ ফাইল অনুমতি দিন। তারপর এটি চালান

sudo monitor redis

আপনি যদি redis পরিষেবা চেক করতে চান এবং প্রয়োজন হলে পুনরায় চালু / শুরু করুন।

সবশেষে আপনার ক্রোন কাজের সাথে এটি যুক্ত করুন।

আশা করি এটি সাহায্য করবে


0

ইনি / এসভিসি তদারকির দীর্ঘ তালিকায় যুক্ত করতে এস -6-এর সাব-ডিরেক্টরি হিসাবে ব্লকের একটি নতুন বাচ্চা রয়েছে, 66 66, এটি এস, সার্ভিস ম্যানেজমেন্ট এবং দ্রুত, হালকা, ব্যবহারকারী বান্ধব উপায়ে লগ ইন পরিচালনা করে। এটি ওবারুন-লিনাক্স https://web.obarun.org/software এর অফিসিয়াল ডকুমেন্টেশনের লিঙ্ক is

এটি কীভাবে এই software software সফ্টওয়্যারটি ব্যবহার করবেন এবং এস http: // http://sysdfree.wordpress.com/266 টি উপলব্ধি করবেন তার একটি FAQ http: //

যেহেতু এর স্থিতিশীল রিলিজটি 4.20 -> 5.0 থেকে কার্নেল পরিবর্তনের সাথে সম্পর্কিত কেবল একটি বাগ পাওয়া গেছে, অন্য সমস্ত প্রতিবেদিত সমস্যাগুলি নতুন কিছু শেখার সাথে সম্পর্কিত ছিল। এর থেকে যদি পরিষেবা পরিচালনকে আরও সহজ হতে হয় তবে এমএস-উইন্ডোজ (লিনাস নিষেধ) এ স্যুইচ করা ভাল। এটি কীভাবে কাজ করতে পারে তা বাস্তব জীবনে দেখার জন্য কেবল একটি ওবারুন লাইভ.ইসো ডাউনলোড করতে হবে এবং এটি খেলতে হবে। পরিষেবাগুলি ইনস্টল করুন এবং তাদের-66-স্ক্রিপ্টগুলি এগুলি সক্ষম করে, তাদের মেরে ফেলবে, তাদের লগগুলি দেখুন, তাদের থামান এবং তাদের (সক্ষম করার সময়) শুরু করুন, গুচ্ছ পরিষেবাদিগুলিকে একটি গাছে পরিণত করুন এবং পরিষেবার গাছ পাবেন এবং সমস্ত একসাথে বন্ধ করুন, পৃথকভাবে ব্যবহারকারী-স্তরের পরিষেবাগুলি রাখুন সিস্টেম থেকে। এটি এস -6 যা ভাল করে তা করে এবং ব্যবহারকারীর পক্ষে এস -6 এর অধীনে বুলেটপ্রুফ সিস্টেমটি ব্যবহার করা সহজ করে তোলে।

চিত্র ডাউনলোডগুলি এখানে পাওয়া যাবে: https://web.obarun.org/index.php?id=74 এমডি 5 ফাইল চেক করুন https://repo.obarun.org/iso/

আরম্ভ এবং পরিষেবা পরিচালনা ছাড়াও এস 6/66 সিস্টেমে অন্য কোনও কিছুর সাথে কোনও নির্ভরতা নেই। এটি বেস সিস্টেমের একটি স্তর যা বাকী সফ্টওয়্যারটি তাদের নিজস্ব, init / svc-mgmt অন্ধে কাজ করে। সমস্ত এস and এবং C 66 সিতে লিখিত এবং এটি লিনাক্স নির্দিষ্ট নয়, বা গ্লিবিক নির্দিষ্ট নয়। স্কারনেটের (এস a লেখক) সার্ভারগুলি প্রায় এক দশক ধরে মসল কাস্টম বিল্ট সিস্টেমে অনেক বিরাম ছাড়াই চলছে। আলপাইন, ভয়েড এবং অ্যাডেলি বর্তমানে তাদের সংগ্রহস্থলগুলিতে এস 6 সফ্টওয়্যার রয়েছে, অ্যাডেলি এটি ডিফল্টরূপে পরিষেবা তদারকির জন্য ব্যবহার করে। অকার্যকর এখন 66 বহন করে। আমি জানি না যে কেউ এসএক্সএক্সবিএসডি বা অন্যান্য এক্সএক্সআইএক্স সিস্টেমে এস -6 পোর্ট করেছে কি না এবং প্রসারিত করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.