MENU

Soracom

Users

インスペクション機能を使用して VPG を通過するパケットの統計情報を可視化する

当ガイドでは、SORACOM Junction (以下、Junction)のインスペクション機能で出力される統計情報をもとに、VPG を通過するパケットを可視化します。

インスペクション機能で出力されるパケットの統計情報を Amazon Kinesis Stream(Kinesis Stream) に送信します。さらに、Kinesis Stream をサブスクライブする AWS Lambda(Lambda) が Elastic Cloud にデータを送信します。Elastic Cloud の Elasticsearch、Kibana で統計情報を可視化します。

概要

事前に以下を準備します。

  • Elastic Cloud (Elasticsearch、Kibana)
  • Kinesis Stream
  • Lambda

なお、Lambda ファンクションは、サンプルのスクリプトを提供いたします。Kibana で使用する Dashboard および Visualization は、Elastic 社様からサンプルを提供いただきましたので、これを使用します。

ステップ 1: Elastic Cloud を設定する

Elastic Cloud とは、Elastic 社が提供する Elasticsearch と Kibana のマネージドサービスです。

アカウントをお持ちでなければ、 こちらから Elastic Cloud のアカウントを作成します。 (14 日間の無料トライアルが利用できます。)

ElasticCloud に関するお問い合わせは当社では承っておりません。

クラスタの作成

ユーザー登録後、ログインして、「Create Cluster」をクリックします。 クラスタ作成の画面に遷移するので、「Tokyo Region」を選択し、残りはデフォルトで作成してください。

Elastic Cloud

完了すると、最初にクラスタを操作するための「elastic」ユーザーのパスワードが表示されます。後ほど使用しますので、メモしておいてください。

次に、メニューの「Configuration」から、Kibana を「enable」にしてください。

「Please wait until the current plan is finished before enabling Kibana.」 が表示される場合は、しばらくお待ちください。

Elastic Cloud

アクセスの確認

  • 次に、Elasticsearch と Kibana にそれぞれアクセスできることを確認をします。
  • クラスタの「Overview」ページにある「Endpoints」の「HTTPS」のリンクをクリックします。(こちらが Elasticsearch の Endpoint となります。)
  • 基本認証のダイアログが表示されるので、ユーザー「elastic」、さきほどメモしたパスワードを入力します。
  • 以下のような JSON の内容がブラウザに表示されたら、接続成功です。

Elastic Cloud

  • 同様に、Kibana にもアクセスしてください。ユーザー「elastic」でアクセスできれば成功です。

Elastic Cloud

インデックスの作成とドキュメントの登録

データを投入する前に、インデックスのテンプレートを登録します。

  • こちらから、JSON ファイルをダウンロードしてください。(右クリックして、保存してください。)
  • 以下のコマンドを実行して、インデックスを作成し、ドキュメントを登録します。リクエスト先の URL は、Elaticssearch の Endpoint となります。(クラスタの「Overview」ページから確認できる URL です。)
$ curl --user elastic:ES_PASSWORD -H "Content-Type:application/json" -X PUT "https://xxxxxxxxxxxxxxxxxx.ap-northeast-1.aws.found.io:9243/_template/soracom-vpg" -d@/Users/xxx/elastic/soracom-realtime-vpg-metrics-template.json

{“acknowledged”:true} とレスポンスがあれば成功です。

以上で、Elastic Cloud の設定は完了です。

ステップ 2: Kinesis Stream を作成する

インスペクションからのデータ送信先となる Kinesis Stream を作成します。

概要

  • AWS コンソールから、Amazon Kinesis の管理画面にアクセスしてください。「Stream コンソールに移動」をクリックします。

Kinesis Stream の作成

  • Kinesis ストリームを作成します。

Kinesis Stream の作成

  • Kinesis ストリーム名は、ここでは「junction-inspection-escloud」として、Kinesis ストリームを作成してください。

Kinesis Stream の作成

  • 以下のように表示されます。しばらく待つと完了します。

Kinesis Stream の作成

Kinesis ストリームの作成は以上です。

ステップ 3: AWS IAM を作成する

ここでは、IAM ユーザーとロールを作成します。 作成する IAM ユーザーは、Kinesis ストリームへのインプットを行います。このユーザーのクレデンシャルを SORACOM Junction の設定で使用します。

ロールは、このあと作成する Lambda ファンクションを実行するロールとして使用します。

ユーザーの作成

AWS コンソールの「IAM」からユーザーを選択して、「ユーザーを追加」をクリックします。 ユーザーの作成

ユーザー名は「kinesis」とします。

ユーザーの作成

「プログラムによるアクセス」を選択します。

ユーザーの作成

ポリシーでは、「既存のポリシーを直接アタッチ」を選択して、「AmazonKinesisFullAccess」を選択します。

ユーザーの作成

内容を確認して、「ユーザーの作成」をクリックします。 ユーザーの作成

以下の画面がでると成功です。 のちほど、Junction のインスペクション機能で使用するため、アクセスキー ID とシークレットアクセスキーをメモしておいてください。 ユーザーの作成

ロールの作成

AWS コンソールの「IAM」からロールを選択して、「新しいロールの作成」をクリックします。

Role の作成

ロールタイプでは、「AWS Lambda」を選択します。

Role の作成

ポリシーでは、「AWSLambdaKinesisExecutionRole」をアタッチします。

Role の作成

ロール名に、ここでは「 lambda_kinesis_execution 」として、ロールを作成します。 Role の作成

以上で、ユーザーとロールの作成は完了です。

ステップ 4: AWS Lambda を作成する

次に Lambda を作成します。

概要

AWS コンソールから AWS Lambda の管理画面にアクセスします。 「Lambda 関数の作成」をクリックします。 Lambda の作成

「Blank Function」をクリックします。 Lambda の作成

トリガーの設定では、「Kinesis」を選択して、Kinesis ストリームでは、さきほど作成した「junction-inspection-escloud」を選択します。「トリガーの有効化」にチェックをつけてください。 Lambda の作成

Lambda 関数は、 こちらからダウンロードしたスクリプトをコピー&ペーストしてください。 ランタイムでは、「Python 3.6」を選択します。

Lambda の作成

次に、環境変数を入力します。 以下のように、5 つの環境変数を入力してください。

環境変数名
ES_BASE_URLElasticsearch の Endpoint になります。Elactic Cloud のクラスタのトップページにある「Endpoints」の「HTTPS」のリンクです。 URL の最後の / は削除してください。
ES_USERNAMEElastic Cloud のユーザー ID です。当ガイドでは「elastic」となります。
ES_PASSWORDユーザー「elastic」のパスワードです。
ES_INDEXインデックス名です。ここでは、「soracom」としてください。(Lambda ファンクションが soracom-YYYY.MM.DD としてデータを送信します。)
ES_TYPE「stats」とします。

ロールでは、さきほど作成した「 lamdba_kinesis_execution 」を選択します。

Lambda の作成

タイムアウトを 1 分にします。

Lambda の作成

設定内容を確認して「関数の作成」をクリックします。 Lambda の作成

以下の画面が表示されれば作成完了です。 Lambda の作成

ステップ 5: インスペクションを設定する

次に、Junction のインスペクション機能を設定します。 以下のような流れとなります。

  • VPG を作成
  • グループ作成、SIM の所属グループ変更
  • クレデンシャル登録
  • インスペクション機能を設定

VPG の作成

SORACOM のユーザーコンソールにログインします。 画面左上部のプルダウンメニューから「VPG」を選択します。

「VPG を追加」をクリックします。

VPG の名前を入力し、タイプは「Type-F」を選択します。 「作成」をクリックすると、「状態」が「作成中」となります。しばらく(3 分程度)して、「実行中」となれば作成完了です。

  • 「Type-C/D」でもこれまでどおり「SORACOM Junction のインスペクション機能」をご利用いただけます。
  • グローバルカバレッジで VPG を作成する場合はランデブーポイントを指定できます。詳細は VPG を作成する > 「VPG ランデブーポイント」を参照ください。

グループの作成と SIM の所属グループの変更

SORACOM ユーザーコンソールの左上のプルダウンメニューより「グループ」を選択します。

「追加」をクリックして、グループ名を入力し、グループを作成します。 作成したグループをクリックしグループ画面の「基本設定」から「SORACOM Air 設定」を開きます。

「SORACOM Air 設定」内に、以下のように「VPG (Virtual Private Gateway) 設定」があるので、「ON」とし、先ほど作成した「VPG」を選択します。

「保存」をクリックします。

VPG を指定したグループに含まれる IoT SIM は VPG を利用することになります。

次に、IoT SIM をグループに所属させます。「SIM 管理」メニューから、接続を行う SIM を選択し、「所属グループ変更」をクリックします。

先ほど作成したグループに所属させます。

注意

  • グループの VPG の設定変更をしたら、既に接続中のデバイスについては、設定変更後に一旦接続を切ってから繋ぎ直してください。セッション切断・再接続を行わないと、設定が反映されません。
  • スマートフォンの場合、Air Plain (機内)モードの On/Off を行うと、簡単にセッションを再作成できます。

クレデンシャルの登録

次に、インスペクション機能で統計情報の送信先の Kinesis Stream のクレデンシャルを登録します。 ソラコムのユーザーコンソールから「セキュリティ」->「認証情報ストア」を選択します。

クレデンシャルの作成

以下のように、先ほど、AWS の IAM から作成したユーザーのクレデンシャルを登録します。 アクセスキー ID とシークレットアクセスキー登録します。 ここでは、「kinesis」という認証情報 ID で登録します。

クレデンシャルの作成

インスペクション機能を設定

作成した VPG の設定画面を開きます。 「Junction 設定」タブを開きます。

インスペクションを「ON」にして、以下の情報を入力します。

設定
転送先サービスAmazon Kinesis Stream
転送先 URLhttps://kinesis.ap-northeast-1.amazonaws.com/junction-inspection-escloud
https://kinesis.<region>.amazonaws.com/<delivery stream name>となります。ここでは、Kinesis Stream 名は「junction-inspection-escloud」です。
認証情報kinesis
さきほど作成したクレデンシャルとなります。

インスペクションの設定

ステップ 5: VPG を通過するパケットの統計情報を可視化する

では、作成した VPG を適用した IoT SIM グループに含まれる SIM で通信します。

インデックスパターンの作成

  • インデックスパターンを作成します。
  • Kibana にログインして、「Management」->「Index Pattern」をクリックします。
  • 以下のように、インデックスパターンに「 soracom-* 」を指定します。

インスペクションの設定

インデックスパターンはデータの投入後に作成します。先にデータを投入してください。

ダッシュボードのインポート

Kibana のダッシュボードをインポートします。

  • こちらから、設定ファイルをダウンロードしてください。
  • Kibana の管理画面から、「Management」->「Saved Objects」->「import」をクリックして、ダウンロードしたファイルをインポートします。

Elastic Cloud

統計情報を可視化する

Elastic Cloud の Kibana にアクセスします。「Dashboard」->「Soracom」をクリックします。

Kibana dashboard

以下のように、通信先のプロトコルやアプリケーション、データ通信量やパケット数などを確認できます。インスペクション機能によるパケットの統計情報を可視化しています。

Kibana dashboard

送信される統計情報のサンプルは リファレンス: インスペクションで送られるパケットの統計情報 を参照してください。

「VPG を通過するパケットの統計情報を可視化する」は以上となります。