الصفحة الرئيسية » howto » برنامج Hard Drive Script Monitor لخوادم لينكس بلا رأس

    برنامج Hard Drive Script Monitor لخوادم لينكس بلا رأس

    تحتوي محركات الأقراص الصلبة الحديثة على آلية داخلية تسمى S.M.A.R.T. يمكن من خلالها معرفة متى يكون القرص الصلب على وشك الفشل. ألن يكون لطيفًا من الخادم لإرسال بريد إلكتروني إليك قبل هذا الفشل?

    نظرة عامة

    تستخدم برامج مثل "mdadm" (لإدارة البرامج RAID) و "Palimpsest Disk Utility" (المستخدمة في Ubuntu LiveCD) معلومات S.M.A.R.T لإعلامك عندما يكون القرص على وشك أو قد فشل. لكن على خادم بلا رأس (لا واجهة مستخدم رسومية) لا توجد خدمة ستعلمك بالموت المعلق قبل فوات الأوان. علاوة على ذلك ، كيف يمكنك معرفة ذلك دون تسجيل الدخول يدويًا إلى الخادم?

    هذا البرنامج النصي ، عند تشغيله مرة واحدة في اليوم مع cron ، سيتم تنبيهه إذا وصل أي عدد من المقاطع التالفة للقرص الصلب في النظام إلى الحد الأدنى بشكل متعمد ثم عتبة القرص "سيئًا" ، ثم أرسل التحذير إلى مسؤول الجهاز عبر البريد الإلكتروني.

    المتطلبات الأساسية والافتراضات

    • لقد قمت بالفعل بإعداد دعم البريد الإلكتروني للخادم باستخدام دليل "كيفية إعداد تنبيهات البريد الإلكتروني على لينكس".
    • أنت تستخدم نظامًا يستند إلى دبيان.
    • أنت لا تستخدم وحدة تحكم RAID للأجهزة *.
    • سترى لي استخدام VIM كبرنامج محرر ، وهذا فقط لأنني اعتدت عليه ... قد تستخدم أي محرر آخر تريد.

    * لأنه من المحتمل جدًا أن تحظر وحدة تحكم RAID للأجهزة وصول النظام إلى هذه المعلومات.

    اقامة

    قم بتثبيت حزمة "smartmontools" التي تقرأ معلومات S.M.A.R.T من وحدة تحكم القرص الصلب وتقدمها لنا.

    sudo aptitude install smartmontools

    قم بإنشاء البرنامج النصي للشاشة:

    sudo vim /root/smart-monitor.sh

    اجعل هذا محتوى:

    #! / بن / سحق
    ######## وظيفة البريد الإلكتروني ########
    email_admin_func ()

    صدى "إلى: [email protected]"> $ temp_email_file
    صدى "من: [email protected]" >> $ temp_email_file
    صدى "الموضوع: رصد S.M.A.R.T عتبة خرق" >> $ temp_email_file
    صدى "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    صدى "إرسال بريد إلكتروني إلى المسؤول"

    smartc_func ()

    / usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11

    ######## نهاية الوظائف ########

    ######## تعيين معلمة العمل ########
    temp_email_file = / تمة / smart_monitor.txt
    allowed_threshold = 5 #set حجم القطاعات التالفة التي ترغب في العيش بها ، مستحسن 5.

    ########محرك########
    أنا في sda sdb؛ do # قم بإضافة أو طرح أسماء الأقراص من هذه القائمة بما يتناسب مع الإعداد الخاص بك.
    إذا كانت [["" smartc_func $ i '"-ge $ allowed_threshold]] ؛ ثم
    صدى البريد الإلكتروني المسؤول
    email_admin_func "وصلت إحدى قيم HD على" "اسم المضيف" "إلى الحد الأقصى للعتبة! n تم تعيين الحد إلى: $ allowed_threshold وكانت حالة $ i disk:" 'smartc_func $ i' ""
    فاي
    فعله

    النقاط الأساسية التي يجب ملاحظتها هي:

    • وظيفة البريد الإلكتروني - قم بتعيين المعلومات المناسبة مثل اسم الجهاز والبريد الإلكتروني للمشرف.
    • الحد المسموح به - قم بتعيين هذه المعلمة على ما تشعر أنه مناسب ، لقد استخدمت 5 لأن الحد الأقصى المحدد لمحركات الأقراص الصلبة "للملقم" الذي استخدمته كان 10. (لقد وجدت الحد الأدنى لمحركات "درجة المستهلك") تكون عالية مثل 140).
    • قم بتعيين الأجهزة التي تريد مراقبتها عن طريق ضبط تعداد أسماء القرص في حلقة "for". يتم حاليًا تضمين قرصين (sda & sdb) ، لذا اضبط الإعداد. يمكنك تضمين كافة الأقراص الخاصة بك أو بعض فقط ، إذا كنت بحاجة إلى * استبعاد قرص لسبب ما.

    * في الإعداد الأصلي كان القرص الأول محرك أقراص فلاش حتى قراءة معلوماته إذا لم يكن ممكنا على الإطلاق.

    اجعل البرنامج النصي قابل للتنفيذ:

    sudo chmod + x /root/smart-monitor.sh

    يتم الإعداد.

    جدولة البرنامج النصي ليتم تشغيله تلقائيًا

    نحن نريد أن نجعل البرنامج النصي يعمل تلقائيًا ، لذلك سننشئ مهمة جديدة في Cron.
    كما هو مذكور في "كيفية إعداد تنبيهات البريد الإلكتروني على لينكس" توجيه نتيجة القيام بذلك ، هو أنه إذا كان السيناريو نفسه يواجه خطأ ، فإن cron سوف تبلغنا تلقائيا عبر البريد الإلكتروني في أقرب وقت يحدث.

    افتح برنامج جدولة المهام cron:

    سودو crontab -e

    أضف هذا إلى محتواه:

    0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log

    سيؤدي هذا إلى تعيين النص البرمجي ليتم تشغيله كل صباح في الساعة السابعة صباحًا.


    كل قطاعك ينتمي إلينا :)