目次
はじめに
こんにちは、omkです。
前回はIoT SiteWiseにOPC UAサーバからデータを連携するところまでを実装しました。
セルフホストゲートウェイでAWS IoT SiteWiseを導入!!
連携されたデータを確認するうえでダッシュボードがあれば分かりやすいのと、もし問題があったときにすぐ気付けるようにアラームが欲しいですね。
ということでアラームを作成してダッシュボード上に表示します。
シリーズ
- PythonでOPC UAで通信してみた
- AWS IoT SiteWiseとOPC UAサーバをセルフホストゲートウェイで連携!!
- AWS IoT SiteWise Monitorのダッシュボードでアラームを可視化!!(前) ←今ここ
やってみた
前回同様、以下のデータ構造で各クライアントマシンのリソース使用状況が連携されます。
root/
├─ Client_A
│ ├─ CPU_USAGE
│ ├─ MEM_USAGE
│ └─ SWAP_USAGE
│
└─ Client_B
├─ CPU_USAGE
├─ MEM_USAGE
└─ SWAP_USAGE
Client_A、Client_Bはそれぞれ同一のモデルに紐づいたアセットとして作成しています。
アラームの作成
IoT SiteWiseではモデルにアラームを設定して各アセットに適用出来ます。
アラームは「AWS IoT Eventsアラーム」と「外部アラーム」が存在しており、
今回は簡単に使える「AWS IoT Eventsアラーム」を利用します。
初期状態ではアラームは設定されていないのでこれに設定を追加してくんですが、
AWS IoT Eventsアラームは特定のプロパティ同士の比較によってアラーム状態を決定します。
そのため、定数のしきい値を持つアラームを作成する場合にはしきい値用のプロパティをモデルに持たせる必要があります。
定数をプロパティに持たせる場合は属性のプロパティタイプを設定して値を入れます。
ではアラームを作成します。
設定した属性を元にアラームのしきい値を設定します。
SiteWise Monitorでアラームを管理したいのでここをアクティブにしておきます(デフォルトはアクティブなので触らなくてよい)
アラートの承認ルールもほしいのでフローを承認も有効にしておきます。
これでアラームを追加すればOKです。
勝手にIAMロールやIoT Events アラームモデルを作成していい感じにしてくれるのでこのあたりはノータッチで問題ありません。
アクションにSNSを追加することで自動通知も可能です。
ダッシュボード作成
ポータルを開きます。なければ作成します。
ダッシュボードを作成するには以下のステップを踏む必要があります。
- プロジェクトを作成
- アセットをプロジェクトに追加
- ダッシュボードを作成
プロジェクトはプロジェクトタブから作成出来ます。
アセットのプロジェクトへの追加はアセットタブから出来ます。
最後にプロジェクトからダッシュボードを作ります。
これでダッシュボードが完成しました。
アラーム状態にしてみる
クライアントAでメモリを大量に使用する処理を実施したところアラーム状態になってしまいました。
処理が終われば負荷が落ち着いてすぐにしきい値内に戻りました。
アラームの設定で承認フローを有効にしているのでしきい値が戻ってもNormalには戻りません。
アセットからアラームを確認して承認します。
Normalに戻りました。ちゃんちゃん。
ということで無事にダッシュボードが作成できました。
承認もちゃんとCloudTrailの証跡に残るので安心です。
おわりに
異常が起こっていたり直近で確認が必要なことが分かりやすくなりましたね。
ですが、実はプロジェクトに紐づけられるアセットは1つなのでダッシュボードに表示出来るアセットも必然的に1つだけになるんですね。
なので今回の例ではクライアントAのダッシュボードしか作成していないです。
これではクライアントAとBを包括的に確認したり、より上位の視点から見ることは出来ません。
ですので次はクライアントAとBをあわせて1つのダッシュボードで確認出来るようにしていきます。
アーキテクト課のomkです。
AWSについて雑多に取り組んだ内容を発信しています!!