როგორ ვაკონტროლოთ USB UPS-ის სტატუსი SNMP-ის საშუალებით
როგორ ვაკონტროლოთ USB UPS-ის სტატუსი SNMP-ის საშუალებით
არის რამდენიმე კომპიუტერი USB-თან დაკავშირებული UPS-ით. ყველა კომპიუტერი იყენებს 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.1" REQ="$2" # მოთხოვნილი OID # # დაამუშავეთ SET მოთხოვნები უბრალოდ მინიჭებული მნიშვნელობის აღრიცხვით. # გაითვალისწინეთ, რომ ასეთი "დავალებები" არ არის მუდმივი, არც სინტაქსი ან მოთხოვნილი მნიშვნელობა დადასტურებულია. # თუ [ "$1" = "-s" ]; მაშინ. echo $* >> /tmp/passtest.log. გასასვლელი 0. ფი # # GETNEXT მოთხოვნა - განსაზღვრეთ შემდეგი სწორი მაგალითი. # თუ [ "$1" = "-n"]; მაშინ. საქმე "$REQ" in. $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;; ესაკი. სხვა. # # მიიღეთ მოთხოვნა - შეამოწმეთ სწორი მაგალითი. # საქმე "$REQ" in. $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;; ესაკი. ფი # # "დამუშავება" GET* მოთხოვნები - დააბრუნეთ მყარი კოდირებული მნიშვნელობა. # ექო "$RET" საქმე "$RET" in. $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) ექო „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;; #არ უნდა მოხდეს. ესაკი.
თუ გაინტერესებთ 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:: enterprises.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: enterprises.318.1.1.1.2.2.3.0 = Timeticks: (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 = Gauge32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.3.2.5.0 = STRING: "ავტომატური ან აშკარა თვითტესტი"
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: enterprises.318.1.1.1.4.2.4.0 = Gauge32: 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 = Gauge32: 1
თუ შემდგომ დააკონფიგურირებთ მონიტორინგის სკრიპტს, შეგიძლიათ მიიღოთ ეს შესანიშნავი გრაფიკები: