سكربت لمراقبة الميكروتك وارسال تنبيهات SMS / EMAIL عند حدوث اي تغيرات على السيرفر

اخر تحديث في مايو 27, 2023 بواسطة حمدي بانجار

سكربت لمراقبة الميكروتك وارسال تنبيهات SMS او عبر EMAIL عند حدوث اي تغيرات على السيرفر

فيما يلي برنامج سكربت بسيط لـ Mikrotik RouterOS لمراقبة أي جهاز بواسطة PING

وعند تغيير الحالة مثل Donw / UP ، يمكن أن يتخذ إجراء مثل إرسال تنبيه SMS / Email وتغيير المسارات والواجهة وما إلى ذلك.

يتم تخصيصها وفقًا لمتطلبات OP المحلية عند الطلب . يمكنك التعديل علية ، بلإضافة أو إزالة أي خيار حسب رغبتك .

هناك الكثير من البرامج النصية ( السكربتات ) الجيدة المتاحة على الإنترنت.

ولاكن مجرد محاولة النسخ العمياء واللصق لأي برنامج نصي آخر قد تتسبب في مشكلات بالسيرفر وربما الانهيار التام له وخروجة عن العمل.

حاول دائما ان تفهم وتقراء عدة مرات حتى تفهم بوضوح ما الذي صنعته وما هي الوظائف التي ستؤديها.

لماذا نستخدم السكربتات ؟

لماذا تستخدم هذه السكربتات المعقدة في حين يمكنك القيام بذلك بسهولة باستخدام تطبيقات net-watch أو تطبيقات windows الأساسية مثل Dude أو Nix base Nagios والعديد من الأدوات الأخرى؟

الجواب بسيط ، باستخدام السكربتات سيكون لديك المزيد من السلطة ، والمزيد من السيطرة ، والمزيد من القدرة على المناورة ، وتخصيص ، والإجراءات الغريبة التي يمكنك إضافتها.

وقبل كل شيء ، التعلم والشعور بالقوة لديك على النظام 🙂 هذا يبرر لي استخدام النصوص البرمجية ( السكربتات ) …

أمثلة إخراج البرنامج النصي:

عندما يكون الجهاز في الأسفل …

سكربت لمراقبة الميكروتك وارسال تنبيهات SMS او عبر EMAIL عند حدوث اي تغيرات على السيرفر

عندما يكون الجهاز هو UP (استعادة) …

deviec-up

مثال على ارسال رسالة SMS :

sms

اليكم السكربت كاملا :

# This is Mikrotik Script for Local Device Link monitoring by IP
# - with Optional SMS Alert. We are using local Linux base KANNEL
# You can modify it to add EMAIL alerts as well using GMAIL or local Mail Gw.
# system as SMS gateway with local modem attached
# Script By Syed Jahanzaib / # https://aacable.wordpress.com
# Email : aacable at hotmail dot com
# Script Last Modified : 26-July-2017
 
# Set Device IP here
:local DEVICE1host1 "192.168.0.1"
# Dont use SPACEC Here, because our KANNEL system dont like spaces, use + sign instead
:local DEVNAME "MY_HOST"
:global DEVICE1LanStatus;
:global DEVICE1LanLastChange;
 
#:log warning "Checking status of Device $DEVICE1host1 by ping ..."
:local DELAY "3s"
:local i 0;
:local F 0;
:local date;
:local time;
:set date [/system clock get date];
:set time [/system clock get time];
# Setting Date Time variables
:local sub1 ([/system identity get name])
:local sub2 ([/system clock get date])
:local sub3 ([/system clock get time])
 
# Company Name, Dont use SPACEC Here, because our KANNEL system dont liek spaces, use + sign instead
:local COMPANY "ZABBO"
 
# Number of Ping Count, how many times mikrotik should ping the target device
:local PINGCOUNT "5"
# Ping threshold
:local PINGTS "5"
 
# Provide details of Kannel SMS gateway, ID pass, and cell numbers on which sms is required
:local KURL "http://KANNEL-GW-IP-OR-NAME:13013/cgi-bin/sendsms"
:local KID "kannel"
:local KPASS "KANNELPASS"
:local cell1 "03333021909"
 
# Mail Alert information
:local ADMINMAIL1 "[email protected]"
 
# SMS Msg format for Kannel SMS gateway (donot use spaces in it)
:local MSGDOWNSMS "$COMPANY+ALERT:%0A$DEVNAME%0A$DEVICE1host1+is+now+DOWN."
:local MSGUPSMS "$COMPANY+INFO:%0A$DEVNAME%0A$DEVICE1host1+is+now+UP."
 
# LOG error
:local DOWNLOG1 "$COMPANY ALERT: $DEVNAME with IP $DEVICE1host1 is now DOWN @ $sub1 $sub2 $sub3..."
:local UPLOG1 "$COMPANY INFO: $DEVNAME with IP $DEVICE1host1 is now UP @ $sub1 $sub2 $sub3 ..."
 
# Start the SCRIPT
# DONOT EDIT BELOW
 
# If Script is running for the first time , consider target device UP,
# Just to avoid any errors in the script dueto empty variable.
:if ([:len $DEVICE1LanStatus] = 0) do={
:set DEVICE1LanStatus "UP";
}
 
# PING each host $PINGCOUNT times
# IF NOT A SINGLE PING SUCCESSFULL THEN CONSIDER LINK DOWN ## ZAIB
:for i from=1 to=$PINGCOUNT do={
if ([/ping $DEVICE1host1 count=1]=0) do={:set F ($F + 1)}
:delay 1;
};
 
# If no response (all ping counts fails for both hosts, Time out, then LOG down status and take action
:if (($F=$PINGTS)) do={
:if (($DEVICE1LanStatus="UP")) do={
 
# If the link is down, then LOG warning in Mikrotik LOG window [Zaib]
:log error "$DOWNLOG1";
:set DEVICE1LanStatus "DOWN";
# Also add status in global variables to be used as tracking
:set date [/system clock get date];
:set time [/system clock get time];
:set DEVICE1LanLastChange ($time . " " . $date);
# Send SMS via KANNEL for DOWN Status
:log warning "Sending EMAIL/SMS for DOWN status of $DEVNAME $DEVICE1host1 ..."
#/tool fetch url="$KURL\?username=$KID&password=$KPASS&to=$cell1&text=$MSGDOWNSMS"
/tool e-mail send to=$ADMINMAIL1 subject="$COMPANY ALERT: $DEVNAME $DEVICE1host1 is now DOWN @ $sub3 $sub2 $sub1" start-tls=yes
#/interface sfp1 disable;
#:delay $DELAY
#/interface sfp1 enable;
 
######################
# ADD YOUR CUSTOMIZED ACTION HERE LIKE CHANGE ROUTE OR DISABL/ENABLE ANY THING
######################
# If ping reply received, then LOG UP and take action as required
} else={:set DEVICE1LanStatus "DOWN";}
} else={
:if (($DEVICE1LanStatus="DOWN")) do={
# If link is UP, then LOG info and warning in Mikrotik LOG window [Zaib]
:log warning "$UPLOG1"
:set DEVICE1LanStatus "UP";
 
# Send SMS via KANNEL for UP Status
:set date [/system clock get date];
:set time [/system clock get time];
:set DEVICE1LanLastChange ($time . " " . $date);
:log warning "Sending EMAIL/SMS for UP status of $DEVNAME $DEVICE1host1 ..."
#/tool fetch url="$KURL\?username=$KID&password=$KPASS&to=$cell1&text=$MSGUPSMS"
/tool e-mail send to=$ADMINMAIL1 subject="$COMPANY INFO: $DEVNAME $DEVICE1host1 is now UP @ $sub3 $sub2 $sub1" start-tls=yes
# ADD YOUR CUSTOMIZED ACTION HERE LIKE CHANGE ROUTE OR DISABL/ENABLE ANY THING LIKE
#/interface sfp1 disable;
#:delay $DELAY
#/interface sfp1 enable;
} else={:set DEVICE1LanStatus "UP";}
}
# Script ends here ...

أنتهى … سكربت لمراقبة الميكروتك وارسال تنبيهات SMS او عبر EMAIL عند حدوث اي تغيرات على السيرفر

سكربتات لمراقبة الميكروتك وارسال تنبيهات SMS او عبر EMAIL عند حدوث اي تغيرات على السيرفر

الى هنا نكون وصلنا الى نهاية موضوعنا اليوم سكربت لمراقبة الميكروتك وارسال تنبيهات SMS او عبر EMAIL عند حدوث اي تغيرات على السيرفر

والذي نتمنى ان ينال رضاكم واعجابكم والى اللقاء في موضوع جديد شيق ورائع

وحتى ذلك الحين لاتنسو الاهتمام بصحتكم وحفظكم الله …

اذا اعجبك الموضوع سكربت لمراقبة الميكروتك وارسال تنبيهات SMS او عبر EMAIL عند حدوث اي تغيرات على السيرفر لاتنسى ان تقوم بمشاركتة على مواقع التواصل الاجتماعي ليستفيذ منه الغير,

كما نتمنى اشتراككم في قناة الموقع على اليوتيوب بالضغط هنا وكذلك الاشتراك في مجموعة الفيس بوك بالضغط هنا والتيليقرام بالضغط هنا  وكذلك التسجيل بالموقع لتتمكنو من تحميل بعض الملفات الخاصة بالأعضاء

كما يمكنكم رفع ملفاتكم مجانا على مركز ملفات حضرموت التقنية بالضغط هنا ولاتترددو في وضع أي استفسارات للرد عليكم .

دمتم بكل ود والسلام عليكم ورحمة الله وبركاتة …  حضرموت التقنية

حول حمدي بانجار

باحث ومهندس في مجالات شبكات ومقاهي الأنترنت - شغوف في عالم الانترنت والبرمجة للشبكات - في حضرموت التقنية شعارنا الدائم - أفعل الخير مهما أستصغرتة ! فأنك لاتدري اي عمل يدخلك الجنة ... فلا يفلح كاتم العلم ...طموحاتي ان يصبح الموقع مدرسة تعليمية للعلوم التقنية الجديدة ومساعدة الاخرين في حل مشكلاتهم ونرحب بمن يرغب الانظمام لنا يفيذ ويستفيذ ليكبر هذا الصرح التعليمي ويحقق الاستفاذة القصوى للغير ... أنظمامكم لأسرة الموقع وقناتها ومشاركتكم بالمواضيع الهادفه هو بحد ذاتة تشجيع لنا وللغير لاستمرارية هذا الصرح التعليمي

تحقق أيضا

فتح بورت في الميكروتك لتحويل طلبات منفذ معين الى جهاز داخلي ضمن شبكات الميكروتك

فتح بورت في الميكروتك لتحويل طلبات منفذ معين الى جهاز داخلي ضمن شبكات الميكروتك

اخر تحديث في مايو 27, 2023 بواسطة حمدي بانجار فتح بورت في الميكروتك لتحويل طلبات …