Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Streamen von Gerätedaten mit einem WebSocket (Anwendungsfall)

In diesem Beispiel besprechen wir den Juniper Mist Anwendungsfall des Streamings von Gerätedaten mit einem WebSocket.

Ein WebSocket ist ein Protokoll, das Vollduplex-Kommunikation über eine TCP-Verbindung bereitstellt. Eine WebSocket-API bietet einem Client die Möglichkeit, mit einem Endpunkt zu kommunizieren. Juniper Mist verwendet dieses Protokoll, um Daten nahezu in Echtzeit an einen Client zu streamen. Ein Client fordert die Daten an, die er erhalten möchte, indem er einen Kanal abonniert. Der Client stellt die Anforderung nur einmal, und der Server streamt die Kanaldaten an den Client, wenn Aktualisierungen vorgenommen werden.

Diese Kommunikationsmethode eignet sich gut, um ereignisgesteuerte Daten nahezu in Echtzeit zu empfangen. Sein Hauptzweck ist das Sammeln von Gerätedaten. Sie und andere Netzwerkadministratoren können diese Daten dann in eine benutzerdefinierte Ereignisanzeige, ein Benachrichtigungssystem, eine externe Protokollierungsfunktion und vieles mehr einspeisen.

Die Verwendung von WebSocket ist besonders hilfreich, wenn die Informationen, die Ihre Organisation benötigt, nicht nativ im Juniper Mist-Portal verfügbar sind.

In diesem Anwendungsfall zeigen wir, wie ein Client so konfiguriert wird, dass er die Gerätestatistiken einer Website anfordert und abonniert.

Für die Verwendung eines WebSockets sind die folgenden Elemente erforderlich:

  • Authentifizierung

  • Konfiguration des HTTP-Headers

  • WebSocket-Verbindungs-URL (wss://api-ws.mist.com/api-ws/v1/stream). Bitte bestätigen Sie Ihre URL anhand Ihres geografischen Standorts.

Anmerkung:

Ersetzen Sie bei der Wiederverwendung von Codeblöcken Platzhalterwerte durch tatsächliche Werte, z. B. Ihr API-Token, Ihre Unternehmens-ID, Ihre Standort-ID, Ihren AP-Namen usw.

Kommunizieren mit einem Mist Systems WebSocket-Endgerät

Für die Kommunikation mit dem Juniper Mist WebSocket-Endpunkt verwenden Sie eine Anwendung namens Postman. Postman ist eine GUI-API-Plattform zum Erstellen und Verwenden von APIs. Sie können Skripte erstellen, die mehrere API-Aufrufe ausführen. Mit dieser API können Sie auch WebSocket-Aufrufe ausführen.

In den folgenden Schritten wird beschrieben, wie Sie eine Verbindung mit dem Juniper Mist WebSocket herstellen können, beginnend mit dem Hinzufügen der URL zum Eingabefeld neben der Schaltfläche Verbinden:

  1. Klicken Sie auf Verbinden.
    Im Bereich "Meldungen" wird angezeigt, dass der Client versucht hat, eine Verbindung herzustellen, und die Verbindung sofort getrennt wurde. Dies liegt daran, dass der Juniper Mist WebSocket eine Authentifizierung erfordert.
  2. Um das Authentifizierungsproblem zu beheben, fügen Sie der Anforderung einen benutzerdefinierten HTTP-Header hinzu.
    1. Erstellen Sie unter der Überschrift KEY einen neuen Schlüssel "Authorization".

    2. Geben Sie im Eingabefeld WERT das Wort gefolgt von einem Leerzeichen token und dann das Juniper Mist Autorisierungstoken ein.

    3. Aktivieren Sie das Kontrollkästchen links neben der Spalte KEY, um es zu aktivieren.

    4. Klicken Sie auf Verbinden , um die WebSocket-Sitzung mit Mist einzurichten.

  3. Sobald die Verbindung hergestellt ist, wechseln Sie zur Überschrift Nachricht in Postman.

    Hier teilen Sie Mist mit, welche Daten Sie möchten, indem Sie den Gerätestatistik-Stream abonnieren.

    Im folgenden Beispiel werden Gerätestatistikdaten für den angegebenen Standort angefordert.

  4. Nachdem Sie diese Informationen in das Eingabefeld Nachrichten eingegeben haben, klicken Sie auf Senden.

    Postman zeigt Ihre Anfrage mit einem Pfeil nach oben und die Juniper Mist Antwort mit einem Pfeil nach unten an.

    Das folgende Beispiel zeigt, was Sie von einer Antwort von Juniper Mist erwarten können.

    Innerhalb weniger Sekunden nach dem Abonnieren sollten Ereignisse im JSON-Format (Standard) in den Bereich "Nachrichten" gestreamt werden:

    Sie können die gleiche Ausgabe in den folgenden Formaten sehen:

    • Text

      1. {"event": "data", "channel": "/sites/c1947558-268d-4d31-xxxx-xxxxxxxxxxxx/stats/devices", "data": "{\"mac\": \"5c5b35fxxxxx\", \"last_seen\": 1686592607, \"uptime\": 6259614, \"version\": \"0.9.22801\", \"_partition\": 48, \"_offset_apbasic\": 4639768722, \"ip_stat\": {\"DNS\": [\"10.10.12.11\", \"10.10.12.12\"], \"ips\": {\"VLAN12\": \"10.10.12.25/25,fe80:0:0:0:5E5B:35FF:FEF1:5ED8/64\"}, \"gateway\": \"10.10.12.1\", \"ip6\": \"fe80:0:0:0:5e5b:35ff:fef1:5ed8\", \"netmask6\": \"/64\", \"ip\": \"10.10.12.25\", \"netmask\": \"255.255.255.128\", \"dhcp_server\": \"10.10.12.1\"}, \"ip\": \"10.10.12.25\", \"ble_stat\": {\"tx_pkts\": 9073, \"tx_bytes\": 105431, \"rx_pkts\": 393432193, \"rx_bytes\": 2772782221, \"tx_resets\": 0}, \"_time\": 1686592607.62131}"}

    • HTML

      1. {"event": "Daten", "Kanal": "/sites/c1947558-268d-4d31-xxxx-xxxxxxxxxxxx/stats/devices", "data": "{\"mac\":

      2. \"5c5b35fxxxxx\", \"last_seen\": 1686592607, \"uptime\": 6259614, \"version\": \"0.9.22801\", \"_partition\": 48,

      3. \"_offset_apbasic\": 4639768722, \"ip_stat\": {\"dns\": [\"10.10.12.11\", \"10.10.12.12\"], \"ips\": {\"vlan12\":

      4. \"10.10.12.25/25,fe80:0:0:0:5e5b:35ff:fef1:5ed8/64\"}, \"gateway\": \"10.10.12.1\", \"ip6\":

      5. \"fe80:0:0:0:5e5b:35ff:fef1:5ed8\", \"netmask6\": \"/64\", \"ip\": \"10.10.12.25\", \"netmask\": \"255.255.255.128\",

      6. \"dhcp_server\": \"10.10.12.1\"}, \"ip\": \"10.10.12.25\", \"ble_stat\": {\"tx_pkts\": 9073, \"tx_bytes\": 105431,

      7. \"rx_pkts\": 393432193, \"rx_bytes\": 2772782221, \"tx_resets\": 0}, \"_time\": 1686592607.62131}"}

    • XML

      1. {"event": "data", "channel": "/sites/c1947558-268d-4d31-xxxx-xxxxxxxxxxxx/stats/devices", "data": "{\"mac\": \"5c5b35fxxxxx\", \"last_seen\": 1686592607, \"uptime\": 6259614, \"version\": \"0.9.22801\", \"_partition\": 48, \"_offset_apbasic\": 4639768722, \"ip_stat\": {\"DNS\": [\"10.10.12.11\", \"10.10.12.12\"], \"ips\": {\"VLAN12\": \"10.10.12.25/25,fe80:0:0:0:5E5B:35FF:FEF1:5ED8/64\"}, \"gateway\": \"10.10.12.1\", \"ip6\": \"fe80:0:0:0:5e5b:35ff:fef1:5ed8\", \"netmask6\": \"/64\", \"ip\": \"10.10.12.25\", \"netmask\": \"255.255.255.128\", \"dhcp_server\": \"10.10.12.1\"}, \"ip\": \"10.10.12.25\", \"ble_stat\": {\"tx_pkts\": 9073, \"tx_bytes\": 105431, \"rx_pkts\": 393432193, \"rx_bytes\": 2772782221, \"tx_resets\": 0}, \"_time\": 1686592607.62131}"}

    Sie erhalten weiterhin Nachrichten, bis Sie den Kanal entweder trennen oder abbestellen, indem Sie eine Nachricht senden.

    Sobald Sie die Daten erhalten haben, können Sie eine Vielzahl von Dingen damit tun, wie zum Beispiel:

    • Erstellen Sie eine benutzerdefinierte Anzeige oder ein Dashboard mit Ereignissen.

    • Archivieren Sie die Daten langfristig.

    • Erstellen Sie benutzerdefinierte Überwachungen und Warnungen.

    • Erstellen Sie weitere Automatisierungen auf der Grundlage der Ergebnisse.

    Beispiele für die Verwendung anderer Automatisierungstools für die Kommunikation mit einem MIST WebSocket-Endpunkt, z. B. Python, finden Sie unter Automatisierungstools.