Peplink APIでできること ネットワークデータの取得と活用

導入ガイド・ハウツー,技術情報Peplink

Peplink APIでできること ネットワークデータの取得と活用

Peplinkユーザーの皆さん、こんにちは。

Peplinkでは電波品質や、リアルタイムでスループットの変動を
グラフ波形としてみることができる機能があります。

これは一目で回線状況を大まかに判断できるので
大変便利な機能となっており私たちも検証やお客様先でよく使ってる機能です!

SpeedFusionVPNのリアルタイム通信品質

そしてこの機能があることをお見せすると
「このグラフデータを数値で取得できないの?」と聞かれることが多いのですが、
正直PeplinkのGUIだけでは画像保存(画面からExportボタン押下)するのが精一杯です😭

しかしPeplink APIを活用することで、数値データの取得が可能になっています!

APIを用いれば今まで以上に精密な分析が可能になりますので、
今回はPeplinkのAPIについて簡単に紹介していこうと思います!

Peplink APIとは?

Peplinkで利用できるAPIは2種類あります。

  • デバイスAPI
  • InControl2 API

デバイス API

各Peplinkデバイス本体が持つAPIです。

  • デバイスのWeb管理画面(Web Admin)と同じポートで動作し、HTTPS経由で直接デバイスにアクセスします。
  • 主に個別デバイスのリアルタイムかつ詳細な制御や監視が可能です。
  • 例として、WANやLANの接続状態取得、設定変更、デバイスの再起動などが行えます。

本記事ではこちらのAPIを叩いていきます!
※FWごとにコマンドが変わってる場合がありますので、お手持ちのPeplinkデバイスのFWを確認してからご活用ください。

InControl2 API(以降 IC2 API)

Peplinkのクラウド型統合管理サービスInControl 2(IC2)が提供するAPIです。

  • インターネット経由で、組織内の複数デバイスを一括管理・監視できます。
  • デバイスの状態監視、使用状況レポート、ユーザー統計取得、リアルタイムマップ表示、アラート情報取得などが可能です。
  • OAuth2.0による認証を行い、アクセストークンでAPIにアクセスします。
  • 一度に多くのデバイスをまとめて管理・監視・設定でき、グループ単位や組織単位での運用に適しています。

デバイスAPIとIC2 APIはどう使い分ける?

項目PeplinkデバイスAPIIC2 API
アクセス方法デバイスへの直接アクセスInControl2クラウド
対象範囲個別デバイス複数デバイス(グループ/組織単位)
リアルタイム性高いやや低い(クラウド経由のため遅延あり)
代表的な機能設定変更、再起動、詳細状態取得状態監視、レポート、グループ管理
使用シーンローカル自動化、即自制御、監視クラウド統合管理、SaaS連携

デバイスAPIを使うための手順は?

とりあえずデバイスAPIを叩いてみたいという場合は
curl コマンドPostman がおすすめです。

本記事ではPostmanの方を利用して進めて行きます。
インストール後アカウントの作成を行い、ログインをしてください。

Postmanトップページ

※本格的に活用したいという方はスクリプトを組んで定期的にデータの取得ができるようにするとデータ収集に活用できると思います!

APIを使用する前にはWebAdmin同様、デバイスにログイン(認証)が必要になります。
そのため下記を参考にしてデバイス認証を受けてください。

該当のPeplinkのLANに接続し、Postmanを開いてください。

  1. HTTPメソッドをPOSTに変更
  2. デバイスIPを入れる:https://【デバイスIP】/api/login
  3. Body部分をrawに変更しPeplinkの管理画面(WebAdmin)へのログインユーザー名とPWを入力
  4. Sendを押す
PostmanでPeplinkAPIを使用するための認証取得画面

上記操作を行うとJSON形式でステータスが返ってきます。
statがokならログイン成功です。

デバイスAPI認証時のJSONレスポンス

実際にAPIでどのようなデータが取得できるの?

では次にAPIを用いてSpeedFusionVPNの内訳を取得していきます。

  1. HTTPメソッドをPOSTに変更しBodyはnone
  2. https://192.168.80.1/api/status.pepvpnでpeerIdを確認
  3. https://【デバイスIP】/api/status.pepvpn?tunnelOption=【peerId
取得結果を一部抜粋
"ip": "192.0.0.2",
            "port": 4500,
            "time": {
              "second": 444296,
              "nanoSecond": 37039436
            },
            "rtt": 29,
            "receive": {
              "byte": [
                1160
              ],
              "packet": {
                "wan": [
                  2401
                ],
                "forward": [
                  16
                ],
                "fragment": [
                  0
                ],
                "loss": [
                  1
                ],
                "outOfOrder": [
                  0
                ],
                "recover": [
                  0
                ],
                "discard": [
                  0
                ]
              }
            },
            "transmit": {
              "byte": [
                1600
              ],
              "packet": {
                "wan": [
                  2425
                ],
                "forward": [
                  23
                ],
                "fragment": [
                  0
                ],
                "loss": [
                  0
                ],
                "outOfOrder": [
                  0
                ],
                "fec": [
                  0
                ],
                "redundant": [
                  0
                ]
              }
            },
            "rx": [
              1160
            ],
            "tx": [
              1600
            ],
            "loss": [
              0
            ]
          },
  • ラウンドトリップタイム
  • 送受信データ量
  • パケットの内訳(WAN経由、転送、ロス、順序乱れなど)

等を取得することができました。

これらのデータを活用することで、
回線状況をより詳しく分析していくことが可能になります。

まとめ

いかがだったでしょうか。
今回はPeplink APIについて簡単にではありますが、紹介させていただきました。

簡単に叩きたい場合は、curl コマンドPostman 等のツールを使って叩くことをお勧めします。

定期的に回線のデータが欲しい場合は
スクリプトを組んでいただき、APIをコールする仕組みを作成すれば可能です。

実際にPeplinkのGUIより精密な分析を行う必要があるケースでは、
APIはよく活用されていますのでご活用してみてください!

Quick Q&A

Q. PeplinkのAPIは誰でも使えますか?
A. 一部のAPIはInControl2契約が必要ですが、ローカルで使うデバイスAPIは無料で利用可能です。

Q. API認証は毎回ログインしないといけませんか?
A. 認証トークンの有効時間内であれば、都度のログインは不要です。

Q. Postman以外でもPeplink APIは使えますか?
A. はい、curlやPythonなど任意のHTTPクライアントで実行可能です。

引用・参考リンク

Visited 92 times, 1 visit(s) today