はじめに
今まではリソース正常性で異常を検知したら、大体VMが再起動始めるので
リソース正常性異常=VM再起動、くらいの認識だったのでpingアラートを見ていれば特に気にすることもなかったけど
先日、異常が発生したのにVM停止しなかったので、障害と気づくのにエラい時間がかかった。
そんな反省を踏まえてリソース正常性で異常が起きたらちゃんとメールを通知してくれる仕組みを
Azure Monitorで実装する
まずはVM作る
アラートの追加
VM>リソース正常性>リソース正常性のアラートの追加 クリック
条件の設定
を参考にする。
設定項目は4つ。
項目 | 値 | 備考 |
---|---|---|
イベントの状態 | このアラートで監視するResourceHealthイベントの種類 | Active/InProgress/Resolved/Updated |
現在のリソースの状態 | このアラートで監視するResourceHealthの現在のリソース状態を識別します | Available/Degraded/Unavailable |
以前のリソースの状態 | このアラートで監視するResourceHealthの以前のリソース状態を識別します | Available/Degraded/Unavailable/Unknown |
理由の種類 | このアラートで監視するResourceHealthイベントの原因を識別します | Platform Initiated(プラットフォーム開始)/Unknown(不明)/User Initiated(ユーザ開始) |
サーバが停止したときの条件
使用できる状態(Available)から使用できない状態(Unavailable)ってことで以下のように設定
サーバが起動したときの条件
アラートなので停止したときでもいいかなって思ったけど、復旧したこともメールでうけとりたかったので一応作った。
停止と逆パターンなので、、、以下のように設定
実際に確かめた
挙動を確認しよう上記アラートルールで、
- 起動しているVMを停止する
- 停止したVMを起動する
でそれぞれ確かめたところ、実際にVMを起動停止してから即座にアラート発報!
…ということはなくて3~5分くらいしてからアラート通知が来た。
結果は、Home>Monitor>Alertより確認。
ちょっとわかりづらいけど
件名:リソース正常性のエラー が、VM停止したときに発報されたアラートで
件名:リソース正常性が復旧しました が、VM起動したときに発報されたアラート。
それぞれの内容をチェックする
VM停止したときのアラート
メールで受け取った内容がこちら。
type(型)は'downtime'で、cause(理由)が'Unknown'なのか。手動で実行したんだけどなぁ…
VM起動したときのアラート
メールで受け取った内容がこちら。
type(型)とcause(理由)ともに'Unknown'。こっちも手動で実行したんだけどなぁ…スッキリしない。。。
おわりに
今回はお試しで手動でのVM起動/停止だったけど
実際のケースでは、Microsoft起因のVM停止を拾いたい。
でもメールを見るに、ユーザが手動で動かしてもcauseがunknownってことを考えると、、、
少なくとも、
理由の種類=Platform Initiated(プラットフォーム開始) or Unknown(不明)
で拾ったらやりたいことができるかな、正確な感じはなさそうだけど。
まずは早速実際に試してみよう。
~おしまい~