كيفية مراقبة حالة USB UPS عبر SNMP
كيفية مراقبة حالة USB UPS عبر SNMP
هناك العديد من أجهزة الكمبيوتر المزودة بـ UPS المتصلة بـ USB. تستخدم جميع أجهزة الكمبيوتر برنامج apcupsd. لنفترض أنك تريد تجميع معلومات حول حالة مصدر الطاقة لكل وحدة في مكان واحد. نظرًا لأن snmpd يعمل بالفعل هناك ، فسيكون من المنطقي توسيع وظائفه.
الحل أدناه ، بإذن من مدونة المشرف، سيقوم بجمع البيانات من جميع وحدات snmpd مرة واحدة.
من أجل مراقبة حالة USB UPS عبر SNMP ، نحتاج أولاً إلى تعديل التكوين الخفي لـ snmp.
الاستعدادات
يضيف ما يلي إلى ملف التكوين snmpd.conf.
# APC UPS
تمرير .1.3.6.1.4.1.318.1.1.1 / bin / sh /etc/snmp/apcupsd.sh
محتويات البرنامج النصي /etc/snmp/apcupsd.sh كالتالي.
#! / bin / sh -f # تحقق من أن apcupsd متصل. apcaccess> / dev / null 2> & 1 || خروج 0 PLACE = ". 1.3.6.1.4.1.318.1.1" REQ = "$ 2" # رقم معرف الكائن المطلوب # معالجة طلبات SET ببساطة عن طريق تسجيل القيمة المخصصة. # لاحظ أن مثل هذه "التعيينات" ليست ثابتة ، ولا يتم التحقق من بناء الجملة أو القيمة المطلوبة. # إذا ["$ 1" = "-s"] ؛ من ثم. صدى $ * >> /tmp/passtest.log. خروج 0. فاي # # طلبات GETNEXT - تحديد النسخة الصالحة التالية. # إذا ["$ 1" = "-n"] ؛ من ثم. حالة "REQ $" في. $ PLACE | \ $ PLACE.0 | \ PLACE دولار أمريكي 0. * | \ $ PLACE.1 | \ $ PLACE.1.1.0 *) RET = $ PLACE.1.1.1.0 ؛؛ PLACE دولار 1 * | \ $ PLACE 2.0 | \ PLACE $ 2.0. * | \ $ PLACE.2.1 | \ $ PLACE.2.2.0 *) RET = $ PLACE.2.2.1.0 ؛؛ $ PLACE.2.2.1 *) RET = $ PLACE.2.2.2.0 ؛؛ $ PLACE.2.2.2 *) RET = $ PLACE.2.2.3.0 ؛؛ $ PLACE.2.2.3 *) RET = $ PLACE.2.2.4.0 ؛؛ PLACE دولار 2 * | \ PLACE دولار 3.0 * | \ PLACE $ 3.1 * | \ $ PLACE.3.2.0 *) RET = $ PLACE.3.2.1.0 ؛؛ PLACE $ 3.2.1 * | \ PLACE $ 3.2.2 * | \ $ PLACE.3.2.3 *) RET = $ PLACE.3.2.4.0 ؛؛ $ PLACE.3.2.4 *) RET = $ PLACE.3.2.5.0 ؛؛ PLACE دولار 3.2 * | \ PLACE دولار 4.0 * | \ PLACE $ 4.1 * | \ $ PLACE.4.2.0 *) RET = $ PLACE.4.2.1.0 ؛؛ $ PLACE.4.2.1 *) RET = $ PLACE.4.2.2.0 ؛؛ $ PLACE.4.2.2 *) RET = $ PLACE.4.2.3.0 ؛؛ $ PLACE.4.2.3 *) RET = $ PLACE.4.2.4.0 ؛؛ PLACE $ 4.2. * | \ PLACE.5 دولار * | \ PLACE.6 دولار أمريكي * | \ PLACE $ 7.0 * | \ $ PLACE.7.1 * | \ $ PLACE.7.2.0 * | \ $ PLACE.7.2.1 * | \ $ PLACE.7.2.2 *) RET = $ PLACE.7.2.3.0 ؛؛ $ PLACE.7.2.3 *) RET = $ PLACE.7.2.4.0 ؛؛ $ PLACE.7 * | \ $ PLACE.8.0 *) RET = $ PLACE.8.1.0 ؛؛ *) خروج 0 ؛؛ esac. آخر. # # طلبات GET - تحقق من وجود مثيل صالح. # حالة "REQ $" في. $ PLACE.1.1.1.0 | \ $ PLACE.2.2.1.0 | \ $ PLACE.2.2.2.0 | \ $ PLACE.2.2.3.0 | \ $ PLACE.2.2.4.0 | \ $ PLACE.3.2.1.0 | \ $ PLACE.3.2.4.0 | \ $ PLACE.3.2.5.0 | \ $ PLACE.4.2.1.0 | \ $ PLACE.4.2.2.0 | \ $ PLACE.4.2.3.0 | \ $ PLACE.4.2.4.0 | \ $ PLACE.7.2.3.0 | \ $ PLACE.7.2.4.0 | \ $ PLACE.8.1.0) RET = $ REQ ؛؛ *) خروج 0 ؛؛ esac. فاي # # "معالجة" طلبات GET * - إرجاع القيمة المشفرة. # صدى "$ RET" الحالة "$ RET" في. $ PLACE.1.1.1.0) صدى "سلسلة" ؛ نموذج apcaccess -u -p ؛ خروج 0 ؛؛ $ PLACE.2.2.1.0) صدى "Gauge32" ؛ apcaccess -u -p BCHARGE ؛ خروج 0 ؛؛ $ PLACE.2.2.2.0) صدى "Gauge32" ؛ apcaccess -u -p ITEMP ؛ خروج 0 ؛؛ $ PLACE.2.2.3.0) صدى "Timeticks" ؛ echo $ (($ (LC_ALL = C printf "٪. * f" 0 $ (apcaccess -u -p TIMELEFT)) * 6000)) ؛ خروج 0 ؛؛ $ PLACE.2.2.4.0) صدى "سلسلة" ؛ apcaccess -u -p BATTDATE ؛ خروج 0 ؛؛ $ PLACE.3.2.1.0) صدى "Gauge32" ؛ apcaccess -u -p LINEV ؛ خروج 0 ؛؛ $ PLACE.3.2.4.0) صدى "Gauge32" ؛ apcaccess -u -p LINEFREQ ؛ خروج 0 ؛؛ $ PLACE.3.2.5.0) صدى "سلسلة" ؛ apcaccess -u -p LASTXFER ؛ خروج 0 ؛؛ $ PLACE.4.2.1.0) صدى "Gauge32" ؛ apcaccess -u -p الإخراج ؛ خروج 0 ؛؛ $ PLACE.4.2.2.0) صدى "Gauge32" ؛ apcaccess -u -p LINEFREQ ؛ خروج 0 ؛؛ $ PLACE.4.2.3.0) صدى "Gauge32" ؛ apcaccess -u -p LOADPCT ؛ خروج 0 ؛؛ $ PLACE.4.2.4.0) صدى "Gauge32" ؛ apcaccess -u -p LOADPCT ؛ خروج 0 ؛؛ $ PLACE.7.2.3.0) صدى "سلسلة" ؛ apcaccess -u -p SELFTEST ؛ خروج 0 ؛؛ $ PLACE.7.2.4.0) صدى "سلسلة" ؛ apcaccess -u -p SELFTEST ؛ خروج 0 ؛؛ PLACE.8.1.0) صدى "Gauge32" ؛ صدى 1 خروج 0 ؛؛ *) صدى "سلسلة" ؛ صدى "ack... RET $ REQ "؛ خروج 0 ؛؛ # لا ينبغي أن يحدث. esac.
إذا كنت تتساءل عن معرفات الكائن ، فيمكنك العثور عليها هنا. لاحظ أن بعض طرز UPS لا تُرجع جميع المعلمات أو بتنسيق خاطئ ، لذلك قد يحتوي الرمز على معلومات غير دقيقة وأوتار.
أنت الآن جاهز.
كيفية مراقبة حالة USB UPS عبر SNMP
لمراقبة حالة USB UPS عبر SNMP ، قم بتشغيل الأمر التالي: snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.318.1.1.1
. سيكون الإخراج على هذا النحو:
SNMPv2-SMI:: enterprise.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.3.0 = الجداول الزمنية: (432000) 1: 12: 00.00
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.5.0 = STRING: "اختبار ذاتي تلقائي أو صريح"
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.4.0 = Gauge32: 13
SNMPv2-SMI:: enterprise.318.1.1.1.7.2.3.0 = STRING: "NO"
SNMPv2-SMI:: enterprise.318.1.1.1.7.2.4.0 = STRING: "NO"
SNMPv2-SMI:: enterprise.318.1.1.1.8.1.0 = Gauge32: 1
إذا قمت بتهيئة البرنامج النصي للمراقبة ، يمكنك الحصول على هذه الرسوم البيانية الأنيقة: