Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

WebSocket を使用したデバイス データのストリーミング (ユース ケース)

この例では、WebSocketを使用してデバイスデータをストリーミングするJuniper Mistユースケースについて説明します。

WebSocketは、TCP接続を介して全二重通信を提供するプロトコルです。WebSocket API は、クライアントがエンドポイントと通信する方法を提供します。Juniper Mist は、このプロトコルを使用して、ほぼリアルタイムのデータをクライアントにストリーミングします。クライアントは、チャネルをサブスクライブすることで、受信したいデータを要求します。クライアントは要求を一度だけ行い、更新が行われるとサーバーはチャネル データをクライアントにストリーミングします。

この通信方法は、イベント駆動型データをほぼリアルタイムで受信するのに適しています。その主な用途は、デバイスデータを収集することです。あなたや他のネットワーク管理者は、このデータをカスタムイベントディスプレイ、通知システム、外部ロギング機能などに供給することができます。

WebSocket の使用は、組織が必要とする情報が Juniper Mist ポータル内でネイティブに利用できない場合に特に役立ちます。

このユースケースでは、サイトのデバイス統計をリクエストしてサブスクライブするようにクライアントを構成する方法を示します。

WebSocket を使用するには、次の要素が必要です。

  • 認証

  • HTTP ヘッダーの構成

  • WebSocket 接続 URL (wss://api-ws.mist.com/api-ws/v1/stream)。URLは、お住まいの地域に基づいて確認してください。

手記:

コードブロックを再利用する場合は、プレースホルダー値を実際の値(APIトークン、組織ID、サイトID、AP名など)に置き換えます。

MIST WebSocketエンドポイントとの通信

Juniper Mist WebSocket エンドポイントと通信するには、Postman というアプリケーションを使用します。Postman は、API を構築および使用するための GUI API プラットフォームです。複数の API 呼び出しを行うスクリプトを構築できます。この API を使用すると、WebSocket 呼び出しを行うこともできます。

次の手順では、[接続] ボタンの横にある入力ボックスに URL を追加することから始めて、Juniper Mist WebSocket に接続する方法について説明します。

  1. [接続] をクリックします。
    [メッセージ] ウィンドウには、クライアントが接続を試み、すぐに切断されたことが示されます。これは、Juniper Mist WebSocket が認証を必要とするためです。
  2. 認証の問題を解決するには、カスタム HTTP ヘッダーを要求に追加します。
    1. [KEY] 見出しの下に、新しい "Authorization" キーを作成します。

    2. [VALUE] 入力ボックスに、 token という単語の後にスペースを入力し、その後にJuniper Mist認証トークンを入力します。

    3. 「KEY」列の左側にあるチェック・ボックスを選択してアクティブにします。

    4. [ 接続 ] をクリックして、Mistとの WebSocket セッションを確立します。

  3. 接続したら、Postman の [メッセージ] 見出しに切り替えます。

    ここで、デバイス統計ストリームをサブスクライブすることで、必要なデータをMistに伝えます。

    次の例では、指定されたサイトのデバイス統計データを要求します。

  4. この情報を「メッセージ」入力ボックスに入力した状態で、「 送信」をクリックします。

    Postman は、要求に上向き矢印を、Juniper Mist応答に下向き矢印を表示します。

    次の例は、Juniper Mist からの応答で表示される内容を示しています。

    サブスクライブしてから数秒以内に、JSON 形式 (既定) で [メッセージ] ウィンドウにストリーミングされるイベントが表示されるようになります。

    同じ出力を次の形式で表示できます。

    • テキスト

      1. {"event": "data", "channel": "/sites/c1947558-268d-4d31-xxxx-xxxxxxxxxxxx/stats/devices", "data": "{\"mac\": \"5c5b35fxxxxx\", \"last_seen\": 1686592607, \"稼働時間\": 6259614, \"バージョン\": \"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\"}, \"ゲートウェイ\": \"10.10.12.1\", \"ip6\": \"fe80:0:0:0:5e5b:35ff:fef1:5ed8\", \"netmask6\": \"/64\", \"ip\": \"10.10.12.25\", \"ネットマスク\": \"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": "data", "channel": "/sites/c1947558-268d-4d31-xxxx-xxxxxxxxxxxx/stats/devices", "data": "{\"mac\":

      2. \"5c5b35fxxxxx\"、\"last_seen\":1686592607、\"稼働時間\":6259614、\"バージョン\":\"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\"}, \"ゲートウェイ\": \"10.10.12.1\", \"ip6\":

      5. \"fe80:0:0:0:5e5b:35ff:fef1:5ed8\", \"netmask6\": \"/64\", \"ip\": \"10.10.12.25\", \"ネットマスク\": \"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, \"稼働時間\": 6259614, \"バージョン\": \"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\"}, \"ゲートウェイ\": \"10.10.12.1\", \"ip6\": \"fe80:0:0:0:5e5b:35ff:fef1:5ed8\", \"netmask6\": \"/64\", \"ip\": \"10.10.12.25\", \"ネットマスク\": \"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}"}

    メッセージを送信してチャネルを切断または登録解除するまで、メッセージを受信し続けます。

    データを受け取ったら、次のようなさまざまな操作を行うことができます。

    • イベントのカスタム表示またはダッシュボードを作成します。

    • データを長期的にアーカイブします。

    • カスタムの監視とアラートを作成します。

    • 結果に基づいてさらに自動化を作成します。

    他の自動化ツールを使用して MIST WebSocket エンドポイントと通信する例(Python など)については、「 自動化ツール」を参照してください。