Wie sammle ich SNMP-Messwerte von zeitweise verbundenen Standorten?

7

Ich sammle SNMP-Daten vor Ort für eine Reihe von Systemen, die derzeit Cacti verwenden. Diese Systeme sind auf einer Reihe von Websites verteilt, die nicht immer mit dem Internet verbunden sind. Ich muss jedoch auch die Daten auf einem einzelnen System (Server im Rechenzentrum) zentralisieren und Diagramme daraus erstellen.

Wenn ich Remote-Systeme direkt mit einem zentralisierten Kaktus abfrage, gehen Daten verloren, wenn eine Site nicht mit dem Internet verbunden ist. Ich sollte Daten vor Ort aufzeichnen (ich habe an jedem Standort einen Server und kann alles ausführen, was ich will) und dann alles mit dem zentralen System synchronisieren.

Ein Hack könnte eine Kaktee oder direkt eine rrdtoolvor Ort sein und dann regelmäßig rsyncRRD-Daten an das zentrale Cacti-System senden, aber das klingt nicht nach einer "sauberen" Lösung: Jede RRD müsste an beiden Stellen definiert und rsyncSkripte mit dem eingerichtet werden bestimmte Dateinamen.

Können Sie eine bessere Lösung vorschlagen? Kakteen sind keine Voraussetzung, aber ich möchte so etwas auf dem zentralen System verwenden. Vor-Ort-Systeme müssen nur Daten sammeln. Ich muss sie dort nicht grafisch darstellen oder Benutzerrechte verwalten, um Daten und ähnliches anzuzeigen. Benutzer greifen nur auf das zentralisierte System zu.

Luke404
quelle

Antworten:

1

Ich würde ein Remote-Erfassungssystem (einen einfachen snmp-Poller) einrichten, das Daten remote speichert und über http oder ssh kontaktiert werden kann. Der zentrale Server würde versuchen, in regelmäßigen Abständen Kontakt mit dem Remote-Service-Service aufzunehmen. Wenn es die Verbindung verwaltet, erhält es die Updates, die in der Zwischenzeit gesammelt wurden ...

Da rrdtool gut mit zeitgestempelten Updates funktioniert, können Sie die Updates in den rrds auf der zentralen Site erneut abspielen ...

Als Bonus können Sie sogar eine recht gute Leistung sehen, da das Ausführen mehrerer Updates in einem rrd in einem einzigen Aufruf wesentlich effektiver ist als das schrittweise Ausführen.

Tobi Oetiker
quelle
1

Sie benötigen einen Mechanismus zum Speichern und Weiterleiten. RRD hat eine, rrdcachedso dass Sie vielleicht zwischenspeichern und dann zu bestimmten Zeiten auf eine NFS-gemountete Festplatte spülen könnten.

Sie können die Dateien auch sichern, senden und wiederherstellen. Dies ist möglicherweise sicherer als das Verschieben der gesamten Datei.

Thomas
quelle
0

Die einzige Site, mit der ich gearbeitet habe und die eine ähnliche Situation hat, ist das Synchronisieren der Dateien, wenn die Verbindung hergestellt ist. Sie verwenden jedoch keine Kakteen, sondern nur einfache Mrtg. Ich werde versuchen, dasselbe für Nagios und seine auf pnp4nagios basierenden rrd-Dateien zu tun, damit wir sie für historische Zwecke betrachten können, wenn der Satellit nicht aktiv ist.

Die Probleme sind ähnlich - kann ich diese Instanzen auf einem zentralen Server haben, aber keine Abfragen durchführen, sodass ich nur eine schreibgeschützte Instanz haben kann? Ich gehe davon aus, dass ich die Nagios-Konfigurationsdateien im laufenden Betrieb bearbeiten muss, um die gesamte Überprüfungsverarbeitung nach jedem Update auszuschalten. Deaktivieren Sie möglicherweise Benachrichtigungen und pnp4nagios-Eingaben, um die Sicherheit zu gewährleisten, falls eine Überprüfung versehentlich ausgeführt wird.

Die Frage für Ihre Site wäre also, ob Kakteen (auf dem zentralen Server) eine Möglichkeit haben, dies zu tun, damit einige der überwachten Hosts existieren können, aber keine Abfragen durchführen. Auf diese Weise können die Konfigurationsdateien für jedes Remote-Objekt auch einfach heruntergefahren werden.

Andernfalls könnte man vielleicht ein Drraw- oder ähnliches Tool verwenden, um nur die entfernten Standorte anzuzeigen? Es ist jedoch vorzuziehen, 1 Konsolenschnittstelle zu haben!

tex
quelle