Windows Tips & News

כיצד לנטר את מצב UPS של USB באמצעות SNMP

click fraud protection
מוּמלָץ: לחץ כאן כדי לתקן בעיות של Windows ולמטב את ביצועי המערכת

כיצד לנטר את מצב UPS של USB באמצעות SNMP

ישנם מספר מחשבים עם UPS המחובר ל-USB. כל המחשבים משתמשים בתוכנת apcupsd. נניח שברצונך לצבור מידע על מצב ספק הכוח עבור כל יחידה במקום אחד. מכיוון ש-snmpd כבר פועל שם, זה יהיה הגיוני להרחיב את הפונקציונליות שלו.

פרסומת

הפתרון שלהלן, באדיבות הבלוג של מנהל, יאסוף את הנתונים מכל יחידות snmpd בבת אחת.

על מנת לפקח על סטטוס UPS של USB באמצעות SNMP, עלינו לשנות תחילה את תצורת הדמון snmp.

תוכןלהתחבא
הכנות
כיצד לנטר את מצב UPS של USB באמצעות SNMP

הכנות

מוסיף את הדברים הבאים ל-config 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.1" REQ="$2" # OID מבוקש # # עבד בקשות SET פשוט על ידי רישום הערך שהוקצה. # שימו לב ש"הקצאות" כאלה אינן מתמידות, # וגם התחביר או הערך המבוקש לא מאומתים. # if [ "$1" = "-s" ]; לאחר מכן. echo $* >> /tmp/passtest.log. יציאה 0. fi # # בקשות GETNEXT - קבע את המופע התקין הבא. # if [ "$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. fi # # "עיבוד" בקשות GET* - החזרת ערך מקודד קשה. # הד "$RET" מקרה "$RET" ב. $PLACE.1.1.1.0) הד "מחרוזת"; apcaccess -u -p MODEL; יציאה 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; יציאה 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; יציאה 0;; $PLACE.2.2.3.0) echo "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) echo "Gauge32"; apcaccess -u -p LINEV; יציאה 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; יציאה 0;; $PLACE.3.2.5.0) הד "מחרוזת"; apcaccess -u -p LASTXFER; יציאה 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; יציאה 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; יציאה 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; יציאה 0;; $PLACE.4.2.4.0) echo "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) echo "Gauge32"; הד 1; יציאה 0;; *) הד "מחרוזת"; הד "אק... $RET $REQ"; יציאה 0;; # לא אמור לקרות. esac.

אם אתה תוהה לגבי OIDs, אתה יכול למצוא אותם פה. שים לב שדגמי UPS מסוימים אינם מחזירים את כל הפרמטרים או בפורמט שגוי, כך שהקוד עשוי להכיל אי דיוקים ושבבים.

עכשיו אתה מוכן.

כיצד לנטר את מצב UPS של USB באמצעות 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:: enterprises.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750 "
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.1.0 = מד32: 100
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.2.0 = מד32: 36
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.3.0 = זמני זמן: (432000) 1:12:00.00
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.1.0 = מד32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.4.0 = מד32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.5.0 = STRING: "בדיקה עצמית אוטומטית או מפורשת"
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.1.0 = מד32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.2.0 = מד32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.3.0 = מד32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.4.0 = מד32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.3.0 = STRING: "לא"
SNMPv2-SMI:: enterprises.318.1.1.1.7.2.4.0 = STRING: "לא"
SNMPv2-SMI:: enterprises.318.1.1.1.8.1.0 = מד32: 1

אם תגדיר עוד יותר את סקריפט הניטור, תוכל לקבל את הגרפים הנחמדים האלה:

העלאהמתחטמפ' סוללהזמן ריצה
מוּמלָץ: לחץ כאן כדי לתקן בעיות של Windows ולמטב את ביצועי המערכת
סרגיי טקצ'נקו, מחבר ב-Winaero

סרגיי טקצ'נקו, מחבר ב-Winaero

Alt+Tab Tuner - כוונון הגדרות של תיבת הדו-שיח Alt+Tab ב-Windows 7.Alt+Tab Tuner הוחלף על ידי Wina...

קרא עוד

סרגיי טקצ'נקו, מחבר ב-Winaero

אתר זה משתמש בקובצי Cookie כדי לשפר את החוויה שלך בזמן שאתה מנווט באתר. מתוך קובצי Cookie אלה, קו...

קרא עוד

סרגיי טקצ'נקו, מחבר ב-Winaero

למיקרוסופט יש מְעוּדכָּן ערוץ הפיתוח של Windows 10 עם מבנה חדש. מקורבים מקבלים את Windows 10 Buil...

קרא עוד