هذا هو الجزء الأخير من المقال ،
ها هي البداية .
آخر مرة كتبت فيها عن كيفية تطبيق مراقبة الأجهزة ، سنركز الآن على الإدارة. في المناقشات مع "التقنيين" من جانب العميل ، غالبًا ما أواجه تصورًا محدودًا لقدرات هذه الأجهزة الصغيرة (مع انخفاض موارد الذاكرة والأداء) ، يعتقد الكثير من الناس أن "الحد الأقصى الذي نحتاج إليه هو إرسال إعادة تشغيل ، لشيء أكثر جدية - سنرسل فريقًا" .
لكن الممارسة تدل على أن هذا ليس صحيحًا تمامًا.
فيما يلي قائمة قصيرة بالمهام الشائعة الشائعة:
- تشخيص الشبكة واستكشاف الأخطاء وإصلاحها. خلف منفذ إيثرنت لجهاز التوجيه الخاص بك ، عادة ما يكون لجهاز آخر عنوان IP خاص به. في بعض الأحيان ، يمكن (الحاجة) "بينغ". أو إدارة الأنفاق - إذا كان جهاز توجيه لا يرتفع فجأة على جهاز توجيه يعمل من خلال مودم 3G ، لكننا نرى الموجه نفسه.
- خدمة النظام. ترقية البرامج الثابتة ، ترقية البرنامج النصي الخدمة.
- موازنة الفعل. يمكن أن يسمى هذا "الانحرافات" ، ولكن مفهوم "الموازن" ، كما أقتبس ، "لقدرة فنان السيرك على الحفاظ على التوازن في وضع غير مستقر للجسم" هو الأنسب. تنشأ حالات مماثلة بسبب الميزانية المحدودة للعميل. فيما يلي بعض الأمثلة ، ولكن بسبب ليس لديهم علاقة مباشرة بموضوع السرد ، ضعهم في الملاحظات
مراقبة واي فايموضوع عصري على مدى السنوات الخمس الماضية هو أساسا بين سلاسل البيع بالتجزئة الفيدرالية. أنت تتجول ببطء في قاعات التداول ، وهاتفك المحمول مع تشغيل Wi-Fi ، في محاولة "للالتصاق" ببعض خيط الشبكة ، تقوم بانتظام بإرسال حزم Probe Request التي يمكن تحليلها لحساب عدد المرات التي تأتي فيها إلى هذا المتجر ، ولماذا المشي في المسارات وهلم جرا. ثم يتم جمع البيانات وتحليلها ورسم خرائط الحرارة ومديري هذه الصور "يقومون بضرب" الأموال من الإدارة أو المستثمرين. في هذه الأثناء .... "لا يوجد مال ، لكنك تمسك ..." ، ويجب أن تظهر النتيجة (حقيقية) بالفعل ، يتم تضمين الأغنية القديمة الجيدة "نعم ، نعم ، بالطبع سنضع tsiska وما نريده ، لكننا نحتاج الآن تبين للعميل النتيجة! بالمناسبة ، لقد نسوا أن يقولوا إن العميل سمح بتوصيل أجهزتنا بنقطة اتصال سريعة عبر شبكة Wi-Fi ، ولكن بشكل عام ، يبدو الأمر كما لو كنا عملاء زائرين. " والآن عليك أن تجعل موازنات أجهزة التوجيه - عدة واجهات فرعية لشبكة WiFi ، واحدة منها تتمسك بنقطة اتصال ، والثانية تراقب البيئة ، تفريغ محموم نتيجة tcpdump في نفسه ، ثم يتم تجميع محتويات الملف في الأرشيف والمجازفة بالموت من "الإفراط في تناول الطعام" تحاول بصق محتويات على خادم بروتوكول نقل الملفات. ليس من المستغرب أن "موازن جهاز التوجيه" غالبًا ما "ينهار" ويجب إعادة تنشيطه عن بعد بطريقة ما.
نصف القطرمن السهل هنا وصف الموقف بشيء مثل هذا البيان من جانب العميل: "نريد شبكة لامركزية من النقاط الساخنة التي تعمل على معدات لا يعرف طرازها مقدمًا ، من خلال القنوات ، لكننا لا نعرفها بعد. آه ، لقد نسوا أن يقولوا ، إننا لا نريد فقط عرض الإعلانات للعملاء ، ولكننا نحلل أيضًا كل شيء حول مكان تثبيت نقطة الاتصال. لا ، نحن لا نعرف لماذا بعد ، لكننا سنطرح ، لا شك ، تمكنا من التوصل إلى هذه الفكرة "
ويجب ألا ننسى أنه نظرًا لوجود مجموعة من الظروف غير المؤكدة مسبقًا ، يجب أن يتم التحكم في ظروف غير قياسية ، عندما يتعذر علينا الاتصال بالموجه مباشرةً عبر بروتوكول الإنترنت: المنفذ ونضطر إلى انتظار النشاط منه. إذا تجاهلناها ، فيمكن تمثيل الحوار بين الخادم وجهاز التوجيه على النحو التالي:
- جهاز التوجيه : مرحبا. أنا مثل هذا الموجه ، هل هناك أي مهام بالنسبة لي؟
- الخادم : كذا وكذا جهاز التوجيه قمت بتسجيلك بأنك على قيد الحياة. هذه هي المهمة: أرني نتيجة الأمر ifconfig؟
- جهاز التوجيه : مرحبا. أنا مثل هذا الموجه ، آخر مرة طلبت فيها مني إظهار ifconfig ، إليك. هل هناك أي مهام بالنسبة لي؟
- الخادم : كذا وكذا جهاز التوجيه قمت بتسجيلك بأنك على قيد الحياة. لا توجد مهام لك.
السؤال الأكثر إثارة للاهتمام: كيف يمكن لجهاز التوجيه عن بعد إرسال كمية معينة من المعلومات؟ في الجزء الأخير ، وصفت أنه على جهاز التوجيه بسبب محدودية الموارد لا يوجد سوى wget "أسفل" يعمل فقط من خلال GET ولا شيء آخر ، لا يوجد عميل ftp أو حليقة. بتعبير أدق ، نحتاج إلى طريقة عالمية ، بغض النظر عن ميزات مجموعة الصور. أنا استقر على استخدام wget. بتعبير أدق ، كيف "توقفت" - لم يكن لدي أي خيار :)
حجز على الفوريعمل حل الإدارة الخاص بي ، ولكنه محدود للغاية وأنا متأكد من أنه ملتوي ، حتى لو كان يناسب معظم عملائي. كيف سيكون من الممكن القيام بذلك بحكمة - كتابة أداة صغيرة ترسل بيانات ثنائية عبر المنفذ الثمانين. قم بتضمينها (الأداة المساعدة) في البرامج الثابتة لجهاز التوجيه واستخدم bash للوصول إليها. ولكن الحقيقة هي: أ) تحتاج إلى بسرعة ب) ربما تحتاج إلى القيام بكل شيء في "حديقة حيوان جهاز التوجيه الحالية" ج) "لا تؤذي!" - إذا كان جهاز التوجيه يعمل ويقوم بأداء مهام أخرى ، فحاول إجراء تغييرات تؤثر على الوظيفة الحالية.
دعنا ننتقل إلى التنفيذ. دعنا نقول أن عميلك يريد من zabbix إعادة تشغيل جهاز التوجيه بسهولة وبشكل طبيعي ، مع "النقر بالماوس". اليوم سنبدأ وصف التنفيذ مع zabbiksa.
في قائمة "الإدارة" -> "البرامج النصية" إضافة نص جديد. نسميها "إعادة التشغيل" ، حيث أن الأمر الذي نكتبه "php /usr/share/zabbix/reboot.php {HOST.HOST}"

علاوة على ذلك: قائمة "المراقبة" -> "البيانات الحديثة" -> "انقر بزر الماوس الأيمن على عقدة الشبكة." هذه هي الطريقة التي ستبدو القائمة بعد إضافة برنامج نصي.

وفقًا لذلك ، نضع البرنامج النصي reboot.php في دليل / usr / share / zabbix (قد يكون لديك دليل آخر ، يمكنني استخدام الدليل الجذر zabbixa).
إخلاء مسؤولية السلامةمن أجل توضيح التفسير في البرنامج النصي ، أستخدم معرف جهاز التوجيه فقط ، لكنني لا أستخدم كلمة المرور. في إصدار العمل ، هذا غير مستحسن! لماذا فعلت هذا: لأن السؤال الكبير هو مكان تخزين كلمات المرور لأجهزة التوجيه؟ في zabbixe نفسها في "المخزون"؟ ممارسة متناقضة. كخيار: تقييد الوصول الخارجي إلى ملف reboot.php نفسه
ملف Reboot.php
<?php
في الواقع كل شيء. يظل السؤال "كيفية الحصول على نتيجة تنفيذ أمر من جانب الجهاز" مفتوحًا. النظر في المشكلة باستخدام الأمر ifconfig كمثال. يمكن إرسال هذا الأمر إلى الجهاز:
message=`ifconfig`; wget "http://xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php?u=user&p=password!&m=$message" -O /tmp/out.txt
حيث:
message = `ifconfig` - نقوم بتعيين نتيجة إخراج الأمر ifconfig للمتغير $ message
wget " xn - 80abgfbdwanb2akugdrd3a2e5gsbj.xn - p1ai / a.php - برنامجنا النصي a.php الذي يسجل الموجهات ويستقبل الرسائل منها
u = user & p = password! & m = $ message - بيانات الاعتماد وقيمة المتغير request m - يعين محتويات الرسالة المتغيرة $
-O /tmp/out.txt - لا نحتاج إلى الإخراج إلى ملف /tmp/out.txt في هذه الحالة ، ولكن إذا لم تحدد هذه المعلمة ، فلن تعمل wget
لماذا يعمل كروكيدليلأنه ثقب أمني محتمل. الخطأ الأكثر ضررًا الذي يمكن أن يحدث هو ، على سبيل المثال ، إذا كان هناك رمز "&" في إخراج الأمر الخاص بك. لذلك ، من الضروري تصفية كل ما يتم إرساله من أجهزة التوجيه وكل ما يأتي إلى الخادم. نعم ، أشعر بالخجل حقًا. في دفاعي ، لا يمكنني الكتابة إلا - أن المقال بأكمله مخصص لكيفية إدارة أجهزة التوجيه مع البرامج الثابتة غير المحددة مسبقًا ، مع قنوات الاتصال غير محددة مسبقًا.
حسنًا ، لقد لمست المستقبل: لم أتمكن من معرفة كيفية عكس النتائج (على سبيل المثال ، نتيجة الأمر) عن طريق الوسائل القياسية zabbix التي تأتي إلى الخادم.
أذكرك أنه
يمكن الحصول على جميع المصادر من مستودع Git