Windows Tips & News

SNMP를 통해 USB UPS 상태를 모니터링하는 방법

click fraud protection

SNMP를 통해 USB UPS 상태를 모니터링하는 방법

USB 연결 UPS가 있는 컴퓨터가 여러 대 있습니다. 모든 컴퓨터는 apcupsd 프로그램을 사용합니다. 모든 장치의 전원 공급 장치 상태에 대한 정보를 한 곳에서 집계하려고 한다고 가정해 보겠습니다. snmpd는 이미 그곳에서 실행되고 있기 때문에 기능을 확장하는 것이 논리적일 것입니다.

아래 솔루션, 의례 관리자의 블로그, 모든 snmpd 장치에서 한 번에 데이터를 수집합니다.

SNMP를 통해 USB UPS 상태를 모니터링하려면 먼저 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 요청을 처리합니다. # 이러한 "할당"은 영구적이지 않으며 # 구문이나 요청된 값도 검증되지 않습니다. # if [ "$1" = "-s" ]; 그 다음에. 에코 $* >> /tmp/passtest.log. 0번 출구. 파이 # # 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; 이삭. 또 다른. # # 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; 이삭. 파이 # # "Process" GET* 요청 - 하드 코딩된 값을 반환합니다. # 에코 "$RET" "$RET"의 경우. $PLACE.1.1.1.0) echo "문자열"; 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 항목; 0번 출구;; $PLACE.2.2.3.0) echo "타임틱"; 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 "문자열"; 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 "문자열"; 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 모델은 모든 매개변수 또는 잘못된 형식을 반환하지 않으므로 코드에 부정확한 내용과 스텁이 포함될 수 있습니다.

이제 준비가 되었습니다.

SNMP를 통해 USB UPS 상태를 모니터링하는 방법

SNMP를 통해 USB UPS 상태를 모니터링하려면 다음 명령을 실행하십시오. snmpwalk -v 1 -c 공개 127.0.0.1 .1.3.6.1.4.1.318.1.1.1. 출력은 다음과 같습니다.

SNMPv2-SMI:: enterprise.318.1.1.1.1.1.1.0 = STRING: "Smart-UPS 750"
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.1.0 = Gauge32: 100
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.2.0 = Gauge32: 36
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.3.0 = 타임틱: (432000) 1:12:00.00
SNMPv2-SMI:: enterprise.318.1.1.1.2.2.4.0 = STRING: "2020-05-14"
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.4.0 = Gauge32: 50
SNMPv2-SMI:: enterprise.318.1.1.1.3.2.5.0 = STRING: "자동 또는 명시적 자체 테스트"
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.1.0 = Gauge32: 227
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.2.0 = Gauge32: 50
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.3.0 = Gauge32: 13
SNMPv2-SMI:: enterprise.318.1.1.1.4.2.4.0 = Gauge32: 13
SNMPv2-SMI:: enterprise.318.1.1.1.7.2.3.0 = STRING: "아니요"
SNMPv2-SMI:: enterprise.318.1.1.1.7.2.4.0 = STRING: "아니요"
SNMPv2-SMI:: enterprise.318.1.1.1.8.1.0 = Gauge32: 1

모니터링 스크립트를 추가로 구성하면 다음과 같은 멋진 그래프를 얻을 수 있습니다.

Microsoft는 Windows 11 Bug Bash를 실행 중입니다.

Microsoft는 Windows 11 Bug Bash를 실행 중입니다.

권장: Windows 문제를 해결하고 시스템 성능을 최적화하려면 여기를 클릭하십시오.Microsoft는 Windows 11 운영 체제에서 처음으로 버그를 찾는 것을 목표로 하...

더 읽어보기

오페라 57이 나왔다

오페라 57이 나왔다

권장: Windows 문제를 해결하고 시스템 성능을 최적화하려면 여기를 클릭하십시오.오늘 Opera 브라우저 팀은 새 버전의 제품을 출시했습니다. 이제 안정적인 지점 사용자가...

더 읽어보기

OEM은 이미 ARM64 칩이 탑재된 최초의 Windows 10 장치에서 작업하고 있습니다.

OEM은 이미 ARM64 칩이 탑재된 최초의 Windows 10 장치에서 작업하고 있습니다.

답장을 남겨주세요ARM64 기반 장치에 Windows 10이 도착하고 x86 앱에 대한 지원에 대한 Microsoft의 최근 발표는 기술 업계에서 많은 관심을 받았습니다. 많...

더 읽어보기