Πώς να παρακολουθείτε την κατάσταση του USB UPS μέσω SNMP
Πώς να παρακολουθείτε την κατάσταση του USB UPS μέσω SNMP
Υπάρχουν αρκετοί υπολογιστές με UPS συνδεδεμένο με USB. Όλοι οι υπολογιστές χρησιμοποιούν το πρόγραμμα apcupsd. Ας υποθέσουμε ότι θέλετε να συγκεντρώσετε πληροφορίες σχετικά με την κατάσταση του τροφοδοτικού για κάθε μονάδα σε ένα μέρος. Εφόσον το snmpd εκτελείται ήδη εκεί, θα ήταν λογικό να επεκταθεί η λειτουργικότητά του.
Διαφήμιση
Η παρακάτω λύση, ευγενική προσφορά του Ιστολόγιο διαχειριστή, θα συλλέξει τα δεδομένα από όλες τις μονάδες snmpd ταυτόχρονα.
Για να παρακολουθήσουμε την κατάσταση του USB UPS μέσω SNMP, πρέπει πρώτα να τροποποιήσουμε τη διαμόρφωση δαίμονα snmp.
Προετοιμασίες
Προσθέτει τα ακόλουθα στη διαμόρφωση snmpd.conf.
# APC UPS
pass .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh
Τα περιεχόμενα του σεναρίου /etc/snmp/apcupsd.sh είναι τα εξής.
#!/bin/sh -f # Ελέγξτε ότι το apcupsd είναι online. 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) echo "string"; apcaccess -u -p ΜΟΝΤΕΛΟ; έξοδος 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) echo "string"; 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) echo "string"; 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) echo "string"; apcaccess -u -p ΑΥΤΟΔΟΚΙΜΑΣΙΑ; έξοδος 0;; $PLACE.7.2.4.0) echo "string"; apcaccess -u -p ΑΥΤΟΔΟΚΙΜΑΣΙΑ; έξοδος 0;; $PLACE.8.1.0) echo "Gauge32"; ηχώ 1; έξοδος 0;; *) echo "string"? ηχώ "Ακ... $RET $REQ"; έξοδος 0;; # Δεν πρέπει να συμβεί. esac.
Αν αναρωτιέστε για τα OID, μπορείτε να τα βρείτε ΕΔΩ. Λάβετε υπόψη ότι ορισμένα μοντέλα 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:: επιχειρήσεις.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.2.2.3.0 = Timeticks: (432000) 1:12:00.00
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.3.2.5.0 = STRING: "Αυτόματος ή ρητός αυτοέλεγχος"
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.4.2.4.0 = Gauge32: 13
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.7.2.3.0 = STRING: "ΟΧΙ"
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.7.2.4.0 = STRING: "ΟΧΙ"
SNMPv2-SMI:: επιχειρήσεις.318.1.1.1.8.1.0 = Gauge32: 1
Εάν διαμορφώσετε περαιτέρω το σενάριο παρακολούθησης, μπορείτε να λάβετε αυτά τα εξαιρετικά γραφήματα: