SORACOM Developers

SORACOM Lagoon Documents

SORACOM Lagoon を利用してアラートを設定する

このドキュメントではSORACOM Lagoon を利用したアラートの設定方法を解説します。

当ガイドの前提は以下のとおりです。

SORACOM Lagoon とは

SORACOM Lagoon(以降、Lagoon)は、SORACOM Harvest(以下、Harvest) を使って収集・蓄積したデータに対し、目的に応じて複数のグラフ、テーブル、地図等を組み合わせたダッシュボードを作成し、それらを公開もしくは共有できるサービスです。

lagoon_overview

本サービスを活用することで、ダッシュボードのためのインフラの準備なし、センサーなどのIoTデバイスが取得したデータを可視化できます。また、値が一定値を越えたらメールやSlackで通知を送るといったアラート機能や、作成したダッシュボードを第三者に共有することもできます。

Lagoon はOSS として提供されているGrafana をベースとしており、データソースとしてHarvest に蓄積されたデータを利用します。

※Lagoonでは、サービス提供にあたって一部機能に制限があります。詳しくは SORACOM Lagoon の制限事項 を参照ください。

ステップ 1: Harvest を設定する

今回はユーザーコンソールからHarvest を有効化する設定を行います。

注意
Harvest は有料のサービスです。Harvest が有効になっていると SIM 1枚ごとにオプション料金が発生します。詳しくは料金表を確認してください。

ユーザーコンソールでの設定方法

Harvest の設定はグループ単位で行います。そのため、Harvestを使うには Air SIM をグループに登録する必要があります。今回は、動作確認として SORACOM Harvest 専用のグループを作成し、そのグループに Air SIM を登録してみましょう。

まず Air SIM 管理画面を開いて、SORACOM Harvest でデータ収集を行いたい Air SIM にチェックマークを付け、[操作] ボタンから [所属グループ変更] を選択します。

lagoon_creategroup01

Air SIM の所属グループを選択するためのダイアログが表示されたら、[新しい所属グループ] ドロップダウンから [新しいグループを作成…] を選択します。
今回は“Hello Lagoon Alert"というグループ名で作成しSIM を所属させます。

lagoon_creategroup02

先ほど作成した "Hello Lagoon Alert” グループに対し、SORACOM Harvest の設定を行います。設定を行うためには、グループ管理画面を開き、"Hello Lagoon Alert" グループを選択してグループ詳細画面を開きます。

[SORACOM Harvest 設定] グループの中にあるスイッチをONに設定し、保存ボタンをクリックしてください。

lagoon_settinggroup

HTTPでデータを送信する

サンプルデータとしてHarvestエントリポイント宛にHTTP POSTリクエストを送信します。今回は以下のような気温データを先ほどグループ設定したAir SIM から数秒ごとに送信してみてください。(値や回数は同じでなくても構いませんがtemperature: 25以下のデータを送信いただけますと後の手順がスムーズです)

コマンド例:

$ curl -v POST -H 'content-type:application/json' -d '{"temperature": 18}' http://harvest.soracom.io
$ # 数秒待つ
$ curl -v POST -H 'content-type:application/json' -d '{"temperature": 20}' http://harvest.soracom.io
$ # 数秒待つ
$ curl -v POST -H 'content-type:application/json' -d '{"temperature": 23}' http://harvest.soracom.io

$ # more ...

ユーザーコンソールからHarvest で収集された JSON 形式のデータを可視化できます。

lagoon_harvest

以上で「ステップ 1: SORACOM Harvest を設定する」まで完了しました。 ここまでのHarvest の設定について不明点があれば、SORACOM Harvest でデバイスのデータをクラウドで収集・取得・可視化する をご確認ください。

ステップ 2: Lagoon でダッシュボードを作成する

Lagoon の設定を行います。 初期設定については SORACOM Lagoon を利用してダッシュボードを作成する をご確認ください。

先ほどの Harvestに格納したデータを Lagoonで表示してみましょう。 まずは任意のダッシュボードからグラフパネルを利用します。

lagoon-alert_addpanel

パネル上部のプルダウンメニューから「編集」をクリックしグラフの設定を行います。

まずは「全般」タブからこのグラフのタイトルを設定します。
今回は「Lagoon Alert Test」とします。

lagoon-alert_editpanel_general

次に「メトリック」タブからこのグラフに表示する統計情報を設定します。
データソースは「default 」でSORACOM Harvestを選択している状態となるため変更は不要です。 今回はAir SIM経由でHarvestへデータ登録を行いましたのでプルダウンから「Air」を選択し、利用したIMSI の値を一つ右のの入力欄へ設定してください。
また、Harvesr へ登録した「temperature」をプルダウンから選択し、標準データなので「Standard」を設定してください。

lagoon-alert_editpanel_metrics

ここまでの設定で以下のようなグラフが作成できたと思います。

lagoon-alert_getpanel

一旦ここまででこのダッシュボードを保存しましょう。 画面右上にある保存ボタンからこのダッシュボードに名前をつけて保存できます。
今回は「Lagoon Alert Dashboard」という名前で保存します。

lagoon-alert_save_dashboard

以上で「ステップ 2: Lagoon でダッシュボードを作成する」まで完了しました。 ここまでの設定について不明点があれば、SORACOM Lagoon を利用してダッシュボードを作成する をご確認ください。

ステップ 3: Lagoon でアラートチャンネルを設定する

Lagoon のアラートチャンネルの設定を行います。 Lagoon はOSS として提供されているGrafana をベースに開発されているのでメールやwebhook 等の様々な通知方法があります。
今回はSlack への通知を設定します。
 ※Slack アカウントは作成済であることを前提としています。

まずはダッシュボードホーム画面のサイドメニューからアラート「通知チャンネル」を選択します。

lagoon-alert_add_alertchannel

アラート設定画面が表示されますので「+ New Channel」から通知チャンネルの新規追加を行います。

lagoon-alert_add_alertchannel02

通知チャンネルの設定画面が表示されます。
まずはこの通知チャンネルに名前をつけましょう。今回は「Lagoon Alert Channel」としました。
タイプでは通知する手段を選択します。今回は「Slack」を選択します。
通知を受けるためのSlack URL をまだ取得していないので、この画面は一旦ここまでで置いておきます。

lagoon-alert_add_alertchannel03

次に通知を受けるためのSlack URL を取得します。 以下のURL に別のブラウザタブからアクセスします。 「Post to Channel」からアラート通知を受けたいチャンネルを選択します。今回は「#_keith」というチャンネルを選択しています。
下にある「Add Incoming WebHooks integration」ボタンを押してください。

https://slack.com/services/new/incoming-webhook

lagoon-alert_add_slackchannel01

すると以下の画面のようにWebhook URL が発行されます。

lagoon-alert_add_slackchannel02

また、この画面の下部では通知される際の名前やアイコン等がカスタマイズできますのでぜひ試してみてください。
変更したら「Save Settings」ボタンで保存します。

lagoon-alert_add_slackchannel03

それでは先ほどの通知チャンネル「Lagoon Alert Channel」に取得したWebhook URL を設定します。 ここまでの設定ができていれば画面下にある「送信テスト」ボタンからSlackへアラートのテスト送信ができます。
最後に忘れずに「保存」ボタンで設定を保存しておいてください。

lagoon-alert_add_slackchannel04

以下のようなテストアラートが受信できていれば「ステップ 3: Lagoon でアラートチャンネルを設定する」まで完了しました。

lagoon-alert_get_alerttest

ステップ 4: Lagoon でアラートを設定する

Lagoon のデータを監視しアラートする設定を行います。

ステップ 2で作成したダッシュボードのグラフを編集します。 「アラート」タブから「アラートを作成」ボタンで新規にアラートを設定します。

lagoon-alert_add_alert01

アラートのパラメーターを設定していきます。

つまり今回の設定は「評価間隔:10秒」ごとに「データAの現在から10秒前の10秒間」の「平均値」が「25」を超過していた場合にアラートを出すことになります。

今回は定期的にデータをあげる訳では無いので「データが無いか全ての値がNull の時」は「Keep Last State」とし、不要なアラートが飛ぶことを回避しておきます。(「NO Data」を選択すると「No Data」であることの通知がきます)

lagoon-alert_add_alert02

設定したアラートのパラメータをアラートチャンネルと紐付けます。 「アラート」タブの左にある「通知」タブから送り先を設定します。「+」ボタンから先ほど作成したアラートチャンネル「Lagoon Alert Channel」を選択し任意のメッセージを設定します。

lagoon-alert_add_alert03

ここまで設定が完了していれば以下の図のようにグラフの中にアラート閾値が描画されているはずです。

lagoon-alert_add_alert04

それではアラートを発火させてみましょう。 今回はコマンドからアラート閾値(25)を上回る値を登録します。

コマンド例:

$ curl -v POST -H 'content-type:application/json' -d '{"temperature": 30}' http://harvest.soracom.io

すると以下のようにSlackにアラート通知がきていれば成功です。

lagoon-alert_add_alert05

グラフを確認すると確かにアラート閾値を超過していることが確認できます。

lagoon-alert_add_alert06

さて、それではアラートを解除してみましょう。 今回はコマンドからアラート閾値(25)を下回る値を登録します。

コマンド例:

$ # 10~20秒待つ
$ curl -v POST -H 'content-type:application/json' -d '{"temperature": 20}' http://harvest.soracom.io

以下のようにSlackに通知がきていれば成功です。

lagoon-alert_add_alert07

グラフのアラートタブから設定したアラートの状態履歴を見ることもできます。

lagoon-alert_add_alert08

以上でLagoon でアラートを設定することができました。

この機能を活用することで単にデータを可視化するだけではなく、異常検知や定期報告のような活用が可能となります。
色々な場面での活用を検討してみてください。

Getting Started

SORACOM Air for セルラー

SORACOM Air for LoRaWAN

SORACOM Air for Sigfox

SORACOM Beam

SORACOM Canal/Direct/Door

SORACOM Endorse

SORACOM Funnel

SORACOM Gate

SORACOM Harvest

SORACOM Inventory

SORACOM Junction

SORACOM Krypton

SORACOM Lagoon

サービス機能詳細

Developer Tools

pagetop