Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Abonnieren von Telemetriedaten mit gNMI

Das gNMI-Protokoll definiert den RPC für das Subscribe Abonnieren von Telemetriedaten. Der Telemetriecollector verwendet diesen RPC, um Updates für Zustands- und Konfigurationsdaten vom Netzwerkgerät anzufordern.

Anforderungen für neue Abonnements werden in einer SubscribeRequest Nachricht gekapselt, die einen oder mehrere Ressourcenpfade enthält. Die abonnierten Pfade beziehen sich auf bestimmte Dateninstanzen auf dem Zielnetzwerkgerät. Die Anforderung kann Pfade enthalten, die auf OpenConfig- oder nativen Junos-Schemas basieren.

Die Abonnementanforderung muss außerdem einen der folgenden Modi enthalten:

  • ONCE - eine einmalige Datenanfrage.

  • POLL - Für den regelmäßigen Abruf von Daten auf Abruf.

  • STREAM - Ein langlebiges Abonnement, das Daten gemäß bestimmten Triggern streamt.

Abonnements im STREAM Modus müssen einen der folgenden Untermodi angeben:

  • ON_CHANGE - Datenaktualisierungen werden nur gesendet, wenn sich der Wert des Datenelements ändert.

  • SAMPLE - Datenaktualisierungen werden einmal pro Stichprobenintervall gesendet, basierend auf einem in der Abonnementanforderung angegebenen Intervallzeitraum. Das standardmäßige Abtastintervall beträgt 30 Sekunden.

  • TARGET_DEFINED - Das Netzwerkgerät, das die Abonnementanforderung empfängt, bestimmt die beste Art der Datenübermittlung pro Blatt. Wenn sich der in der Nachricht angegebene Pfad auf ereignisgesteuerte Daten bezieht, kann ein ON_CHANGE Abonnement erstellt werden. Für Daten, die Zählerwerte darstellen, kann ein SAMPLE Abonnement erstellt werden.

    Anmerkung:

    Die TARGET_DEFINED Abonnementanforderungen für Konfigurationspfade werden nur als ON_CHANGE Anforderungen behandelt.

Für ONCEund ON_CHANGE SAMPLE Abonnements kann der Collector eine erste Aktualisierung anfordern, die den aktuellen Status der Pfade im Abonnement enthält. Dieses Update, das auch als erste Synchronisierung bezeichnet wird, ist aus folgenden Gründen wertvoll:

  • Der Kollektor hat einen vollständigen Überblick über den aktuellen Zustand jedes Feldes auf dem Gerät für diesen Sensorpfad.

  • Ereignisgesteuerte Daten (ON_CHANGE) werden vom Collector mindestens einmal empfangen, bevor das nächste Ereignis angezeigt wird. Auf diese Weise ist der Collector über den Datenstatus informiert, bevor das nächste Ereignis eintritt.

  • Sensoren der Packet Forwarding Engine, die Null-Zählerwerte enthalten, die normalerweise aufgrund von Nullunterdrückung nicht in gestreamten Daten angezeigt werden, werden gesendet. Dadurch wird sichergestellt, dass alle Felder aus jeder Linecard dem Collector bekannt sind.

Das Zielgerät antwortet auf die Abonnementanforderung mit einer SubscribeResponse Nachricht. Wenn die Abonnementanforderung eine erste Synchronisierung erfordert, sendet das Ziel die Daten, gefolgt von der Antwortnachricht, wobei das Flag sync_response auf festgelegt ist true. Nach der ersten Synchronisierung fährt das Zielgerät mit Updates für die Pfade entsprechend dem Abonnementmodus fort.

Die SubscribeRequest Nachricht enthält ein Flag mit dem Namen updates_only. Wenn dieses Flag auf truegesetzt ist, sendet das Zielgerät keine erste Synchronisierung, sondern nur nachfolgende Aktualisierungen wie folgt:

  • Bei STREAM Abonnements im SAMPLE Modus wird das Update im nächsten Beispielintervall gesendet.

  • Bei STREAM Abonnements im ON_CHANGE Modus wird das Update bei der nächsten Wertänderung gesendet.

  • Bei ONCE Abonnements wird nur das SubscribeResponse gesendet, wobei sync_response auf gesetzt ist false, und das Abonnement wird geschlossen.

  • TARGET_DEFINED Abonnements werden wie ON_CHANGE Konfigurationspfade behandelt, und das Update wird bei der nächsten Wertänderung gesendet.

Der Inhalt der Meldungen und SubscribeResponse wird in der SubscribeRequest Datei gnmi.proto definiert. Weitere Informationen zu den Modi "RPC abonnieren" und "Abonnement" finden Sie in der gNMI-Spezifikation unter: gNEMI-Spezifikation: Abonnieren von Telemetrieupdates.

Anmerkung:

Für Konfigurationspfade gelten die folgenden Einschränkungen:

  • POLL Abonnements werden nicht unterstützt.

  • Präfixpfade sind in den Aktualisierungsmeldungen nicht enthalten.

  • Die gNMI-Antwort wird für Juniper-spezifische Metadatenoperationen wie active/inactive, insert before/after, comment/annotateund protect/unprotect. Diese werden möglicherweise in der Meldung angezeigt, sind aber ungültig.

  • Nicht unterstützte Parameter in den SubscribeRequest includesuppress_redundant-, allow_aggregationheartbeat_level-, und qos.

  • Es wird nur die PROTO-Codierung unterstützt.

  • Erweiterungen in SubscribeRequest Nachrichten werden nicht unterstützt

  • Das Filtern der Abonnementpfade wird nur auf Schlüsselebene unterstützt.

  • Die folgenden Commit-Varianten werden für ON_CHANGE und TARGET_DEFINED Abonnements nicht unterstützt:

    commit at, commit prepare/activateund Batch-Commits.
  • Commits werden von der

    edit dynamic und edit private Modi bearbeiten oder konfigurieren.
  • Aktualisierungsmeldungen werden nicht für Anwesenheitscontainer gesendet.

  • Bei Abonnementlisten, bei denen der Bezeichner oder Schlüssel das einzige konfigurierte Leaf ist, wird möglicherweise keine Aktualisierungsmeldung angezeigt.

Beispiele

Die folgenden Beispiele zeigen Abonnementanforderungen und -antworten, die von einem gNMI-Client und einem Zielgerät im protobuf-Format gestellt werden.

Beispiel: ONCE-Modus

Das folgende Beispiel zeigt eine Abonnementanforderung, die von einem gNMI-Client im protobuf-Format gesendet wird. Der Abonnementmodus und ONCE der OpenConfig-Ressourcenpfad lautet /system/aaa/authentication/users:

Das Ziel antwortet mit einer einmaligen Aktualisierung:

Beispiel: ON_CHANGE

Das folgende Beispiel zeigt eine Abonnementanforderung im STREAM Modus mit ON_CHANGE Untermodus. Der OpenConfig-Ressourcenpfad lautet /system/aaa/authentication/users/user[username="test1"]:

Die OpenConfig-Konfiguration zum Zeitpunkt der Abonnementanforderung:

Die Beispielantwortnachricht zeigt die Werte für die Konfigurationspfade und das sync_response Flag auf true:

Die folgenden Konfigurationsänderungen werden an den abonnierten Pfaden vorgenommen:

  • Fügen Sie einen Benutzernamen für test1hinzu.

  • Passwort löschen für test1.

Das Zielgerät sendet als Antwort das folgende Update:

Beispiel: SAMPLE

Das folgende Beispiel zeigt eine Abonnementanforderung im STREAM Modus und SAMPLE im Untermodus. Der OpenConfig-Ressourcenpfad lautet /system/aaa/authentication/users/user[username="test1"]:

Die OpenConfig-Konfiguration zum Zeitpunkt der Abonnementanforderung:

Die Beispielantwortnachrichten zeigen eine erste Aktualisierung, die mit dem Flag auf gesendet wird, true und nachfolgende Aktualisierungen, die sync_response in 5-Sekunden-Intervallen gesendet werden: