আমার সার্ভারটি ডাউন বা অফলাইনে রয়েছে তা সনাক্ত করতে স্ক্রিপ্টটি বাশ করুন


17

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

প্রশ্ন: আমার সার্ভারটি ডাউন বা অফলাইন থাকা অবস্থায় এবং কোনও সতর্কতা বার্তা (ইমেল + এসএমএস) প্রেরণ করার জন্য কি কোনও উপায় (আমি বাশ স্ক্রিপ্ট পছন্দ করি)?

উত্তর:


24

আপনার চেক স্ক্রিপ্টটি চালু করার জন্য যদি আপনার একটি পৃথক সার্ভার থাকে তবে সার্ভারটি বেঁচে আছে কি না তা দেখার জন্য এই জাতীয় কিছু একটি সাধারণ পিং পরীক্ষা করবে:

#!/bin/bash
SERVERIP=192.168.2.3
NOTIFYEMAIL=test@example.com

ping -c 3 $SERVERIP > /dev/null 2>&1
if [ $? -ne 0 ]
then
   # Use your favorite mailer here:
   mailx -s "Server $SERVERIP is down" -t "$NOTIFYEMAIL" < /dev/null 
fi

পর্যায়ক্রমে চালনার জন্য আপনি স্ক্রিপ্টটি ক্রোন করতে পারেন।

আপনার যদি মেইলএক্স না থাকে, আপনার যে লাইনটি ইমেল প্রোগ্রাম রয়েছে সেটির সাথে আপনাকে সেই লাইনটি প্রতিস্থাপন করতে হবে এবং সম্ভবত বিকল্পগুলি পরিবর্তন করতে হবে। যদি আপনার ক্যারিয়ার কোনও এসএমএস ইমেল ঠিকানা সরবরাহ করে তবে আপনি সেই ঠিকানায় ইমেলটি প্রেরণ করতে পারেন। উদাহরণস্বরূপ, এটিএন্ডটি দিয়ে আপনি ফোনেম্বার @ txt.att.net এ যদি কোনও ইমেল প্রেরণ করেন তবে এটি আপনার ফোনে ইমেলটি প্রেরণ করবে।

এসএমএস গেটওয়েতে ইমেলের একটি তালিকা এখানে রয়েছে:

http://en.wikipedia.org/wiki/List_of_SMS_gateways

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


আপনি এসএমএস সতর্কতা বার্তা সম্পর্কিত বিস্তারিত করতে পারেন?
মোঃ মাহবুবুর রহমান

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

আমি আমার উত্তরে অ্যাপ্লিকেশন সনাক্তকরণ থেকে দূরে রয়েছি যেহেতু প্রশ্নটি সার্ভারে কী পরিষেবাগুলি চলছে তা নির্দিষ্ট করে নি - তিনি সার্ভার আপ / ডাউন সনাক্তকরণের জন্য বলেছিলেন। এমন শত শত সাধারণ পরিষেবা রয়েছে যা সনাক্ত করা যায় এবং সীমাহীন সংখ্যক কাস্টম অ্যাপ্লিকেশন রয়েছে। দেখে মনে হচ্ছে তাঁর কাছে একটি স্থানীয় পরিষেবা মনিটর রয়েছে (পরিষেবাগুলি) যা পরিষেবাগুলি পর্যবেক্ষণ করে।
জনি

পিং আমার পক্ষে সবই অকেজো। আমার একটি সার্ভার ডাউন আছে তবুও আমি 3 টি প্যাকেটের মধ্যে 3 পেয়েছি এবং চূড়ান্ত ফেরতের মান 0 পাওয়া যায় কীভাবে? স্থানীয় মেশিনটি "গন্তব্য হোস্টটি অ্যাক্সেসযোগ্য" প্যাকেটগুলি ফিরিয়ে দিচ্ছে।
এলাস্টারজি

@ অ্যাস্টায়ারজি - এটি একটি প্রশ্ন হিসাবে আরও ভাল জিজ্ঞাসা করা হবে, একটি মন্তব্যে এর উত্তর দেওয়ার মতো পর্যাপ্ত জায়গা নেই। তবে কেউ প্রথমে অনুরূপ প্রশ্ন জিজ্ঞাসা করেছে কিনা তা দেখতে প্রথমে সাইটটি অনুসন্ধান করুন, আপনি সেখানে নিজের উত্তর খুঁজে পেতে পারেন।
জনি

9

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

এটি যদি ওয়েবসার্ভার হয় তবে এটির মতো দেখতে লাগবে:

#!/bin/bash
wget -qO /dev/null 'http://webserver/some_existing_short_document.html' || {
    echo "Webserver down"
    # another mailer example
    sendemail -s mailserverip -f 'from@localhost' -t 'user@localhost' -u 'Webserver down' -m 'The webserver is down'
}

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

কোনও মেইল ​​সার্ভার চেক করার সাথে একই, তবে ওয়েব পৃষ্ঠার অনুরোধ করার পরিবর্তে আপনি কেবল মেলসভারের মাধ্যমে একটি ইমেল প্রেরণ করেন এবং দেখুন যে আপনি এটি নিজের মেইলবক্সে পেয়েছেন কিনা


আপনি যদি আপনার ইনবক্সে ফরোয়ার্ড করা রুট ইমেলগুলি পেয়ে থাকেন তবে আপনি
ক্রন্টবায়

5

এখানে আমি একই সমস্যার সমাধান করেছি

#!/bin/bash
NOTIFYEMAIL=<your email>
SMSEMAIL=<cell phone number @ sms-gateway>
SENDEREMAIL=alert@localhost
SERVER=http://127.0.0.1/
PAUSE=60
FAILED=0
DEBUG=0

while true 
do
/usr/bin/curl -sSf $SERVER > /dev/null 2>&1
CS=$?
# For debugging purposes
if [ $DEBUG -eq 1 ]
then
    echo "STATUS = $CS"
    echo "FAILED = $FAILED"
    if [ $CS -ne 0 ]
    then
        echo "$SERVER is down"

    elif [ $CS -eq 0 ]
    then
        echo "$SERVER is up"
    fi
fi

# If the server is down and no alert is sent - alert
if [ $CS -ne 0 ] && [ $FAILED -eq 0 ]
then
    FAILED=1
    if [ $DEBUG -eq 1 ]
    then
        echo "$SERVER failed"
    fi
    if [ $DEBUG = 0 ]
    then
        echo "$SERVER went down $(date)" | /usr/bin/mailx -s "$SERVER went down" -r "$SENDEREMAIL" "$SMSEMAIL" 
        echo "$SERVER went down $(date)" | /usr/bin/mailx -s "$SERVER went down" -r "$SENDEREMAIL" "$NOTIFYEMAIL" 
    fi

# If the server is back up and no alert is sent - alert
elif [ $CS -eq 0 ] && [ $FAILED -eq 1 ]
then
    FAILED=0
    if [ $DEBUG -eq 1 ]
    then
        echo "$SERVER is back up"
    fi
    if [ $DEBUG = 0 ]
    then
        echo "$SERVER is back up $(date)" | /usr/bin/mailx -s "$SERVER is back up again" -r "$SENDEREMAIL" "$SMSEMAIL"
        echo "$SERVER is back up $(date)" | /usr/bin/mailx -s "$SERVER is back up again" -r "$SENDEREMAIL" "$NOTIFYEMAIL"
    fi
fi
sleep $PAUSE
done

আমার ম্যাক চালানোর জন্য আমাকে মানিয়ে নিতে হয়েছিল /usr/bin/mail -s "$SERVER went down" "$SENDEREMAIL" "$SMSEMAIL"
মাইকিএলএল

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

1

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


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