• IoTデバイスの稼働状況を遠隔監視! NEQTO Custodiaのご紹介

本記事のポイント

IoT組み込みエンジンNEQTOではIoTデバイス管理に必要な機能をサポートしています。その中で、今回はIoTデバイスの稼働状況を監視する機能「NEQTO Custodia」について紹介します。IoTデバイスの稼働状況を監視することは、IoTサービスの品質を維持し、運用していくために必要な要素となります。



1. はじめに

IoTでは、センサー情報の取得や機器を遠隔で監視・制御することが可能です。
しかしながら、これら遠隔監視・制御は、センサーや機器に接続されているIoTデバイスが正常に稼働していることが大前提です。
そのため、IoTサービスにはIoTデバイスの稼働状況を監視することは必要な要素です。
そこで、今回はNEQTOで提供しているIoTデバイスの稼働状況を監視する機能の「NEQTO Custodia」をご紹介します!

2. NEQTO Custodia(カストーディア)とは?

NEQTO Custodiaは、
IoTデバイスから送信されるデータに対し、NEQTO Console側でデータ受信の状態を設定された時間間隔で監視する機能です。
IoTデバイスの故障や通信障害により、本来届くはずのデータが受信できなかったことを検知することによって、IoTデバイスが正常に稼働していないことを認識するため、サービスへの影響を防ぐための有効的な手段となります。

サービスへの影響の一つとして、通信障害によるデータ通信不可があげられます。
早期に異常を検知し対策をしないと、IoTデバイスで取得したデータが欠落し、サービスの品質が低下します。
NEQTOではNEQTO Custodiaで異常を早期に検知する方法とは別に、通信障害が発生した場合でもIoTデバイスに内蔵されたフラッシュメモリにデータを保存し、通信障害が復帰した場合、クラウドへ送信することができるStorageオブジェクトを用意しています。Storageオブジェクトについては、また別のブログで紹介します。

3. NEQTO Custodiaの使用例

例えば、10分に1回センサー情報をIoTデバイスがNEQTO Consoleに送信するケースで、NEQTO Console側で30分周期でデータを受信したか否かの稼働状況を監視する場合、IoTデバイスが正常動作をしていれば、問題なく30分の周期の中でデータ受信を確認することができます。

10分に1回センサー情報を送信

もし、IoTデバイスが故障もしくは無線障害が発生した場合、30分周期の稼働監視でデータを受信できないことから異常が検知され、ユーザーに通知をする、といった使い方があります。

異常検出

今回は、NEQTO Consoleから送信されるコマンドに対するIoTデバイスの返信を監視する使用例で説明をしたいと思います。

構成図を下図に示します。
IoTデバイスとしてSTM32 Discovery Kitを使用します。

STM32 Discovery Kit

ご説明するシナリオの例は、以下の通りです。

  1. IoTデバイスの稼働状況を監視する周期 (NEQTO CustodiaのTimer Interval)は、600秒 (10分)に設定します。

  2. NEQTO Consoleから5分に1回で「Alive?」というコマンドを一括送信で送信します。※1

※1 NEQTO Consoleには周期的にコマンドを送信する機能はございませんので、本ブログでは手動でテンプレートのカスタムメッセージを使用して一括送信をします。   なお、カスタムメッセージにつきましては、ブログ「IoTデバイスを簡単に遠隔操作! NEQTO Dynamic APIのご紹介」を参照ください。

STM32 Discovery Kit図
  1. 「Alive?」コマンドを受信したIoTデバイスは「Yes」をNEQTO Consoleへ送信します。
STM32 Discovery Kit図
  1. Timer Intervalの10分間の中で、「Yes」を受信できなかったIoTデバイスの号機と検知時間をメールで送信します。
STM32 Discovery Kit図

4. NEQTO Custodiaの設定方法

NEQTO Custodiaを使用する場合は、NEQTO Consoleのグループ設定のオプションサービス内にある「Custodia」を有効にします。
また、データ受信を監視する間隔の時間を、Timer Intervalに入力します。

グループ編集画面

NEQTO Custodiaのご利用にあたり費用が発生しますので、詳しくはNEQTO料金体系をご確認ください。

アクションの設定

メール送信の設定をするため、以下のようにアクションの設定をします。

メタデータ編集
アクションの設定

本文の中に{timestamp__Asia_Tokyo}や{node_name}という表記があります。
これは動的数値という変数であり、{timestamp}については選択したタイムゾーンのタイムスタンプ、{node_name}についてはノード名がNEQTO Consoleにより自動入力されます。
動的数値の詳細はリンクを参照ください。

通知登録

NEQTO Custodiaで検出した稼働状況を、アクションで設定したメール通知を関連づけるため、以下のように通知を設定します。

通知を設定する
通知編集

レベルについて

レベルには「Info」、「Warn」、「Error」、「Fatal」の表記があります。

NEQTO Custodiaはこのうち「Info」、「Warn」のみを使用します。

それぞれの内訳は以下の通りです。

レベル 状態 説明
Info Healthy 規定インターバル内に正常にデータが来ている状態
Disabled Custodia無効状態
Pending 規定インターバルでのデータ受信を待っている状態
Warn Unhealthy 規定インターバル内にデータが来ない状態

遠隔での稼働監視では、今回設定している赤枠で示したレベル「Warn」の「Unhealthy」の「規定インターバル内にデータが来ない状態」の情報がとても重要ですが、レベル「Info」の状態「Healthy」も重要です。

電波状態が不安定な場合、データ受信できない状態が発生したとしても、復帰する可能性もあります。
「Healthy」、「Unhealthy」が頻繁に発生する場合は、無線上の問題がある可能性もありますので、その場合は設置場所やアンテナ配置の見直しが必要です。

NEQTOでは受信レベルのRSSIをコンソール上で確認できますし、信号品質を取得できるオブジェクトを準備していますので、無線状態を確認して設置・配置の検討にご活用頂けると思います。

受信レベル「RSSI」

NEQTO Consoleから「Alive?」コマンドを一括送信

カスタムメッセージで「alive?」を送信

カスタムメッセージで「alive?」を送信

STM32 Discovery Kit_No.1, No.2から「Yes」を受信

STM32 Discovery Kit_No.1より「Yes」を受信
STM32 Discovery Kit_No.2より「Yes」を受信

カスタムメッセージで2回目の「Alive?」を送信

STM32 Discovery Kit_No.2の電源をオフしています。

STM32 Discovery Kit_No.1より「Yes」を受信
STM32 Discovery Kit_No.2より「Yes」を受信していない

Timer Intervalに設定した10分を超えたところで、STM32 Discovery Kit_No.2に関わるメールを受信したことを確認しました。

メールの例

ノードダッシュボード上の「ノード状態」で異常を検知していることが確認できます。

以上を表示

ノードダッシュボード上の「最近のイベント」でもレベル「warn」、「Unhealthy」であることが確認できます。

最近のイベント画面

5. 終わりに

今回は、IoTデバイスの稼働監視の機能である「NEQTO Custodia」を、IoTデバイスの稼働監視の重要性とともに説明をしました。
データをクラウドへ送信する機能はIoTとしてベースとなる機能ですが、更に一歩先のIoTでは必ず必要となるデバイスの管理は、IoTサービスを進める上でとても重要です。
今後もNEQTOでサポートしているデバイス管理の機能について、ブログを通して紹介をしていきます。


リンク

今回使用したデバイス

STM32L4+ Discovery kit IoT node [B-L4S5I-IOT01A]: STマイクロエレクトロニクス