一連の記事「クロスプラットフォームIoT」
1. クロスプラットフォームIoT:Azure CLIとAzure IoT Hubの使用
2. クロスプラットフォームIoT:デバイスの操作
3. クロスプラットフォームIoT:トラブルシューティング
診断プログラムとは何ですか?
何かがうまくいかず、原因を特定しようとしている場合があります。 原則として、ファイアウォールでポートをブロックしているか、十分に広くない帯域幅でブロックしているかにかかわらず、最も難しい部分はネットワーク接続にあります。 そして結果は1つです-不安定な接続。 IoTの動作はAzure管理ポータルとIoTのエンドポイントを介して監視されるため、ログとクラッシュダンプを徹底的に調べるには時間がかかり、複数のサポートアプリケーションを開く必要があります。 IoT Center診断ツールは、IoT Center Toolkitに最近追加されたものです。 これは、IoT Centerが適切に機能していない場合に起こりうる誤動作に関する初期データを提供する効果的な通信検証ユーティリティです。
このツールもnode.jsで記述されており、オープンソースソフトウェアソリューション(MIT)です。 機器にツールをインストールするには、ターミナルで次のコマンドを実行します。
npm install -g iothub-diagnostics
診断ツールの実行は非常に簡単です。必要なのは、IoTセンターからの接続文字列だけです。 他のオプションやコマンドは提供されていません。
テストの結果から判断すると、このツールには
iothubowner
許可が必要
iothubowner
。 すべてのポリシーに適用しようとしませんでした。おそらく、アクセスを制限したり、より低いレベルの権限を持つポリシーを使用したりできます。
iothub-diagnostics "HostName=youriothub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=="
接続が確立されると、ツールは一連のテストの実行を開始します。
- 最初に、ネットワークテストを実行してDNS解決をチェックし、プログラムはURLとの接続をチェックして、インターネット接続が可能かどうかを確認します。 PingURLは現在、
http://www.microsoft.com
関連付けられていhttp://www.microsoft.com
。 このコードは、あなたの裁量で設定できるように、DNSまたはアドレスの表示を提供します。 - 次に、ポートの可用性とTLS暗号化要件が確認されます。 この場合、テストにはHTTPS(443)を介した接続のチェックも含まれ
https://www.microsoft.com
。デフォルトではhttpsRequestUrlはhttps://www.microsoft.com
バインドされていhttps://www.microsoft.com
。 - 検証の最終段階はセンターで実行されます。まず、一時的なデバイスが登録され、次に、サポートされているすべてのプロトコル(HTTPS(443)、AMQP(5672および5671)およびMQTT)を使用して接続D2C(クラウドへのデバイス)およびC2D(デバイスへのクラウド)がテストされます(1833および8883))。
テストの終了時に得られる結果は、次のようになります。
2017-03-16T07:38:51.193Z - info: ******************************************* 2017-03-16T07:38:51.196Z - info: * Executing the Microsoft IOT Trace tool. * 2017-03-16T07:38:51.196Z - info: ******************************************* 2017-03-16T07:38:51.197Z - info: 2017-03-16T07:38:51.198Z - info: --- Executing network tests --- 2017-03-16T07:38:51.222Z - info: 2017-03-16T07:38:51.223Z - info: Starting DNS resolution for host 'www.microsoft.com'... 2017-03-16T07:38:51.254Z - info: --> Successfully resolved DNS to 23.204.149.152. 2017-03-16T07:38:51.255Z - info: 2017-03-16T07:38:51.255Z - info: Pinging IPV4 address '23.204.149.152'... 2017-03-16T07:38:51.291Z - info: --> Successfully pinged 23.204.149.152 2017-03-16T07:38:51.291Z - info: 2017-03-16T07:38:51.291Z - info: Sending https request to 'https://www.microsoft.com/' 2017-03-16T07:38:51.444Z - info: --> Completed https request 2017-03-16T07:38:51.445Z - info: 2017-03-16T07:38:51.445Z - info: --- Executing IOT Hub tests --- 2017-03-16T07:38:54.731Z - info: 2017-03-16T07:38:54.732Z - info: Starting AMQP Test... 2017-03-16T07:38:59.141Z - info: --> Successfully ran AMQP test. 2017-03-16T07:38:59.142Z - info: 2017-03-16T07:38:59.142Z - info: Starting AMQP-WS Test... 2017-03-16T07:39:03.460Z - info: --> Successfully ran AMQP-WS test. 2017-03-16T07:39:03.466Z - info: 2017-03-16T07:39:03.466Z - info: Starting HTTPS Test... 2017-03-16T07:39:08.036Z - info: --> Successfully ran HTTPS test. 2017-03-16T07:39:08.059Z - info: 2017-03-16T07:39:08.060Z - info: Starting Mqtt Test... 2017-03-16T07:39:11.828Z - info: --> Successfully ran Mqtt test.
テスト中にエラーが発生した場合、対応する例外がログに記録され、表示されます。
一般に、診断ツールは、デバイスの接続と操作に関連する一般的な問題について環境をすばやくスキャンするための優れた小型プログラムです。 このツールは、IoTセンターサーバーの監視またはネットワークトレースをサポートしていないことに注意してください。 クライアントを接続し、基本的なIoT操作をテストするように設計されています。
もちろん、追加の機能とレポートツールを追加して、実行したテストの種類に関する詳細情報を取得できます。 このツールをCI / CDチャネルに統合して、基本設計のテストを自分の設計のテストのために拡張したいと思います。