Cara memantau status UPS USB melalui SNMP
Cara memantau status UPS USB melalui SNMP
Ada beberapa komputer dengan UPS yang terhubung ke USB. Semua komputer menggunakan program apcupsd. Katakanlah Anda ingin mengumpulkan informasi tentang status catu daya untuk setiap unit di satu tempat. Karena snmpd sudah berjalan di sana, akan logis untuk memperluas fungsinya.
Solusi di bawah ini, milik Blog Admin, akan mengumpulkan data dari semua unit snmpd sekaligus.
Untuk memantau status UPS USB melalui SNMP, pertama-tama kita perlu memodifikasi konfigurasi daemon snmp.
Persiapan
Tambahkan berikut ini ke config snmpd.conf.
#UP APC
lulus .1.3.6.1.4.1.318.1.1.1 /bin/sh /etc/snmp/apcupsd.sh
Isi dari skrip /etc/snmp/apcupsd.sh adalah sebagai berikut.
#!/bin/sh -f # Periksa apakah apcupsd sedang online. apcaccess > /dev/null 2>&1 || keluar 0 TEMPAT=".1.3.6.1.4.1.1.318.1.1.1" REQ="$2" # OID yang Diminta # # Proses permintaan SET hanya dengan mencatat nilai yang ditetapkan. # Perhatikan bahwa "tugas" seperti itu tidak persisten, # juga sintaks atau nilai yang diminta tidak divalidasi. # jika [ "$1" = "-s" ]; kemudian. echo $* >> /tmp/passtest.log. keluar 0. fi # # Permintaan GETNEXT - tentukan instance valid berikutnya. # jika [ "$1" = "-n" ]; kemudian. kasus "$REQ" di. $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;; *) keluar 0;; esac. lain. # # DAPATKAN permintaan - periksa instance yang valid. # kasus "$REQ" di. $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;; *) keluar 0;; esac. fi # # Permintaan GET* "Proses" - mengembalikan nilai hard-coded. # gema "$RET" kasus "$RET" di. $PLACE.1.1.1.0) echo "string"; apcaccess -u -p MODEL; keluar 0;; $PLACE.2.2.1.0) echo "Gauge32"; apcaccess -u -p BCHARGE; keluar 0;; $PLACE.2.2.2.0) echo "Gauge32"; apcaccess -u -p ITEMP; keluar 0;; $PLACE.2.2.3.0) echo "Timeticks"; echo $(($(LC_ALL=C printf "%.*f" 0 $(apcaccess -u -p TIMELEFT)) * 6000)); keluar 0;; $PLACE.2.2.4.0) echo "string"; apcaccess -u -p BATTDATE; keluar 0;; $PLACE.3.2.1.0) echo "Gauge32"; apcaccess -u -p LINEV; keluar 0;; $PLACE.3.2.4.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; keluar 0;; $PLACE.3.2.5.0) echo "string"; apcaccess -u -p LASTXFER; keluar 0;; $PLACE.4.2.1.0) echo "Gauge32"; apcaccess -u -p OUTPUTV; keluar 0;; $PLACE.4.2.2.0) echo "Gauge32"; apcaccess -u -p LINEFREQ; keluar 0;; $PLACE.4.2.3.0) echo "Gauge32"; apcaccess -u -p LOADPCT; keluar 0;; $PLACE.4.2.4.0) echo "Gauge32"; apcaccess -u -p LOADPCT; keluar 0;; $PLACE.7.2.3.0) echo "string"; apcaccess -u -p SENDIRI; keluar 0;; $PLACE.7.2.4.0) echo "string"; apcaccess -u -p SENDIRI; keluar 0;; $PLACE.8.1.0) echo "Gauge32"; gema 1; keluar 0;; *) echo "string"; gema "Ak... $RET $REQ"; keluar 0;; # Seharusnya tidak terjadi. esac.
Jika Anda bertanya-tanya tentang OID, Anda dapat menemukannya DI SINI. Perhatikan bahwa beberapa model UPS tidak mengembalikan semua parameter atau dalam format yang salah, sehingga kode mungkin berisi ketidakakuratan dan stub.
Sekarang Anda sudah siap.
Cara memantau status UPS USB melalui SNMP
Untuk memantau status UPS USB melalui SNMP, jalankan perintah berikut: snmpwalk -v 1 -c publik 127.0.0.1 .1.3.6.1.4.1.318.1.1.1
. Outputnya akan seperti itu:
SNMPv2-SMI:: enterprise.318.1.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: perusahaan.318.1.1.1.2.2.0 = Pengukur32: 100
SNMPv2-SMI:: perusahaan.318.1.1.1.2.2.0 = Pengukur32: 36
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.3.0 = Timeticks: (432000) 1:12:00.00
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: perusahaan.318.1.1.1.3.2.1.0 = Pengukur32: 227
SNMPv2-SMI:: perusahaan.318.1.1.1.3.2.4.0 = Pengukur32: 50
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.5.0 = STRING: "Uji mandiri otomatis atau eksplisit"
SNMPv2-SMI:: perusahaan.318.1.1.1.4.2.1.0 = Pengukur32: 227
SNMPv2-SMI:: perusahaan.318.1.1.1.4.2.2.0 = Pengukur32: 50
SNMPv2-SMI:: perusahaan.318.1.1.1.4.2.3.0 = Pengukur32: 13
SNMPv2-SMI:: perusahaan.318.1.1.1.4.2.4.0 = Pengukur32: 13
SNMPv2-SMI:: enterprise.318.1.1.1.7.2.3.0 = STRING: "TIDAK"
SNMPv2-SMI:: perusahaan.318.1.1.1.7.2.4.0 = STRING: "TIDAK"
SNMPv2-SMI:: perusahaan.318.1.1.1.8.1.0 = Pengukur32: 1
Jika Anda mengonfigurasi skrip pemantauan lebih lanjut, Anda bisa mendapatkan grafik bagus ini: