Sollte ich einen SNMP-Poller in der Nähe von DB oder überwachten Geräten finden?

7

Bei SNMP-Pollern ist es besser, sie näher an der Datenbank zu platzieren, um sicherzustellen, dass der Poller-zu-DB-Verkehr eine bessere Chance hat, dies zu erreichen. Oder stellen Sie den Poller näher an das überwachte Gerät, damit der Datenverkehr in Bezug auf die Latenz und den Zugang zum Gerät genauer ist?

zB habe ich 3 Regionen und 3 Poller und 1 DB. Platziere ich alle vier Geräte an einem Ort oder verteile ich die Poller?

Ich habe einige Meinungen, wollte aber eine andere Seite der Geschichte erfahren.

Ken
quelle
Hat dir eine Antwort geholfen? Wenn ja, sollten Sie die Antwort akzeptieren, damit die Frage nicht für immer auftaucht und nach einer Antwort sucht. Alternativ können Sie Ihre eigene Antwort bereitstellen und akzeptieren.
Ron Maupin

Antworten:

5

Dies scheint auf jeden Fall eine nutzlose Mikrooptimierung zu sein, über die Sie sich keine Sorgen machen sollten, bis ein tatsächliches praktisches Problem auftritt, das wahrscheinlich nie auftritt.

Rein akademisch sollten Sie snmp poller jedoch in die Nähe des Geräts stellen, das abgefragt wird, da es sich um ein RTT-gebundenes Anforderungs- / Antwortprotokoll handelt. Der Poller kann die abgefragten Daten aggregieren und TCP mit Fenstern verwenden, um große Datenmengen schnell an die Datenbank zu senden.

ytti
quelle
3

FWIW das ist eine großartige Frage und ich kann @ytti nicht widersprechen, da dies ein großes Potenzial hat, ein theoretisches / akademisches Kaninchenloch zu zerstören.

Aus praktischer Sicht möchten Sie die Poller in der Nähe der abgefragten Objekte platzieren. Ich bin kein Experte für verteilte Systeme / SDE, aber ich würde mir vorstellen, dass jedes NMS, das für die Verteilung ausgelegt ist, bereits Funktionen enthalten sollte, um Zeitstempel für das Einfügen von Datenbanken von tatsächlich abgefragten SNMP-Daten und eigenen Zeitstempeln zu trennen. Es ist immer noch kein leicht zu lösendes Problem, aber wie ytti bereits gesagt hat (und ich stimme dem zu), sollte das Ausführen der Datenbankeinfügungen nicht Vorrang vor den aus der Abfrage gesammelten Daten haben. Diese haben den Luxus, für einen besseren Schutz der Datenintegrität in TCP verpackt zu sein. Mit tatsächlichen SNMP-Umfragen und Traps haben Sie "Best Effort" mal zwei zu bewältigen - Nummer eins ist offensichtlich UDP und Nummer 2 ist Prozessmanagement / "Datenintegrität". (dh die Zähler sind korrekt usw.) auf der Box, die Sie abfragen. Manchmal beginnt eine Box gerade zu ersticken und die Rückgabe von Nummern über SNMP tritt in den Hintergrund anderer Dinge.

John Jensen
quelle
snmp ist über udp und die DB-Verbindung wäre höchstwahrscheinlich TCP. Die Abfrage näher an der Quelle ist also besser. Was ist außerdem, wenn der Poller von den abgefragten Geräten an einem anderen Standort platziert wird und die Konnektivität unterbrochen wird? Sammeln Sie lokal (in Echtzeit), rollen Sie Daten remote auf (nahezu in Echtzeit).
Generalnetworkerror
1

Die Anzahl der verwendeten Poller sollte auf der Anzahl der abgefragten Knoten und der Häufigkeit der Pollings basieren. Darüber hinaus unterstützen einige Anbieter nicht, dass der Poller von der Datenbank entfernt ist. Solarwinds hat diese Einschränkung.

Henklu
quelle
1

Wenn Sie näher an den abgefragten Geräten sind, können Sie aufgrund der geringeren Latenz auch eine höhere Abrufhäufigkeit erzielen. Ich stellte fest, dass es zu lange dauerte, bis ich ein Gerät über unsere transatlantischen Schaltkreise in Intervallen von etwa 5 oder 10 Sekunden abfragte, um über die Tische zu laufen.

Mark-K
quelle
Technisch gesehen können Sie asynchron abrufen. Sie können zwei Prozessdesigns verwenden, bei denen ein Prozess die UDP-Übertragungsrate ausspuckt und ein anderer Prozess Antworten speichert. Dann haben Sie einen dritten Prozess, der eine Offline-Analyse durchführt, wenn Sie Daten in konformen Intervallen erhalten. Wenn nicht, lösen Sie einen Alarm aus und lassen Sie die Gründe untersuchen.
Ytti