الغرض من القالب هو أتمتة مراقبة خوادم نظام المراقبة بالفيديو القائم على مسجلي Trassir تحت سيطرة نفس البرنامج القائم على لينكس عبر خادم الويب SDK.
يتم تضمين Trassir SDK في إعدادات خادم الويب ، يجب عليك أيضًا تحديد كلمة مرور هناك. وفقًا
لوثائق الشركة المصنعة ، لا تحتاج إلى إنشاء حساب منفصل لأخذ قراءات حول الخادم.
يوفر Trassir SDK الوصول إلى حالة الخادم عبر الطلب
https://{ip }:{ }/health?password={ SDK}
عندما تفتح هذا الرابط من خلال متصفح ، تظهر رسالة توضح أن الشهادة المستخدمة غير آمنة ويجب عليك اتباع تعليمات المتصفح للمتابعة.
للحصول على مثال محدد ، في نص الاستجابة نحصل على ما يلي:
{ "disks": "1", "database": "1", "channels_total": "13", "channels_online": "13", "uptime": "882232", "cpu_load": "33.96", "network": "1", "automation": "1", "disks_stat_main_days": "16.41", "disks_stat_priv_days": "0.00", "disks_stat_subs_days": "16.41" } /* Meanings of values: -1 - undefined value 0 - bad health (error) 1 - good health (ok) Values for channels are channel counters. Value of cpu_load is given in percents.
يتطابق الجزء الأول من الإخراج من الحرف {إلى الحرف} مع الوثائق وهو ناتج تنسيق JSON موحد ، والذي يتوافق مع الوثائق ، ثم هناك وصف للإخراج الذي لا يتناسب مع المعيار.
في السابق ، من أجل استخدام هذا الإخراج في نظام مراقبة Zabbix ، كان من الضروري كتابة البرنامج النصي الخاص بك ، والذي سيتم استخدامه على الوكيل والحصول على البيانات اللازمة. باستخدام هذا النهج ، تحتاج إما إلى تخزين ملف الاستجابة ومراقبة ملاءمته ، أو طلب كل عنصر على حدة ، أي استخدم 11 استفسارًا بدلاً من 1.
في الإصدار Zabbix 4.0 ، ظهر نوع عنصر بيانات وكيل ، والذي يسمح بتلقي البيانات عبر بروتوكولات http و https ومعالجتها ، بالإضافة إلى العناصر التابعة التي يتم حسابها من العناصر الرئيسية.
تتمثل الفكرة في الحصول على استجابة الخادم في عنصر بيانات نصية ثم تحديد عناصر البيانات اللازمة منه.
في البداية ، سنحدد وحدات الماكرو لرقم المنفذ وكلمة المرور لتنوع وأمان قالبنا.
نقوم بإنشاء قالب وإضافة عنصر بيانات من نوع "وكيل HTTP" ، ومفتاح حسب الرغبة ، وعنوان URL https: // {HOST.IP}: {$ TRASSIR_SDK_PORT} / health وحقل طلب كلمة المرور {$ TRASSIR_SDK_PASS}. هنا {HOST.IP} هو ماكرو ، عند إضافة قالب إلى المضيف ، سيتم تحويله إلى عنوان IP للمضيف.
كما اكتشفنا مسبقًا تجريبيًا سابقًا ، فإن هذا الطلب لا يتوافق تمامًا مع تنسيق JSON ولا يعمل فقط على استخراج البيانات منه.
سنستخدم وظيفة Zabbix الجديدة ونضيف التعبير العادي \ {(\ n |.) * \} في علامة التبويب "المعالجة المسبقة" لقالب عنصر البيانات مع الإخراج \ 0 الذي سيعرض فقط بيانات تنسيق JSON.
من يهتم لماذا هذاإن تطوير مثل هذه التعبيرات للمبتدئين أسهل بكثير في
المحرر المرئي . في هذا التعبير ، نحن نبحث عن شخصية محددة من قوس مجعد الافتتاح ، وبما أنه في التعبيرات العادية يتم استخدام هذه الأقواس ، فمن الضروري تحديد شرطة مائلة للخلف قبل الحرف. يمكن أن يكون هناك أي أحرف (في الواقع ، لا ، ولكن لنحذف هذه اللحظة) في بيانات JSON ، بالإضافة إلى موجز سطر. خيارات الأحرف هذه التي تشير إلى نقطة أو حرف تحكم تغذية \ n يشار إليها بين قوسين بشريط عمودي. خلف الأقواس توجد علامة النجمة ، والتي تشير إلى أنه يمكن تكرار الحرف الموجود أو تغذية الخط لعدد لا نهائي من المرات. بعد ذلك يأتي قوس الإغلاق. الإخراج \ 0 يعني أنه سيتم عرض جميع التسلسلات الموجودة.
بعد ذلك ، يتم إنشاء عنصر بيانات تابع يشير إليه عنصر البيانات الرئيسي لاستجابة JSON التي تم تلقيها في وقت سابق ويشار إلى المعالجة المسبقة بالخطوة "مسار JSON" الذي يسمح لك بالوصول إلى أي عنصر بيانات عن طريق تحديد مسار JSON. في مثالنا ، جميع البيانات في المستوى الأعلى ، لذلك نحدد $ .disks وما إلى ذلك لجميع العناصر.
يبقى فقط لإنشاء مشغلات تتحقق من البيانات الجديدة ، وإدخالها في النطاقات العادية ، وكذلك الرسومات الاختيارية.
اتضح أننا بسهولة وسرعة بالطرق العادية لـ Zabbix تلقينا بيانات من نظام خارجي ، لا يتوافق مخرجاته تمامًا مع المعيار. إن عدم وجود نصوص خارجية يبسط فهم نظام المراقبة ويزيد من سهولة الصيانة.
القالب المحدد
متاح على بوابة التبادل share.zabbix.com .