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.