16-TB-Volumes und SNMP unter Windows

12

Mit zunehmender Verbreitung von Volumes mit mehr als 16 TB wurde erkannt, dass der 32-Bit-Wert, mit dem die Festplattengröße und -nutzung in der Standard-MIB "HOST-RESOURCES" in SNMP gemeldet wurde, nicht groß genug war, um die richtige Festplattengröße zu melden.

Net-SNMP scheint dieses Problem behoben zu haben, indem es einfach den Wert von "AllocationUnits" manipuliert, um einen 32-Bit-Wert für die Datenträgernutzung beizubehalten (da die gesamte Datenträgergröße / -nutzung gleich dem 32-Bit-Speicherplatzwert multipliziert mit der Zuordnungseinheit ist) für die Berechnung eines Volumens größer als 8 / 16TB. Vorausgesetzt, Sie haben kein Interesse an der Zuordnungseinheit und sind mit einem geringen Grad an Ungenauigkeit in Ordnung. Das scheint eine elegante Lösung zu sein.

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

Der in Windows integrierte SNMP-Dienst scheint jedoch weiterhin unter diesem Fehler zu leiden, da lediglich das Modul des verwendeten / zugewiesenen Speicherplatzes gemeldet wird, was zu einer ungenauen Meldung der Festplattengröße führt.

Gibt es eine Möglichkeit, Windows zu ermöglichen, die Datenträgerverwendung für Volumes über 16 TB korrekt zu melden? Wir haben versucht, Net-SNMP 5.5 x64 einfach zu installieren und den Windows-SNMP-Dienst vollständig zu deaktivieren. Dies hat unser Problem jedoch leider nicht behoben.

Bei Verwendung der NetSNMP-Erweiterungen werden folgende Informationen für die betreffende Festplatte erfasst:

Bildbeschreibung hier eingeben

Diese Ergebnisse sind gleich, unabhängig davon, ob wir den Vanilla Windows SNMP-Dienst oder NetSNMP verwenden.

Ich habe Leute in der Cacti-Community gesehen, die erwähnt haben, dass sie einfach eine Lösung geschrieben haben. Leider verwenden wir Observium zur schnellen und grundlegenden Systemüberwachung. Kann Observium benutzerdefinierte MIBs melden, wenn das Problem auf Fensterseite nicht behoben werden kann?

- Update -

Als wir uns die Erwähnung des Fehlerberichts zum Hinzufügen von "realStorageUnits" zur Datei "snmpd.conf" angesehen haben, stellten wir beim Festlegen dieser Anweisung das folgende Problem fest:

Die realStorageUnits zahlen keine Kaution für uns

- Update 2 -

Nun, nach langem Herumbasteln sieht es nicht wie eine der Windows-Versionen von Net-SNMP aus, wie die "realStorageUnits" -Direktive. Das Einschließen der Direktive führt zu einer Warnung beim Starten von SNMP. Wir haben Version 5.5, 5.6 und 5.7 ausprobiert. Hat jemand hier jemals herausgefunden, wie man SNMP dazu bringt, über 16 TB Volumes unter Windows zu berichten?

Univ426
quelle
Sie sagen, die Installation von Net-SNMPD habe das Problem nicht behoben. Meinen Sie damit, dass AllocationUnits nicht wie beabsichtigt angepasst wird oder es Ihnen nicht gelungen ist, es zum Laufen zu bringen?
Alexander Janssen
Die Zuordnungseinheiten schienen sich nicht zu ändern. Der Dienst lief einwandfrei, aber am Ende schien es nicht zu ändern, was gemeldet wurde - der Festplattenwert war immer noch falsch und die verschiedenen gemeldeten Werte waren immer noch die gleichen wie zuvor. Ich kann jedoch bestätigen, dass "SNMP-Dienst" beendet und "Net-SNMP-Dienst" gestartet wurde. Gibt es eine Chance, dass ich etwas falsch konfiguriere?
Univ426
Eine kleine zusätzliche Anmerkung, ich mache die Bäume mit einem sehr einfachen v2c "rwcommunity <string>" - Setup zu Testzwecken verfügbar.
Univ426
Zunächst können Sie die OID abfragen .1.3.6.1.4.1.2021.100.2.0, um zu überprüfen, ob wirklich Net-SNMP antwortet. Auf meinen (Linux) Hosts mit Net-SNMP gibt esSNMPv2-SMI::enterprises.2021.100.2.0 = STRING: "5.4.1"
Alexander Janssen
Ich erhalte "UCD-SNMP-MIB :: versionTag.0 = STRING: 5.5". Sieht ein wenig anders aus, aber netSNMP 5.5 ist die Version, die ich installiert habe. Beim Ausschalten von NetSNMP und beim Einschalten des Windows-SNMP-Dienstes erhalte ich "UCD-SNMP-MIB :: verionTag.0 = Keine Variablen mehr in der MIB-Ansicht". Es sieht also so aus, als würde NetSNMP definitiv ausgeführt
Univ426

Antworten:

2

Vor einiger Zeit gab es einen Patch für Net-SNMP 5.5, der eine neue Option realStorageUnitsfür die Konfigurationsdatei einführte .

Aus dem Redhat Bugreport # 748410 :

Um dieses Problem zu beheben [negative hrStorageSite-Werte], fügt dieses Update der Konfigurationsdatei /etc/snmp/snmpd.conf realStorageUnits eine neue Option hinzu. Durch Ändern des Werts dieser Option auf 0 können Benutzer jetzt die Neuberechnung aller Werte in hrStorageTable aktivieren, um sicherzustellen, dass die Multiplikation von hrStorageSize und hrStorageAllocationUnits immer eine genaue Gerätegröße ergibt.

(Text in [Klammern] gehört mir)

realStorageUnits 0Wenn Sie also die Konfigurationsanweisung zu Ihrer snmpd.conf hinzufügen, könnte dies Ihr Problem lösen.

Die Werte sind jedoch bis zum letzten Megabyte nicht korrekt. ymmv.

Ich kann nicht sagen, ob dieser Patch in Ihrer Binärdistribution von Net-SNMP enthalten war, aber es wäre großartig, wenn Sie die Ergebnisse und die von Ihnen verwendete Binärdatei melden könnten. Außerdem habe ich es nicht getestet, weil gerade keine ausreichende Hardware vorhanden ist.

Alexander Janssen
quelle
Vielen Dank, Alex, wir haben das schon einmal versucht - mit viel Hoffnung -, aber leider erhalten wir dann den folgenden Fehler: C: /usr/etc/snmp/snmpd.conf: Zeile 2: Warnung: Unbekanntes Token: realStorageUnits. Wird diese Direktive nur irgendwo abgelegt, zum Beispiel direkt unter "rwcommunity private"?
Univ426
Haha, ja, ich habe diesen Fehler schon einmal gemacht - ich habe es zweimal überprüft, aber ich werde meine Frage mit einem Bild aktualisieren.
Univ426
Gibt es eine Chance, dass ich diese Anweisung falsch schreibe?
Univ426
Nein, es sieht gut aus. Entschuldigung, ich bin jetzt verloren. Ich habe keinen geeigneten Computer mit Ihrer Windows-Version, um dies zu überprüfen, aber um ehrlich zu sein, sieht Ihre snmpd.conf ein wenig "klein" aus. Versuchen Sie stattdessen diese minimale Konfiguration für v2c . Ich bin mir nicht sicher, ob es helfen wird, aber es wird sicherstellen, dass nichts anderes funky Zeug auftritt. Passen Sie das Netzwerk in der localnet-Direktive an.
Alexander Janssen
5.5 unter Linux mit meiner minimalen Konfiguration startet zufrieden mit der realStorageUnitsDirektive. Wenn dies bei Ihnen immer noch nicht funktioniert, habe ich das Gefühl, dass diese Funktion in der von Ihnen verwendeten NetSNMP-Binärdatei nicht enthalten ist.
Alexander Janssen
1

Ich weiß, dass dies keine direkte Antwort auf Ihre Frage ist, aber vielleicht hilft es. Ich schlage vor, Sie versuchen, das Team zu kontaktieren, das SNMP Informant erstellt: http://www.snmp-informant.com/

Sie erweitern den Windows-SNMP-Agenten, um die Einschränkungen von Microsoft für einige ihrer OIDs zu umgehen. Ich verwende es mit Zenoss, um genauere CPU-Auslastungs- und Speicherzahlen zu erhalten, und es besteht eine gute Chance, dass dies Ihr Problem umgeht, aber ich kann es nicht mit Sicherheit sagen.

SpacemanSpiff
quelle
Sie können es auch verwenden, um stattdessen WMI-Leistungsindikatoren abzufragen.
SpacemanSpiff
Keine schlechte Idee, ich werde sicher darauf eingehen. Theoretisch sollten die Net-SNMP-Bibliotheken dasselbe tun, aber ihre offensichtliche Anpassungsstufe könnte hilfreich sein, danke!
Univ426