Windows Tips & News

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

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

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

음성 인식 음성 활성화 다운로드

이 웹사이트는 쿠키를 사용하여 웹사이트를 탐색하는 동안 경험을 개선합니다. 이 쿠키 중 필요에 따라 분류된 쿠키는 웹사이트의 기본 기능이 작동하는 데 필수적이므로 귀하의 브라...

더 읽어보기

Windows 10 PowerToys Preview, 'Windows 단축키 가이드' 및 'FancyZones'와 함께 출시

Windows 10 PowerToys Preview, 'Windows 단축키 가이드' 및 'FancyZones'와 함께 출시

오늘 Microsoft는 두 가지 도구가 포함된 Windows 10 PowerToys의 첫 번째 미리 보기 버전을 출시했습니다. Windows 키 단축키 가이드 그리고 팬시존...

더 읽어보기

Windows 10 빌드 18363이 릴리스 프리뷰 링(19H2)으로 출시됩니다.

Windows 10 빌드 18363이 릴리스 프리뷰 링(19H2)으로 출시됩니다.

Microsoft는 릴리스 미리 보기 링에서 '19H2'라고도 하는 Windows 10 버전 1909 테스트를 시작합니다. 새로운 빌드 18363.327은 이제 소수의 내부자...

더 읽어보기