Woluminy 16 TB i SNMP w systemie Windows

12

Ponieważ woluminy większe niż 16 TB stały się bardziej powszechne, uznano, że 32-bitowa wartość użyta do zgłoszenia wielkości dysku i użycia w standardowej MIB „HOST-RESOURCES” w SNMP nie była wystarczająco duża, aby zgłosić właściwy rozmiar dysku.

Wydaje się, że Net-SNMP rozwiązał ten problem, po prostu manipulując wartością „AllocationUnits” w celu utrzymania 32-bitowej wartości wykorzystania dysku (ponieważ całkowity rozmiar / użycie dysku jest równe 32-bitowej wartości przestrzeni razy jednostka alokacji), aby umożliwić do obliczenia objętości większej niż 8/16 TB. Zakładając, że nie masz żadnego zainteresowania raportowaniem w jednostce alokacji i jesteś w porządku z niewielkim poziomem niedokładności. wydaje się to eleganckim rozwiązaniem.

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

Wygląda jednak na to, że system Windows wbudowany w usługę SNMP nadal cierpi z powodu tego błędu, po prostu zgłaszając moduł wykorzystanego / przydzielonego miejsca na dysku, co powoduje niedokładne raportowanie rozmiaru dysku.

Czy istnieje sposób, aby umożliwić systemowi Windows prawidłowe zgłaszanie użycia dysku dla woluminów powyżej 16 TB? Próbowaliśmy po prostu zainstalować Net-SNMP 5.5 x64 i całkowicie wyłączyć usługę Windows SNMP, jednak niestety to nie rozwiązało naszego problemu.

Podczas korzystania z rozszerzeń NetSNMP informacje, które zbieramy dla konkretnego dysku, który nas interesuje, są następujące:

wprowadź opis zdjęcia tutaj

Wyniki są takie same, niezależnie od tego, czy korzystamy z waniliowej usługi Windows SNMP, czy NetSNMP.

Widziałem, jak ludzie ze społeczności Cacti wspominali po prostu o znalezieniu rozwiązania. Niestety używamy Observium do szybkiego i podstawowego monitorowania systemów. Jeśli problemu nie można naprawić po stronie okna, czy można przeprowadzić obserwację w celu zgłoszenia niestandardowych baz MIB?

- Aktualizacja -

Analizując wzmiankę w raporcie o błędzie dotyczącą dodania „realStorageUnits” do pliku snmpd.conf, napotkaliśmy następujący problem podczas ustawiania tej dyrektywy:

realStorageUnits za kaucją

- Aktualizacja 2 -

Cóż, po wielu majstrowaniach nie wygląda na żadną z wersji Net-SNMP Windows, jak dyrektywa „realStorageUnits”. Dołączenie dyrektywy powoduje wyświetlenie ostrzeżenia podczas uruchamiania SNMP. Wypróbowaliśmy wersje 5.5, 5.6 i 5.7. Czy ktoś tu kiedykolwiek wymyślił, jak zmusić SNMP do zgłaszania ponad 16 TB woluminów w systemie Windows?

Univ426
źródło
Mówisz, że instalacja Net-SNMPD nie rozwiązała problemu. Czy masz na myśli, że nie dostosowuje AllocationUnits jako intendet, czy nie udało ci się uruchomić go?
Alexander Janssen
Nie zmieniło to jednostek alokacji. Usługa działała dobrze, ale ostatecznie nie zmieniła tego, co było zgłaszane - wartość dysku nadal była niepoprawna, a różne zgłaszane wartości były nadal takie same jak poprzednio. Mogę jednak potwierdzić, że „Usługa SNMP” została zatrzymana i „Usługa Net-SNMP” została uruchomiona. Czy jest jakaś szansa, że ​​konfiguruję coś źle?
Univ426,
Mała dodatkowa uwaga: odsłonię drzewa, używając bardzo podstawowej konfiguracji „rwcommunity <string>” v2c do celów testowych.
Univ426,
Na początek możesz zapytać OID, .1.3.6.1.4.1.2021.100.2.0aby sprawdzić, czy to naprawdę Net-SNMP, który odpowiada. Na moich (Linux) hostach z Net-SNMP daje toSNMPv2-SMI::enterprises.2021.100.2.0 = STRING: "5.4.1"
Alexander Janssen
Pojawia się komunikat „UCD-SNMP-MIB :: versionTag.0 = STRING: 5.5” Wygląda trochę inaczej, ale netSNMP 5.5 to wersja, którą zainstalowałem. Po wyłączeniu Net-SNMP i włączeniu usługi Windows SNMP otrzymuję „UCD-SNMP-MIB :: verionTag.0 = Nie ma już zmiennych w tym widoku MIB”. Wygląda na to, że NetSNMP na pewno działa
Univ426

Odpowiedzi:

2

Jakiś czas temu pojawiła się łatka do Net-SNMP 5.5, która wprowadziła nową opcję realStorageUnitsdla pliku konfiguracyjnego.

Z raportu o błędach Redhat # 748410 :

Aby rozwiązać ten problem [ujemne wartości hrStorageSite], ta aktualizacja dodaje nową opcję do pliku konfiguracyjnego /etc/snmp/snmpd.conf, realStorageUnits. Zmieniając wartość tej opcji na 0, użytkownicy mogą teraz włączyć ponowne obliczanie wszystkich wartości w hrStorageTable, aby zapewnić, że mnożenie hrStorageSize i hrStorageAllocationUnits zawsze daje dokładny rozmiar urządzenia.

(tekst w [nawiasach kwadratowych] jest mój)

Tak więc dodanie dyrektywy konfiguracyjnej realStorageUnits 0do pliku snmpd.conf może rozwiązać problem.

Jednak wartości nie będą prawidłowe do ostatniego megabajta; ymmv.

Nie wiem, czy ta łatka została uwzględniona w twojej binarnej dystrybucji Net-SNMP, ale byłoby wspaniale, gdybyś mógł zgłosić wyniki i jakiego binarnego używasz. Ponadto nie testowałem go teraz pod kątem braku odpowiedniego sprzętu.

Alexander Janssen
źródło
Dzięki Alex, próbowaliśmy tego wcześniej - z wielką nadzieją - niestety, kiedy to robimy, otrzymujemy następujący błąd - C: /usr/etc/snmp/snmpd.conf: linia 2: Ostrzeżenie: Nieznany token: realStorageUnits. Czy ta dyrektywa została po prostu zrzucona gdziekolwiek, np. Tuż poniżej „rwcommunity private”?
Univ426,
Haha, tak, popełniłem już ten błąd - dwukrotnie sprawdziłem, ale zaktualizuję moje pytanie zdjęciem.
Univ426,
Czy jest jakaś szansa, że ​​źle piszę tę dyrektywę?
Univ426,
Nie, wygląda dobrze. Przepraszam, teraz się zgubiłem. Nie mam odpowiedniego komputera z twoją wersją systemu Windows, aby to sprawdzić, ale szczerze mówiąc, twój plik snmpd.conf wygląda trochę „mały”. Zamiast tego wypróbuj tę minimalną konfigurację dla v2c . Nie jestem pewien, czy to pomoże, ale upewni się, że nic innego się nie wydarzy. I dostosuj sieć w dyrektywie sieci lokalnej.
Alexander Janssen
5.5 w Linuksie z moją minimalną konfiguracją zaczyna się od realStorageUnitsdyrektywy. Jeśli to nadal nie działa, mam wyraźne wrażenie, że ta funkcja nie została w jakiś sposób uwzględniona w używanym pliku binarnym NetSNMP.
Alexander Janssen
1

Wiem, że nie jest to bezpośrednia odpowiedź na twoje pytanie, ale być może pomoże. Proponuję spróbować skontaktować się z zespołem, który tworzy Informator SNMP: http://www.snmp-informant.com/

Rozszerzają one agenta SNMP systemu Windows, aby obejść ograniczenia Microsoftu dotyczące niektórych ich identyfikatorów OID. Używam go z Zenoss, aby uzyskać dokładniejsze wykorzystanie procesora i numery pamięci i istnieje spora szansa, że ​​to obejdzie twój problem, ale nie jestem pewien.

SpacemanSpiff
źródło
Być może możesz go również użyć do zapytania o liczniki WMI.
SpacemanSpiff
Niezły pomysł, na pewno się tym zajmę. Teoretycznie biblioteki Net-SNMP powinny zrobić to samo, ale ich pozorny poziom dostosowania może być pomocny, dzięki!
Univ426,