วิธีตรวจสอบสถานะ USB UPS ผ่าน SNMP
วิธีตรวจสอบสถานะ USB UPS ผ่าน SNMP
มีคอมพิวเตอร์หลายเครื่องที่มี UPS ที่เชื่อมต่อ USB คอมพิวเตอร์ทุกเครื่องใช้โปรแกรม apcupsd สมมติว่าคุณต้องการรวมข้อมูลเกี่ยวกับสถานะของแหล่งจ่ายไฟสำหรับทุกยูนิตในที่เดียว เนื่องจาก snmpd ทำงานอยู่ที่นั่นแล้ว จึงมีเหตุผลที่จะขยายฟังก์ชันการทำงาน
โฆษณา
วิธีแก้ปัญหาด้านล่างได้รับความอนุเคราะห์จาก บล็อกของแอดมินจะรวบรวมข้อมูลจากหน่วย snmpd ทั้งหมดพร้อมกัน
ในการตรวจสอบสถานะ USB UPS ผ่าน SNMP เราต้องแก้ไขการกำหนดค่า snmp daemon ก่อน
การเตรียมการ
เพิ่มสิ่งต่อไปนี้ในการกำหนดค่า 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" ใน $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" ใน $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" ใน $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 "สตริง"; 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 SELFTEST; ทางออก 0;; $PLACE.7.2.4.0) echo "สตริง"; apcaccess -u -p SELFTEST; ทางออก 0;; $PLACE.8.1.0) echo "Gauge32"; เสียงสะท้อน 1; ทางออก 0;; *) echo "สตริง"; ก้อง “แอ๊ก... $RET $REQ"; ทางออก 0;; #ไม่ควรเกิดขึ้น อีแซก
หากคุณสงสัยเกี่ยวกับ OID คุณสามารถค้นหาได้ ที่นี่. โปรดทราบว่า UPS บางรุ่นไม่ได้ส่งคืนพารามิเตอร์ทั้งหมดหรืออยู่ในรูปแบบที่ไม่ถูกต้อง ดังนั้นรหัสจึงอาจมีความไม่ถูกต้องและส่วนท้าย
ตอนนี้คุณพร้อมแล้ว
วิธีตรวจสอบสถานะ USB UPS ผ่าน SNMP
ในการตรวจสอบสถานะ USB UPS ผ่าน SNMP ให้รันคำสั่งต่อไปนี้: snmpwalk -v 1 -c สาธารณะ 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.8.1.0 = มาตรวัด 32: 1
หากคุณกำหนดค่าสคริปต์การมอนิเตอร์เพิ่มเติม คุณจะได้รับกราฟที่ดีเหล่านี้: