مراقبة معدات الشبكة عبر SNMPv3 في Zabbix

تتناول هذه المقالة ميزات مراقبة معدات الشبكة باستخدام بروتوكول SNMPv3. سنتحدث عن SNMPv3 ، وسوف أشارك تجربتي في إنشاء قوالب كاملة في Zabbix ، وسنعرض ما يمكنك تحقيقه عند تنظيم التنبيهات الموزعة على شبكة كبيرة. SNMP هو البروتوكول الرئيسي لمراقبة معدات الشبكة ، و Zabbix ممتاز لرصد عدد كبير من الأشياء وتلخيص كميات كبيرة من المقاييس الواردة.

بضع كلمات حول SNMPv3


لنبدأ بتعيين SNMPv3 وميزات استخدامه. مهام SNMP هي مراقبة أجهزة الشبكة والإدارة الأولية عن طريق إرسال أوامر بسيطة إليها (على سبيل المثال ، تشغيل واجهات الشبكة وإيقاف تشغيلها أو إعادة تشغيل الجهاز).

الاختلاف الرئيسي بين بروتوكول SNMPv3 وإصداراته السابقة هو ميزات الأمان الكلاسيكية [1-3] ، وهي:

  • المصادقة ، التي تحدد استلام الطلب من مصدر موثوق به ؛
  • التشفير ، لمنع إفشاء البيانات المرسلة عند اعتراضها من قبل أطراف ثالثة ؛
  • النزاهة ، أي ضمان عدم العبث بالحزمة أثناء الإرسال.

يشير SNMPv3 إلى استخدام نموذج أمان يتم فيه تعيين استراتيجية مصادقة لمستخدم معين والمجموعة التي ينتمي إليها (في الإصدارات السابقة من SNMP ، في الطلب من الخادم إلى كائن المراقبة ، تمت مقارنة "المجتمع" فقط ، سلسلة نصية مع "كلمة مرور" يتم نقلها في شكل واضح (نص عادي)).

يقدم SNMPv3 مفهوم مستويات الأمان - مستويات الأمان المقبولة التي تحدد تكوين المعدات وسلوك عامل SNMP لعنصر المراقبة. تحدد تركيبة نموذج الأمان ومستوى الأمان آلية الأمان المستخدمة عند معالجة حزمة SNMP [4].

يصف الجدول مجموعات من النماذج ومستويات أمان SNMPv3 (قررت ترك الأعمدة الثلاثة الأولى كما في الأصل):



وفقًا لذلك ، سنستخدم SNMPv3 في وضع المصادقة باستخدام التشفير.

تكوين SNMPv3


تتضمن معدات مراقبة الشبكة نفس تكوين بروتوكول SNMPv3 على كل من خادم المراقبة والكائن المرصود.

دعنا نبدأ بتكوين جهاز شبكة Cisco ، يكون الحد الأدنى من التكوين الضروري كما يلي (للتكوين الذي نستخدمه CLI ، قمت بتبسيط الأسماء وكلمات المرور لتجنب الارتباك):

snmp-server group snmpv3group v3 priv read snmpv3name 
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso included

السطر الأول من مجموعة خادم snmp - يحدد مجموعة مستخدمي SNMPv3 (snmpv3group) ، ووضع القراءة (قراءة) ، وحق الوصول إلى مجموعة snmpv3group لعرض فروع معينة لشجرة MIB لكائن المراقبة (snmpv3name في التكوين أدناه يحدد فروع شجرة MIB للمجموعة سيتمكن snmpv3group من الوصول).

السطر الثاني لمستخدم خادم snmp - يحدد المستخدم snmpv3user ، وعضويته في snmpv3group ، وكذلك استخدام المصادقة md5 (كلمة المرور الخاصة بـ md5 هي md5v3v3v3) وتشفير des (كلمة مرور des des56v3v3v3). بالطبع ، بدلاً من des ، من الأفضل استخدام aes ، هنا أعطيها كمثال. أيضًا ، عند تحديد مستخدم ، يمكنك إضافة قائمة وصول (ACL) تنظم عناوين IP لخوادم المراقبة التي لها الحق في مراقبة هذا الجهاز - وهذه أيضًا أفضل ممارسة ، لكنني لن أعقد مثالنا.

يحدد السطر الثالث من عرض خادم snmp اسم الرمز الذي يعين فروع شجرة snmpv3name MIB بحيث يمكن لمجموعة مستخدمي snmpv3group طلبها. تسمح ISO ، بدلاً من التحديد الدقيق لفرع واحد ، لمجموعة مستخدمي snmpv3group بالوصول إلى جميع كائنات شجرة MIB لكائن المراقبة.

يوجد تكوين مماثل لمعدات Huawei (أيضًا في CLI) على النحو التالي:

snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5 
            md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
            des56v3v3v3

بعد إعداد أجهزة الشبكة ، تحتاج إلى التحقق من الوصول من خادم المراقبة عبر بروتوكول SNMPv3 ، سأستخدم snmpwalk:

snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252



أداة أكثر وضوحًا لطلب كائنات OID محددة باستخدام ملفات MIB هي snmpget:



الآن دعنا ننتقل إلى إعداد عنصر بيانات نموذجي لـ SNMPv3 ، كجزء من قالب Zabbix. من أجل البساطة والاستقلالية عن MIB ، أستخدم معرّفات OID الرقمية:



أستخدم وحدات ماكرو مخصصة في الحقول الرئيسية ، لأنها ستكون واحدة لجميع عناصر البيانات في النموذج. يمكنك تعيينها كجزء من النموذج إذا كانت جميع أجهزة الشبكة على شبكتك لها نفس معلمات SNMPv3 ، أو داخل المضيف إذا كانت معلمات SNMPv3 لكائنات المراقبة المختلفة مختلفة:



يرجى ملاحظة أن نظام المراقبة لا يحتوي إلا على اسم مستخدم وكلمات مرور للمصادقة والتشفير . يتم تعيين مجموعة المستخدمين ومنطقة كائنات MIB التي يُسمح بالوصول إليها على كائن المراقبة.
الآن دعنا ننتقل لملء النموذج.

قالب مسح Zabbix


هناك قاعدة بسيطة عند إنشاء أي قوالب استبيان وهي جعلها مفصلة قدر الإمكان:



أولي اهتمامًا كبيرًا للمخزون بحيث يكون العمل مع شبكة كبيرة أكثر ملاءمة. حول هذا بعد قليل ، ولكن في الوقت الحالي - يؤدي إلى:



لسهولة رؤية المشغلات ، تحتوي أسمائها على وحدات ماكرو النظام {HOST.CONN} ، بحيث لا يتم عرض أسماء الأجهزة فحسب ، بل أيضًا عناوين IP على لوحة التحكم الرئيسية في قسم التنبيه ، على الرغم من أن هذه مسألة تتعلق بالراحة أكثر من اللازم. لتحديد عدم توفر الجهاز ، بالإضافة إلى طلب الصدى المعتاد ، أستخدم فحص عدم توفر مضيف SNMP عندما يمكن الوصول إلى الكائن عبر ICMP ولكن لا يستجيب لطلبات SNMP - هذا الوضع ممكن ، على سبيل المثال ، عند تكرار عناوين IP على أجهزة مختلفة ، بسبب جدران الحماية التي تم تكوينها بشكل غير صحيح ، أو إعدادات SNMP غير الصحيحة على كائنات المراقبة. إذا كنت تستخدم التحكم في الوصول إلى المضيف عبر ICMP فقط ، في وقت التحقيق في الحوادث على الشبكة ، فقد لا تظهر بيانات المراقبة ، لذا يجب التحكم في استلامها.

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

أستخدم وظيفة الكشف القياسية لـ SNMP ، مع عدد كبير من المعلمات القابلة للكشف ، من أجل تصفية أكثر مرونة:

discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7]



باستخدام هذا الكشف ، يمكنك تصفية واجهات الشبكة حسب أنواعها وأوصاف المستخدم "الوصف" والحالات الإدارية للمنافذ. تبدو الفلاتر والتعبيرات العادية للتصفية في حالتي كما يلي:





عند الكشف ، سيتم استبعاد الواجهات التالية:

  • معطل يدويًا (adminstatus <> 1) ، وذلك بفضل IFADMINSTATUS ؛
  • عدم وجود وصف نصي ، بفضل IFALIAS ؛
  • * في الوصف النصي ، بفضل IFALIAS ؛
  • كونها رسمية أو فنية بفضل IFDESCR (في حالتي ، في التعبيرات العادية IFALIAS و IFDESCR يتم فحصها بواسطة اسم مستعار عادي واحد).

نموذج جمع بيانات SNMPv3 جاهز تقريبًا. لن نتطرق إلى النماذج الأولية لعناصر البيانات لواجهات الشبكة ، وسوف ننتقل إلى النتائج.

نتائج المراقبة


بادئ ذي بدء - جرد لشبكة صغيرة:



إذا قمت بإعداد قوالب لكل سلسلة من أجهزة الشبكة - يمكنك تحقيق تخطيط مناسب لتحليل البيانات الموجزة على البرنامج الحالي والأرقام التسلسلية وإخطار بوصول عاملة تنظيف إلى الخادم (بسبب وقت التشغيل الصغير). فيما يلي مقتطف من قائمة القوالب الخاصة بي:



والآن - لوحة التحكم الرئيسية ، مع المشغلات الموزعة حسب مستوى الأهمية:



بفضل النهج المتكامل للقوالب لكل نموذج من الأجهزة في الشبكة ، من الممكن تحقيق ذلك في إطار نظام مراقبة واحد سيتم تنظيم أداة للتنبؤ بالأعطال والحوادث (إذا كانت هناك أجهزة استشعار ومقاييس مناسبة). تعتبر Zabbix مناسبة تمامًا لرصد الشبكة والخادم والبنى التحتية للخدمة ، وتثبت مهمة خدمة معدات الشبكة بوضوح قدراتها.

قائمة المصادر المستخدمة:
1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. pp. 325-329.
2. RFC 3410. tools.ietf.org/html/rfc3410
3. RFC 3415. tools.ietf.org/html/rfc3415
4. SNMP Configuration Guide, Cisco IOS XE Release 3SE. Chapter: SNMP Version 3. www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-3se/3850/snmp-xe-3se-3850-book/nm-snmp-snmpv3.html

All Articles