Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Dekodieren von Junos Telemetry Interface-Daten mit UNIX-Dienstprogrammen

Sie können UNIX-Dienstprogramme verwenden, um Junos Telemetry Interface-Daten auf einem Server oder Collector zu decodieren, der Daten von einem Gerät von Juniper Networks streamt. Das Beispiel in diesem Abschnitt zeigt, wie Sie ein einzelnes Paket mit gestreamten Daten decodieren.

Vorbereiten des Kollektors zum Dekodieren von Daten

Für dieses Beispiel ist Folgendes erforderlich:

  • UNIX-Betriebssystem mit dem Dienstprogramm Netcat (nc).

  • Protokollpuffer-Compiler.

  • Das Junos Telemetry Interface-Protokoll puffert Dateien.

In diesem Verfahren wird gezeigt, wie der Kollektor für die Decodierung von Daten mit dem Ubuntu-Betriebssystem vorbereitet wird.

  1. Installieren Sie das Netcat-Dienstprogramm.

  2. Installieren Sie den Protokollpuffer-Compiler.

  3. Installieren Sie die Entwicklerbibliothek für Protokollpuffer.

  4. Vergewissern Sie sich, dass die Bibliotheksdateien installiert sind.

  5. Laden Sie die neueste Version der Protokollpufferdateien der Junos Telemetry-Schnittstelle herunter und installieren Sie sie.

    Navigieren Sie in einem Webbrowser auf der Juniper Networks Seite zur Download-URL für alle Junos-Plattformen: https://www.juniper.net/support/downloads/. Nachdem Sie den Namen der Junos OS-Plattform und die Versionsnummer ausgewählt haben, wechseln Sie zum Abschnitt "Tools ", und laden Sie das Paket "Junos Telemetry Interface Data Model Files " herunter.

    Anmerkung:

    Notieren Sie sich den Speicherort der extrahierten Dateien.

Dekodieren von Daten auf dem Kollektor

In diesem Verfahren wird gezeigt, wie Sie Daten erfassen, Rohdaten decodieren und die Protokollpufferdateien zum Decodieren von Daten verwenden.

So decodieren Sie Daten:

  1. Erfassen Sie die Daten.

    Führen Sie netcat auf einem Ziel-Streamingtelemetrieserver oder -collector im UDP-Listenermodus aus, um alle eingehenden Datagramme in einer Datei zu speichern. Verwenden Sie die Zielportnummer, die Sie im Streaming-Server-Profil auf Ihrem Juniper Networks-Gerät konfiguriert haben.

    Anmerkung:

    Mit diesem Befehl werden Datagramme in einer Datei mit dem Namen data.gpbgespeichert. Führen Sie dieses Programm aus, um Daten zu erfassen. Wenn Sie den Empfang von Daten beenden möchten, stoppen Sie mit dem Programm, indem Sie das Unterbrechungssignal (Control + C) senden

  2. Dekodieren Sie Rohdaten.

    Anmerkung:

    Dieser Schritt ist optional. Sie ist nicht erforderlich, wenn Sie den codierten Nachrichtentyp der Daten kennen.

    Decodieren Sie die Nachricht aus der data.gpb Datei.

    Die nächste verschachtelte Struktur unter 2636 identifiziert den Sensortyp. Der numerische Wert 2636 identifiziert die Nachricht, die JuniperNetworksSensor in der telemetry_top.proto Datei definiert ist. In diesem Beispiel entspricht die numerische Kennung 7 der LogicalPort in der logical_port.proto Datei definierten Nachricht. Verwenden Sie diese Informationen im nächsten Schritt, um eine detailliertere Ausgabe zu generieren.

  3. Decodieren Sie die Nachricht, um Feldnamen einzuschließen.

    Führen Sie den Protokollpuffer-Compiler mit der decode-Option aus. Geben Sie außerdem den Nachrichtentyp der obersten Ebene (TelemetryStream) und die Datei mit der Nachrichtendefinition an. logical_port.proto Sie müssen auch die Goggle Protocol Buffers (gpb)-Bibliothek einschließen.

Dekodierung von UDP-Daten der Junos Telemetry Interface am Kollektor

Der Collector muss einen Listener auf der Remoteadresse oder Portkombination starten, um die eingehenden Daten zu lesen. Die eingehenden Daten können mit Hilfe der telemetry_top.proto- und der Sensor-proto-Dateien dekodiert werden.

Um das Dekodierungsverfahren zu vereinfachen, können die Collectors alle Proto-Dateien laden, die als Teil des Telemetriesoftwarepakets ausgeliefert werden, um die eingehenden Daten zu dekodieren.

Anmerkung:
  1. Überprüfen Sie Streaming-Daten sowohl auf Management- als auch auf WAN-Schnittstellen. Geben Sie die entsprechende Adresse im Streamingserverprofil an.
  2. Enumerationen und Gleitkommazahlen werden als Zeichenfolgen für das UDP-Streaming gestreamt. Enumerationen werden als Zeichenfolgen beibehalten, da gNMI das gleiche Format verwendet.
  3. Die Behandlung des Gleitkomma-Datentyps ist für eine zukünftige Version vorgesehen.

Wenn Telemetriedaten über UDP gestreamt werden, stellen Sie sicher, dass die Daten korrekt decodiert werden und unbekannte Felder nicht am Kollektor decodiert werden.

Im Folgenden sind einige Probleme aufgeführt, die beim Streamen von Telemetriedaten über UDP beobachtet werden:

  1. Falsche Decodierung: Eine falsche Decodierung bedeutet, dass Telemetriedaten nicht korrekt über UDP gestreamt werden. Im folgenden Beispiel geben die fett hervorgehobenen Daten an, dass die Daten nicht ordnungsgemäß decodiert wurden. Dieses Verhalten ist entweder auf eine falsche Codierung oder eine falsche Paketierung der Proto-Datei zurückzuführen.

    Nachfolgend sehen Sie ein Beispiel für die korrekte Dekodierung der Daten:

  2. Unvollständiges Datenstreaming: Das Streaming unvollständiger Daten muss durch Datenvalidierung in der Ausgabedatei überprüft werden.