Windows의 16TB 볼륨 및 SNMP


12

16TB보다 큰 볼륨이 일반화되면서 SNMP의 표준 "HOST-RESOURCES"MIB 내에서 디스크 크기 및 사용량을보고하는 데 사용되는 32 비트 값이 적절한 디스크 크기를보고하기에 충분히 크지 않다는 것이 인식되었습니다.

Net-SNMP는 단순히 "AllocationUnits"의 값을 조작하여 디스크 사용에 대한 32 비트 값을 유지함으로써 (총 디스크 크기 / 사용률이 할당 단위의 32 비트 공간 값과 32 비트이므로)이 문제를 해결 한 것으로 보입니다. 8 / 16TB보다 큰 볼륨을 계산합니다. 할당 단위에 대한보고 관심이 없으며, 약간의 부정확도는 괜찮습니다. 이것은 우아한 해결책처럼 보입니다.

https://bugzilla.redhat.com/show_bug.cgi?id=654384

그러나 윈도우의 내장 SNMP 서비스는이 오류가 계속 발생하여 사용 / 할당 된 디스크 공간의 모듈로를보고하기 때문에 디스크 크기보고가 부정확합니다.

Windows에서 16TB를 초과하는 볼륨의 디스크 사용량을 올바르게보고 할 수있는 방법이 있습니까? Net-SNMP 5.5 x64를 설치하고 Windows SNMP 서비스를 완전히 비활성화하려고 시도했지만 불행히도이 문제는 해결되지 않았습니다.

NetSNMP 확장을 사용할 때 관심있는 특정 디스크에 대해 수집하는 정보는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

이 결과는 바닐라 Windows SNMP 서비스를 사용하든 NetSNMP를 사용하든 관계없이 동일합니다.

나는 Cacti 커뮤니티의 사람들이 단순히 솔루션을 스크립팅한다고 언급하는 것을 보았습니다. 불행히도 우리는 빠르고 기본적인 시스템 모니터링을 위해 Observium을 사용하고 있습니다. 창 쪽에서 문제를 해결할 수없는 경우 Observium에서 사용자 지정 MIB를보고하도록 만들 수 있습니까?

- 업데이트 -

snmpd.conf 파일에 "realStorageUnits"추가에 대한 버그 보고서의 언급을 살펴보면 해당 지시문을 설정할 때 다음과 같은 문제가 발생했습니다.

realStorageUnits는 우리를 보석합니다

- 업데이트 2 -

땜질을 많이 한 후에는 "realStorageUnits"지시문과 같은 Windows 버전의 Net-SNMP처럼 보이지 않습니다. 지시문을 포함하면 SNMP를 시작할 때 경고가 표시됩니다. 버전 5.5, 5.6 및 5.7에서 시도했습니다. 여기 아무도 Windows에서 16TB 이상의 볼륨을 SNMP가보고하도록 SNMP를 얻는 방법을 알고 있습니까?


Net-SNMPD를 설치해도 문제가 해결되지 않았다고합니다. AllocationUnits를 의도 한대로 조정하지 않았거나 실행에 성공하지 못했습니까?
Alexander Janssen

할당 단위를 변경하지 않는 것 같습니다. 서비스는 정상적으로 실행되었지만 결국보고되는 내용을 변경하지 않는 것 같습니다. 디스크 값은 여전히 ​​올바르지 않으며보고 된 다양한 값은 여전히 ​​이전과 동일합니다. "SNMP 서비스"가 중지되었고 "Net-SNMP 서비스"가 시작되었음을 확인할 수 있습니다. 내가 잘못 구성했을 가능성이 있습니까?
Univ426

약간의 추가 참고 사항으로, 테스트 목적으로 매우 기본적인 v2c "rwcommunity <string>"설정을 사용하여 트리를 노출하고 있습니다.
Univ426

시작하려면 OID .1.3.6.1.4.1.2021.100.2.0를 쿼리하여 실제로 Net-SNMP인지 확인하십시오. 인터넷-SNMP 내 (리눅스) 호스트에 그것은 준다SNMPv2-SMI::enterprises.2021.100.2.0 = STRING: "5.4.1"
알렉산더 얀센

"UCD-SNMP-MIB :: versionTag.0 = STRING : 5.5"가 약간 다릅니다. 그러나 netSNMP 5.5는 내가 설치 한 버전입니다. 은 netsnmp 해제하고 Windows SNMP 서비스 켜기, 나는 "UCD-SNMP-MIB :: verionTag.0 = 아니오 THIE MIB보기에 남아 이상의 변수"그것은 netsnmp처럼 보인다 그래서 확실히 실행 얻을
Univ426

답변:


2

얼마 전에 Net-SNMP 5.5 용 패치realStorageUnits 가 구성 파일에 대한 새로운 옵션 을 도입했습니다 .

로부터 레드햇 버그 신고 번호 748410 :

이 문제 (음의 hrStorageSite 값)를 해결하기 위해이 업데이트는 /etc/snmp/snmpd.conf 구성 파일 인 realStorageUnits에 새 옵션을 추가합니다. 이 옵션의 값을 0으로 변경하면 hrStorageTable의 모든 값을 다시 계산하여 hrStorageSize와 hrStorageAllocationUnits의 곱이 항상 정확한 장치 크기를 생성 할 수 있습니다.

([괄호]의 텍스트는 내 것입니다)

따라서 realStorageUnits 0snmpd.conf에 구성 지시문 을 추가하면 문제가 해결 될 수 있습니다.

그러나 값은 마지막 MB까지 정확하지 않습니다. ymmv.

경우 내가 말할 수없는 이 패치는 인터넷-SNMP의 바이너리 배포판에 포함되었지만, 당신은 결과와 당신이 사용하는 바이너리를보고 할 수 있다면 그것은 좋은 것입니다. 또한 지금은 적절한 하드웨어가 없는지 테스트하지 않았습니다.


감사합니다 Alex, 우리는 불행히도 이전에 많은 희망을 가지고 시도했지만 C : /usr/etc/snmp/snmpd.conf : line 2 : Warning : Unknown token : realStorageUnits라는 오류가 발생했습니다. 예를 들어 그 지시어가 "rwcommunity private"바로 아래로 떨어 졌습니까?
Univ426

하하, 예, 한 번 실수를 저지른 적이 있습니다. 두 번 확인했지만 질문을 그림으로 업데이트하겠습니다.
Univ426

내가 그 지시어를 잘못 쓰고있을 가능성이 있습니까?
Univ426

아니, 좋아 보인다 죄송합니다. 지금 길을 잃었습니다. 이를 확인하기 위해 Windows 버전에 적합한 컴퓨터가 없지만, 솔직히 말하면 snmpd.conf는 "작은"것처럼 보입니다. v2c에 대한이 최소 구성을 대신 사용해보십시오 . 그것이 도움이 될지 확실하지 않지만 다른 펑키 한 일이 발생하지 않도록합니다. 그리고 localnet 지시문에서 네트워크를 조정하십시오.
Alexander Janssen

최소한의 설정으로 Linux에서 5.5는 realStorageUnits지시문으로 행복하게 시작 합니다. 그래도 문제가 해결되지 않으면 사용중인 NetSNMP 바이너리에이 기능이 포함되어 있지 않다는 느낌이 듭니다.
Alexander Janssen

1

이것이 귀하의 질문에 대한 직접적인 대답은 아니지만 도움이 될 것입니다. SNMP 정보를 제공하는 팀에 문의 하십시오 (http://www.snmp-informant.com/).

이들은 일부 OID에 대한 Microsoft의 제한 사항을 해결하기 위해 Windows SNMP 에이전트를 확장합니다. 더 정확한 CPU 사용률과 스토리지 번호를 얻기 위해 Zenoss와 함께 사용하며 이것이 문제를 해결할 가능성이 있지만 확실하게 말할 수는 없습니다.


대신 WMI 카운터를 쿼리하는 데 사용할 수도 있습니다.
SpacemanSpiff

나쁜 생각이 아닙니다. 이론적으로 Net-SNMP 라이브러리는 동일한 작업을 수행해야하지만 명백한 수준의 사용자 정의가 도움이 될 수 있습니다.
Univ426
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.