Relevanz und Notwendigkeit von SNMP

1384
pnongrata

Edit: Ich bin gerade dabei, ein auf Java basierendes Überwachungstool zu entwerfen, das periodische "Health Checks" einer Java-App zurückschickt, die in einem Cluster von GlassFish-Servern bereitgestellt wird. Ich versuche das beste Protokoll für dieses Überwachungstool herauszufinden, um Informationen zurück an den Überwachungsserver zu senden.

Nach einer ersten Recherche von meiner Seite scheint es, als sei SNMP nur ein Protokoll für Monitoranwendungen, um den "Gesundheitszustand" von etwas (einem Teil eines Netzwerks, eines Servers, eines Clusters, einer Anwendung usw.) zu kommunizieren. zum Rest des Netzwerks.

  • Wenn das obige nicht korrekt ist, korrigieren Sie mich bitte !!!

Wenn man annimmt, dass die Verallgemeinerung mehr oder weniger genau ist, lautet meine nächste Frage: Warum ist das ein Protokoll!?!?

Warum wird im Zeitalter der REST / SOAP / TCP-Protokolle ein standardisiertes Protokoll benötigt, das nur für eine Art von Anwendung geeignet ist (Überwachung)? Mit anderen Worten: Wenn ich ein Entwickler bin, der ein neues Überwachungstool erstellt, das regelmäßig einen Server abfragt und über seine CPU und den verfügbaren Speicher berichtet, welche Vorteile bietet mir SNMP gegenüber dem einfachen POST-Zugriff auf eine RESTful-API über reines ole-HTTP?

Ich bin sicher, dass mir hier etwas fehlt. Ich brauche nur jemanden, der beim Verbinden der Punkte hilft! Danke im Voraus!

1
Ich sehe, das hat schon eine Nahansicht erhalten. Ich komme auf superuser.com um ** zu lernen ** und habe kein Problem mit Kritik, solange es vernünftig ist! Ich möchte fragen, warum dies in der Nähe war!?! pnongrata vor 12 Jahren 0
Ich sehe, dass der Grund der Closevote "keine wirkliche Frage" war. Ich demütig diagree !! Zusammenfassend lässt sich diese Frage in einem Satz zusammenfassen: "Was sind die heutigen Vorteile des Einsatzes von SNMP gegenüber einer REST- oder SOAP-basierten Lösung?" "Ich glaube, das ist wirklich eine echte Frage! pnongrata vor 12 Jahren 1
Was ist das lösbare Computerproblem, das Sie haben? Ƭᴇcʜιᴇ007 vor 12 Jahren 0
@ techie007 - bitte haben Sie Verständnis dafür, dass diese Antwort * nicht * eine Herausforderung für das ist, was Sie gerade geschrieben haben, es ist lediglich ein Versuch, Klarheit darüber zu gewinnen, wo ich in Zukunft solche Fragen stellen sollte. Ist "lösbares Computerproblem" * wirklich * das endgültige Kriterium für eine SuperUser-Frage? Das ist ziemlich vage und würde StackOverflow, ServerFault und die meisten anderen tech-zentrierten StackExchange-Sites einschließen. Wenn ja, dann sage ich, dass dies ein lösbares Problem ist: Ich möchte wann und wo ich SNMP verwenden sollte. Wenn es nicht die Kriterien sind, was ist / sind dann? Diese Antwort bestimmt * wo * das gehört! pnongrata vor 12 Jahren 0
Aus der SU [FAQ] (http://superuser.com/faq): "Sie sollten nur praktische, beantwortbare Fragen stellen, die auf tatsächlichen Problemen basieren, mit denen Sie konfrontiert sind." Ƭᴇcʜιᴇ007 vor 12 Jahren 0
Bitte sehen Sie sich meine Bearbeitung an - sie enthält mein aktuelles Problem und nimmt einige "Geheimnisse" aus meiner Frage. Hoffentlich wird dies von einer theoretischen Frage zu einer praktischen Frage. pnongrata vor 12 Jahren 0
Auch nach der Bearbeitung fragen Sie immer noch nach dem "besten" Protokoll, das in der Regel nur mit Meinung zu beantworten ist. Ƭᴇcʜιᴇ007 vor 12 Jahren 1
Richtig, aber ich denke, es ist knapp und spezifisch genug, um bei SuperUser als legitime Frage zu gelten. Wenn genug andere Benutzer Ihre Meinung vertreten, respektiere ich die SU-Community, um dies zu schließen. pnongrata vor 12 Jahren 0
Ein weiteres Argument hier: Dies ist keine "beste" (meinungsorientierte) Frage, obwohl das Wort "* best *" tatsächlich in meiner Bearbeitung erscheint! Ich bitte darum, dass jemand die ** spezifischen ** Vorteile aufführt, die SNMP gegenüber einem moderneren Ansatz hat, und zwar: (1) absolut begrenzt und antwortbar, und (2) nicht subjektiv. Ich stehe auch hier als legitime Frage. Und obwohl es erst vor 8 Stunden angefragt wurde, und das ist noch lange nicht ausreichend Zeit für eine solide Antwort, denke ich, dass das Fehlen einer Antwort darauf hinweist, dass meine Instinkte richtig sind: SNMP bietet keine derartigen Vorteile. pnongrata vor 12 Jahren 0

3 Antworten auf die Frage

3
Bob

die Notwendigkeit eines standardisierten Protokolls ... Weil es standardisiert ist? Es ist auch älter als HTTP (1988 vs 1991). REST wäre mit HTTP 1.0, 1996 gewesen. Sobald etwas verwendet wird, ist es oft einfacher, sich daran zu halten, wenn auch nur zur Unterstützung älterer Systeme.

Als Antwort auf Ihre Bearbeitung: Möchten / benötigen Sie andere, bereits vorhandene Tools, um mit Ihrer Anwendung kommunizieren zu können? Wenn nicht, können Sie jede Methode verwenden, die Sie möchten, aber Sie müssen Ihre eigenen Überwachungstools verwenden. Wenn ja, müssen Sie etwas verwenden, das bereits allgemein unterstützt wird, z. B. SNMP.

In meinen Augen hat es also keinen Vorteil * gegenüber einer REST- oder SOAP-basierten Lösung? pnongrata vor 12 Jahren 0
@AdamTannon SNMP ist etablierter und hat einen wesentlich geringeren Overhead als HTTP. Ƭᴇcʜιᴇ007 vor 12 Jahren 0
Wieder nicht streiten, nur versuchen zu verstehen. Mit Frameworks wie Jersey und meinen eigenen einheimischen Bibliotheken kann ein RESTful-Webdienst mit 30 Zeilen Code in Betrieb genommen werden. Kannst du erklären, was du unter "Overhead" verstehst? pnongrata vor 12 Jahren 0
@Bob - als einziger Antworter würde ich Ihnen gerne den "grünen Haken" geben, wenn Sie bestimmte Vorteile nennen können, die SNMP gegenüber moderneren (REST / SOAP / etc.) Ansätzen bietet. pnongrata vor 12 Jahren 0
@AdamTannon Es ist wahrscheinlich besser, dass Sie warten, bis jemand anders antwortet. Ich bin nicht vertraut mit SNMP oder anderen Ansätzen. Alles, was ich sagen kann, ist, dass SNMP schon länger verwendet wird, und es ist Standard genug, dass Sie einen generischen SNMP-Logger finden und davon ausgehen, dass er funktioniert. Bob vor 12 Jahren 1
http://www.snmp.com/protocol/snmp_rfcs.shtml enthält umfassende Anforderungen und Implementierungsmethoden für SNMP. Es gibt nichts, was Sie oder irgendjemanden daran hindert, SNMP in eine RESTful- oder SOAP-basierte Oberfläche einzubinden, um die SNMP-Daten zu konsolidieren und zu verwalten. Dies ist nicht anders als bei Nagios oder HP OpenView. Das ist in Ordnung, sofern die grundlegenden SNMP-Kontrollstrukturen für diejenigen vorhanden sind, die ihre eigenen implementieren möchten Ideen, wie sie ihre Netzwerkgeräte am besten verwalten können. Nevin Williams vor 11 Jahren 0
1
Nikodemus

Weit davon entfernt, ein Experte zu sein, würde ich Folgendes vorschlagen:

SNMP verfügt über eine feste Management Information Base mit Hierarchien von Informationsklassen (z. B. tatsächliche Bandbreite der Schnittstellen). Somit können Sie dem zu überwachenden Netzwerk problemlos Knoten hinzufügen, ohne viel Konfiguration vornehmen zu müssen.

Es gibt sogar einige Maschinen, auf die Sie möglicherweise keinen Zugriff haben. (Entweder aufgrund von Berechtigungen oder weil sie einfache Router sind.) In diesem Fall ist SNMP der einfachste Weg, Konfigurationsparameter abzurufen und festzulegen.

1
LawrenceC
RESTful API via plain 'ole HTTP 

Dies hat folgende Abhängigkeiten:

  • ein HTTP-Server
  • Ein Backend-Prozess, der von diesem Server aufgerufen wird und den Status beibehält
  • genügend Arbeitsspeicher, Bandbreite und Speicherressourcen, um alle möglichen gleichzeitigen Verbindungsversuche zu erledigen, und zwar zusätzlich zu dem, was das Gerät tun soll (wir gehen davon aus, dass Ihr Gerät andere Aufgaben ausführt als auf Statusanfragen zu antworten)
  • und die untergeordneten Abhängigkeiten aller Frameworks, die zum Implementieren des Obigen benötigt werden, wenn Frameworks verwendet werden (dh wenn Ihr Backend-Prozess in Perl geschrieben ist, werden mehr Ressourcen benötigt usw.).

Das oben genannte ist heutzutage trivial (und viele Geräte usw. haben heutzutage HTTP-Server), aber als SNMP entwickelt wurde, war dies nicht der Fall.

SNMP ist viel einfacher und kann von ressourcenschonenden eingebetteten Geräten (ältere Switches usw.) einfacher gehandhabt werden. Software, die auf SNMP-Anforderungen reagiert, kann einfacher geschrieben werden, und es besteht weniger Gefahr für Sicherheitslücken.