Soracom

Users

ドキュメント

アラートを設定する

バージョンに関する注意
  • 当ドキュメントは SORACOM Lagoon Classic (旧バージョンの SORACOM Lagoon) に関して記載しています。現バージョンの SORACOM Lagoon に関するドキュメントは こちら を参照してください。
  • SORACOM Lagoon Classic を契約しているお客様は、SORACOM Lagoon Classic を 2022 年 5 月 31 日まで利用できます。また、SORACOM Lagoon Classic の新規契約は受け付けておりません。
  • 各バージョンに関する情報は SORACOM Lagoon のバージョン を参照してください。
  • 現バージョンへの移行方法は 移行ガイド を参照してください。

Lagoon を利用したアラートの設定方法を解説します。

操作を始める前に準備が必要です (クリックして確認してください)

(1) SORACOM Air for セルラーの IoT SIM、および IoT SIM を利用できるデバイスを準備する

各種デバイスでの IoT SIM の使用方法については 各種デバイスで SORACOM Air を使用する を参照してください。

(2) Slack アカウントを作成する

準備完了

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

ユーザーコンソールで Harvest Data を有効化します。

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

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

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

lagoon_creategroup01 lagoon_creategroup01

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

lagoon_creategroup02 lagoon_creategroup02

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

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

lagoon_settinggroup lagoon_settinggroup

HTTP でデータを送信する

サンプルデータとして Harvest Data のエントリポイント宛に HTTP POST リクエストを送信します。今回は以下のような気温データを 先ほどグループ設定した IoT 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 Data で収集された JSON 形式のデータを可視化できます。詳しくは、Harvest Data でデバイスのデータをクラウドで収集・取得・可視化するステップ 4: データを可視化する を参照してください。

lagoon_harvest lagoon_harvest

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

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

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

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

lagoon-alert_addpanel lagoon-alert_addpanel

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

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

lagoon-alert_editpanel_general lagoon-alert_editpanel_general

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

lagoon-alert_editpanel_metrics lagoon-alert_editpanel_metrics

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

lagoon-alert_getpanel lagoon-alert_getpanel

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

lagoon-alert_save_dashboard lagoon-alert_save_dashboard

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

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

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

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

lagoon-alert_add_alertchannel lagoon-alert_add_alertchannel

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

lagoon-alert_add_alertchannel02 lagoon-alert_add_alertchannel02

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

lagoon-alert_add_alertchannel03 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 lagoon-alert_add_slackchannel01

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

lagoon-alert_add_slackchannel02 lagoon-alert_add_slackchannel02

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

lagoon-alert_add_slackchannel03 lagoon-alert_add_slackchannel03

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

lagoon-alert_add_slackchannel04 lagoon-alert_add_slackchannel04

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

lagoon-alert_get_alerttest lagoon-alert_get_alerttest

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

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

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

lagoon-alert_add_alert01 lagoon-alert_add_alert01

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

  • アラートの名前を設定します。
    • デフォルトで「ダッシュボード名 + alert」になるようなのでそのままとします。
  • 評価間隔を設定します。
    • 下で設定する条件をここで設定する時間間隔で評価します。
    • たとえば「10m」と設定した場合、10 分ごとにアラートを出す状態であるかが評価されることになります。
    • 今回はすぐにアラート結果が欲しいので「10s」とします。
  • 条件を設定します。
    • 「WHEN」の 1 つ右の設定項目ではデータの集計方法が選択できます。
      • たとえば「avg()」では集計したデータの平均値がアラート閾値に対しての評価対象となります。「max() :最大値」「sum() :合計値」「last() :時間範囲での最後の値」あたりをよく使うことになると思います。
      • 今回は簡単に「avg()」とします。
    • 「OF」の 1 つ右の設定項目では監視するデータとその時間範囲を選択できます。
      • たとえばメトリックタブで作成した「A」というデータの現在時刻から 1 分間前までのデータを監視対象としたい場合「query(A, 1m, now)」といったように書くことができます。
      • 今回は簡単に「query(A, 10s, now)」とします。
  • 閾値を設定します。
    • 「IS ABOVE」の 1 つ右の設定項目にたとえば「25」と設定するとデータが「25」を超過した時にアラートが出ます。
    • 「IS ABOVE」はクリックすると変更することも可能で「IS BELOW:下回った時」「IS OUTSIDE RANGE:設定した範囲をから出たら」等から選択できます。

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

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

lagoon-alert_add_alert02 lagoon-alert_add_alert02

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

lagoon-alert_add_alert03 lagoon-alert_add_alert03

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

lagoon-alert_add_alert04 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_alert05

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

lagoon-alert_add_alert06 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_alert07

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

lagoon-alert_add_alert08 lagoon-alert_add_alert08

以上で Lagoon でアラートを設定できました。

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