SNMP
الوظيفة | الاستعلام عن جهاز (عادةً ما يكون نوعًا من أجهزة الشبكة) للحصول على بيانات SNMP عن طريق طلب معرّف OID. تتيح تصفح معرّفات OID. |
|---|---|
التنبيهات | وقت النقل، والقيم المحددة من قبل المستخدم، وقيم الفرق، والقيم النصية |
يعد بروتوكول إدارة الشبكة البسيط (SNMP) البروتوكول السائد في إدارة الشبكات. ومن الأسباب الرئيسية لقبوله على نطاق واسع، إلى جانب كونه المعيار الرئيسي للإنترنت لإدارة الشبكات، بساطته النسبية. ويعد تنفيذ إدارة SNMP في جهاز متصل بالشبكة أكثر بساطة بكثير من معظم الأساليب القياسية أو غير القياسية الأخرى لإدارة الشبكات.
يستخدم مدير SNMP أو تطبيق الإدارة بناء جملة تسمية محددة جيدًا لتحديد المتغيرات لوكيل SNMP. تسمى أسماء الكائنات في بناء الجملة هذا بمعرفات الكائنات (معرفات الكائنات أو OIDs).
معرّفات الكائنات (OIDs) هي سلسلة من الأرقام التي تحدد هوية الكائن بشكل فريد بالنسبة لوكيل SNMP. يتم ترتيب معرّفات الكائنات (OIDs) في بنية شجرية هرمية مقلوبة. تبدأ شجرة OID بالجذر وتتفرع إلى فروع. تُسمى كل نقطة في شجرة OID «عقدة»، وتحتوي كل عقدة على فرع واحد أو أكثر، أو تنتهي بعقدة ورقة. يتكون تنسيق OID من تسلسل أرقام تفصل بينها نقاط.
يتم دعم أنواع متغيرات SNMP التالية للقيم:
ASN_COUNTER | عدد صحيح غير سالب مكون من 32 بت لا يمكن إلا أن يزداد |
ASN_GAUGE | عدد صحيح من 32 بت |
ASN_INTEGER | عدد صحيح من 32 بت (من -2³² إلى 2³²) rfc 1442 |
ASN_INTEGER64 | عدد صحيح 64 بت (-264 إلى 264) rfc 1442 |
ASN_OPAQUE | يدعم الأرقام العائمة (float) والمزدوجة (double) |
ASN_UNSIGNED64 | عدد غير موقّع 64 بت |
ASN_COUNTER64 | 64 بت بدون إشارة |
ASN_TIMETICKS | غير موقّع |
يتم تحويل جميع هذه القيم والفرق عن القياس الأخير إلى أرقام عائمة، ثم يتم نقلها إلى الخادم.
يتم تقسيم قيم الفرق من الأنواع المذكورة أعلاه تلقائيًا على الوقت المنقضي منذ القياسات الأخيرة ((القيمة الحالية - القيمة السابقة) / (ثواني الوقت الحالي - ثواني الوقت السابق)). وهذا يعني أننا نحصل دائمًا على معدل في الثانية لهذه القيم الفرقية.
ASN_BIT_STR |
ASN_OCTET_STR |
هذه القيم عبارة عن سلاسل نصية وقد تحتوي على أي أحرف قابلة للطباعة.
ميزات SNMP
متصفح MIB عبر الإنترنت لاختيار OID
ملفات MIB غير محدودة، الموقع: /usr/share/snmp/mibs على كل مجمع SKOOR Engine
وحدة قياس قابلة للتكوين
قيم تفاضلية تلقائية
دعم PDU للإصدارات 1 و2c وv3
دعم تشفير v3
إنذارات على مستوى الطبقة
اختيار واجهة MIB2 حسب الاسم
ربط أسماء OID بأرقام OID
إمكانية ضبط عدد محاولات إعادة المحاولة ومهلة الانتظار
القيم القابلة للحذف (تقلل حجم قاعدة البيانات)
السلاسل (إحالة رقم إلى نص)
تحليل الأرقام من OID النصي (القيمة الأولى فقط)
تفاصيل SNMP
معلمات SNMP
لا يظهر قسم إدخال المصادقة إلا عند تحديد الإصدار 3 من SNMP.
المعلمة | الوصف |
|---|---|
منفذ UDP | حدد منفذ UDP (القيمة الافتراضية هي 161) |
عدد المحاولات | عدد محاولات إعادة المحاولة في حالة فشل الطلب. القيمة الافتراضية هي محاولتان. |
مهلة | حدد مهلة الطلب. في معظم الأجهزة، تُعالج طلبات SNMP بأولوية منخفضة، لذا استخدم مهلة كافية. القيمة الافتراضية هي 2 ثانية. |
الإصدار | حدد إصدار SNMP الذي يقدمه برنامج snmp الخفي البعيد. تتوفر الخيارات التالية: الإصدار 1 |
مستوى الأمان | يحدد مستوى الأمان كيفية إرسال طلب SNMP. لا يتوفر هذا الخيار إلا عند استخدام SNMP v3. تتوفر الخيارات التالية: |
اسم المستخدم | للمصادقة، يظهر فقط عند استخدام SNMP v3. |
عبارة مرور المصادقة | عبارة المرور للمصادقة، تظهر فقط عند استخدام SNMP مع المصادقة. |
بروتوكول المصادقة | بروتوكول المصادقة، يظهر فقط عند استخدام SNMP مع المصادقة. الخيارات المتاحة حاليًا هي MD5 أو SHA. الإعداد الافتراضي هو MD5. |
عبارة مرور الخصوصية | للتشفير، لا تظهر إلا عند استخدام SNMP مع المصادقة والتشفير. |
بروتوكول الخصوصية | للتشفير، لا يظهر إلا عند استخدام SNMP مع المصادقة والتشفير. الخيارات المتاحة حاليًا هي DES و AES. الإعداد الافتراضي هو DES. |
المجتمع | تسمح معظم أجهزة الشبكة بمستويات مختلفة من الوصول إلى SNMP، على سبيل المثال: للقراءة فقط أو للقراءة/الكتابة. وعادةً ما يكون لكل مستوى من مستويات الوصول هذه سلسلة مجتمع مختلفة. لقراءة البيانات، يجب معرفة مجتمع "القراءة" فقط، والذي عادةً ما يكون: public. |
OID الطلب | أدخل معرّف OID لقاعدة معلومات الإدارة (MIB) الخاص بالطلب. إذا كان معرّف OID غير معروف، فيمكن تصفحه على جهاز المهام باستخدام المتصفح عبر الإنترنت. يمكن طلب معرّفات OID إضافية من مهمة SNMP واحدة بالنقر على زر “+” الموجود بجوار زر “تصفح”. إذا تم إدخال أكثر من معرّف OID واحد، يتم إلحاق مخرجات جميع معرّفات OID في نفس ملف الإخراج، واحدًا تلو الآخر. |
التجاوز | اترك هذا الإعداد على "تلقائي". سيتولى هذا الإعداد حساب قيمة الفرق (Diff-value)، إذا تمت إعادة تعيين العداد إلى 0. وهذا يمنع ظهور قيم الفرق السالبة. |
إخفاء وقت النقل | بشكل افتراضي، يتم تسجيل الوقت الذي يستغرقه نقل بيانات SNMP في قاعدة البيانات. إذا كانت هذه المعلومات غير ذات صلة، فحدد هذا المربع لتوفير مساحة في قاعدة البيانات. |
إخفاء القيمة | حدد أنواع مخرجات SNMP التي لا ينبغي أخذها في الاعتبار. إذا تم تمكين مربع الاختيار "إخفاء رسالة المعلومات"، فلن يتم إرسال إخراج سلسلة SNMP إلى الخادم. سيتم تعيين قيمة الإرجاع على "قيمة غير صالحة" فقط إذا كانت القيمة أو قيمة الفرق مطلوبة ولم يكن من الممكن استخراج قيمة من السلسلة. مربعات الاختيار «إخفاء القيمة» و«إخفاء قيمة الفرق» و |
"ربط السلسلة بالقيمة" | حدد تعيينًا لكائنات سلاسل SNMP إلى قيم رقمية. يمكن استخراج قيمة السلسلة كقيمة سلسلة مباشرةً أو عن طريق تعريف خريطة سلسلة بالتنسيق 1=foo,2=bar,0=*، مما يعني أن السلسلة foo سيتم تحويلها إلى القيمة الرقمية 1، والسلسلة bar إلى القيمة الرقمية 2، و(اختياريًا) كل شيء آخر إلى القيمة 0. لا يُسمح بوجود مسافات في هذا التعريف. إذا لم يتم تعريف أي خريطة سلاسل أو فشل التعيين (لم يتم تعريف عامل افتراضي)، يتم تحليل السلسلة بحثًا عن أول ظهور للأحرف الرقمية ويتم نقل النتيجة إلى الخادم حسب الطلب (القيمة و/أو قيمة الفرق). |
تعريف الوحدة | انظر قسم وحدة/مقسوم SNMP أدناه. |
تسمح القائمة المنسدلة «العلامات» بإدخال متغيرات محددة مسبقًا في الحقول أعلاه، على سبيل المثال $NAME$ لاسم المهمة.
التصفح عبر الإنترنت
للعثور على معرّف OID SNMP محدد على وكيل SNMP البعيد واستخدامه كطلب SNMP، انقر فوق الزر "تصفح عبر الإنترنت". من المفيد معرفة الموقع التقريبي في الشجرة لتقليل وقت التصفح وحركة مرور الشبكة وحجم المخرجات. أدخل سلسلة المجتمع الصحيحة لوكيل SNMP وحدد إصدار SNMP في قسم «الاتصال». يمكن تحديد قواعد معلومات MIB الأكثر استخدامًا من القائمة المنسدلة، بدءًا من «الجذر»، والذي يجب تحديده فقط إذا كان موقع الكائن المطلوب غير معروف تمامًا:
ابدأ العملية باستخدام زر «بدء الفحص»:
قد يستغرق المسح بعض الوقت حتى يكتمل، اعتمادًا على عدد الكائنات الموجودة أسفل معرّف الجذر (Root OID) المحدد. انقر فوق «تحديث» (Refresh) حتى تظهر حالة «التنزيل» (Download) على أنها «مكتمل» (Complete):
يُظهر عداد «التنزيل» عدد معرّفات OID التي تم العثور عليها. لعرضها، حدد «إظهار الشجرة» أو «إظهار الترتيب المسطح». لتحديد معرّف OID، ما عليك سوى النقر على رابط معرّف OID.
المثال 1 - عرض الشجرة مع النوع والقيمة
المثال 2 - عرض مسطح مع القيمة
إذا لم تعرض نتائج الشجرة التي تم فحصها معلومات نصية، بل عرضت فقط معرّفات OID بالصيغة التالية
1.3.6.1.4.1.13424.11.1.1.25
فمن المحتمل أن MIB الخاص بالجهاز الذي تم مسحه غير مثبت. للبحث عن MIBs لـ SNMP، ابحث في موقع الشركة المصنعة للجهاز أو ابحث في الصفحة الرئيسية لـ MIB Depot عن MIBs المتاحة للجمهور.
تحليل الاسم العام لـ SNMP
لا تقوم بعض خوادم SNMP دائمًا بمطابقة نفس معرّف الكائن (OID) مع نفس القيمة. قد تنجح قراءة استخدام القرص من MIB المضيف حتى يتم إضافة قرص جديد إلى ذلك النظام. ومن المحتمل أن يتغير الفهرس (الذي يمثل .2 في المثال أدناه).
لتجنب ذلك، يمكن لمحرك SKOOR استخدام معرّف OID محدد من قبل المستخدم لتعيين الأسماء إلى الفهارس. ولتحقيق ذلك، نقوم باستبدال الفهرس بسلسلة نصية لمطابقتها مع معرّف OID المحدد، باستخدام النمط الذي يقع بين حرفين $. قبل تنفيذ الاستعلام، سيقوم محرك SKOOR باستبدال $string$ بالفهرس المطابق الذي تم العثور عليه. فيما يلي مثال على معرّف OID الذي قد يرغب المرء في قراءة قيمة منه:
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.2
بدلاً من إدخال هذه السلسلة كـ Request OID، ابحث أولاً عن سلسلة وصف SNMP للقرص المخزنة تحت OID التالي:
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr
قيمتها هي: C:\ التسمية: الرقم التسلسلي dc133042
الآن استبدل الرقم 2 بالقيمة المذكورة أعلاه محاطة بعلامتي $:
iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label: Serial Number dc133042$
بمجرد إدخال السلسلة الثانية من الرموز $، سيظهر سطر جديد باسم «Resolve OID» أسفل سطر «Request OID1». أدخل OID الوصف المذكور أعلاه هنا:
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr
سيتم استبدال $C:\ Label: Serial Number dc133042$ بالرقم 2.
القيمة الافتراضية لـ SNMP
إذا فشل تحليل اسم OID (انظر القسم أعلاه)، فمن الممكن تعريف فهرس افتراضي. في المثال أعلاه، يمكن كتابة الفهرس الافتراضي بعد OID الطلب، مفصولًا بفراغ:
iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label: Serial Number dc133042$ 2
وحدة/مقسّم SNMP
إخراج SNMP في المثال الوارد في القسم أعلاه هو:
hrStorageDescr.2 C:\ Label: Serial Number dc133042 hrStorageAllocationUnits.2 4096 Bytes hrStorageSize.2 2120572 hrStorageUsed.2 1839613
للحصول على نتيجة سعة التخزين المستخدمة بالجيجابايت بدلاً من ذلك، يجب تعيين المقسوم عليه الصحيح.
يخبرنا مستكشف Windows بما يلي عن نظام الملفات على محرك الأقراص C:\:
Volume: 8283MB, 8.08GB Total Size, Freespace 1.07GB
لذلك، يجب ضرب hrStorageUsed.2 في 4096 للحصول على القيمة بالبايت، ثم قسمتها على 1024 ثلاث مرات للحصول على القيمة بالغيغابايت.
1839613 × 4096 / 1024 / 1024 / 1024 = 7.01 جيجابايت مستخدمة (وهو ما يتوافق مع أرقام مستكشف Windows)
لتعيين المقسوم عليه في محرك SKOOR، اجمع 1024 × 1024 × 1024 / 4096 = 262144
اضغط على زر «الوحدة» (Unit) لتحديد اسم القيمة ووحدتها ومقسومها:
ستكون النتيجة في قسم القيم بعد تنفيذ مهمة SNMP هي 7.01 جيجابايت.
للحصول على النسبة المئوية المستخدمة بدلاً من ذلك، استخدم هذه الصيغة: hrStorageUsed / hrStorageSize × 100، وبذلك يكون المقسوم عليه هو 21205.72.
مهام SNMP ذات معرّفات OID متعددة
من الممكن تقييم عدة معرّفات OID ضمن مهمة SNMP واحدة. يجب أن تكون جميع استعلامات SNMP صالحة للجهاز المرتبط بمهمة SNMP (لا يمكن تعريف استعلامات لأجهزة مختلفة في مهمة SNMP واحدة). يتم تمكين معرّفات OID الإضافية بالنقر فوق زر الإضافة الموجود بجوار زر «تصفح عبر الإنترنت». بمجرد إضافة معرّفات OID إضافية، تظهر حقول «النتائج» الإضافية في قسم «النتائج» أدناه:
يحتوي كل معرّف OID على قسم إخراج قابل للتكوين بشكل منفصل، بالإضافة إلى تعريف خاص به لربط السلسلة بالقيمة وزر «الوحدة». يمكن تعطيل وقت النقل بشكل عام.
يستخدم المثال «حل معرّفات OID» لكل من معرّفات OID الثلاثة. انظر قسم «تحليل الأسماء العامة لـ SNMP» أعلاه للحصول على التفاصيل.
يطلب معرّفا الهوية الأول والثاني عدّادي ifInOctets و ifOutOctets من واجهة جهاز شبكي. بالنسبة لهذه العدادات، لا تعتبر القيمة المطلقة ذات صلة، بل ما يهم هو التغير بمرور الوقت، لذا فإن حقول النتائج لهذين OID تحجب القيم نفسها وأي قيم سلسلة (التي لا يتم إرجاعها على أي حال بواسطة هذا OID).
يتم تعطيل وحدات القيمة والقيمة النصية في تعريف الوحدة لنتيجة معرّف الهوية الأول وفقًا لذلك:
يتم تحديد مقسوم عليه لتحويل الناتج إلى كيلوبت/ثانية.
byte/s → kBit/s
kbit = byte / 1000 * 8
kbit = byte / (1000 / 8)
kbit = byte / 125
يطلب معرّف OID الثالث حالة التشغيل (ifOperStatus) لواجهة الشبكة، والتي يتم إرجاعها كسلسلة نصية (وليس ككائن سلسلة في حد ذاته، ولكن الناتج يكون على سبيل المثال: up(1)) بواسطة وكيل SNMP. يمكن ملاحظة ذلك عند استخدام زر «Browse online» مع معرّف OID .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifOperStatus بصفتك الجذر (Root):
نظرًا لأن محرك SKOOR يعالج القيم الرقمية بشكل أسرع، فمن الأفضل عادةً تحويل السلسلة المعروفة إلى قيمة رقمية باستخدام حقل «Map string to value»:
وهذا يعني أن النتيجة المرسلة إلى الخادم ستكون قيمةً وليس سلسلةً بعد الآن، وبالتالي يمكن إخفاء القيم النصية ومقارنة القيم.
يتم تحديد تعريف الوحدة لنتيجة معرّف الكائن (OID) الثالث على النحو التالي:
ثم يتم عرض النتائج في قسم «القيم»:
إذا تسبب أحد معرّفات OID المحددة في حدوث خطأ، فسيتم عرض رسالة الخطأ الخاصة بهذا المعرّف وستفشل المهمة بأكملها. لا تتم معالجة جميع معرّفات OID اللاحقة في حالة فشل أحدها:
قيم SNMP وحدود الإنذار
القيمة / حد الإنذار | الوصف |
|---|---|
القيمة 1-n | قيمة رقمية مخصصة يتم تحديدها عبر زر «وحدة النتيجة» الخاص بـ OIDs. |
قيمة الفرق 1-n | قيمة الفرق الرقمية المخصصة التي تم تحديدها بواسطة زر "وحدة النتيجة" في OIDs. |
القيمة النصية 1-n | قيمة سلسلة مخصصة تم تعريفها بواسطة زر "وحدة النتيجة" في OIDs. |
رمز الخطأ | رمز خطأ عام للمهمة (انظر قسم رموز أخطاء المهام) |
أمثلة SNMP
المثال 1 - اختيار واجهة SNMP mib-2 حسب الوصف
من الممكن تحديد رقم الواجهة تلقائيًا من خلال وصفها. وقد يكون ذلك مفيدًا إذا كان عدد واجهات جهاز التوجيه عرضة للتغيير. وفي هذه الحالة، يجب أن يكون من الممكن تحديد الواجهة من خلال وصفها.
نريد البحث عن OID
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.<معرف الواجهة>
لمعرفة عدد الأوكتيتات التي مرت إلى الداخل عبر واجهة VLAN 10. للقيام بذلك، نبحث أولاً عن وصف الواجهة تحت .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr:
ونجد أن الوصف هو:
em0_vlan10
الآن استبدل الفهرس الرقمي بعد ifInOctets بالسلسلة $em0_vlan10$ واستخدمها كـ Request OID:
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.$em0_vlan10$
كـ «Resolve OID»، استخدم
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr
يتم البحث عن سلسلة الوصف المطابقة مع مراعاة أحرف كبيرة وصغيرة. ستتذكر المهمة آخر فهرس. إذا تغير الرقم، فستقوم بإعادة فحص الأوصاف.



















