Azure Monitor アラートルール 条件の設定について解説

アラートルールの条件の設定が結構難しい。

VMの死活監視を例に解説します。

特に「評価の頻度」「集計の粒度」と数字が出てくるところがややこしいので、そこを解説します。

Azure MonitorでVMを監視する基本的な考え方

・VMで正しく設定をすると、VMは起動している限り、LogAnalyticsに1分に一度heartbeatlogを送信します。

・Azure Monitorでは、定期的にheartbeatlogの有無をLogAnalyticsに確認して、heartbeatlogが検出されなければ、異常と判断して、アラートを発出します。

評価の頻度

どれくらいの間隔で、AzureMonitorがheartbeatlogの有無をLogAnalyticsに確認するか

例えば5分と設定した場合、5分に一度、heartbeatlogの有無をLogAnalyticsに確認します。

集計の粒度

評価の頻度に基づいて、AzureMonitorがheartbeatlogの有無をLogAnalyticsに確認する際、どれだけ過去の時間のログを確認するか

例)「Loganalyticsのheartbeatログ(1分間に1度記録されている)

たとえば「集計の粒度=5分」に設定していて、16時48分00秒に評価の頻度に基づいて、AzureMonitorがheartbeatlogの有無をLogAnalyticsに確認した場合、以下の赤枠(LogAnlyticsのログ表示結果)のうちの16時43分00秒~16時48分00秒(集計の粒度=5分)において、heartbeatlogの有無を確認します。

「評価の頻度」と「集計の粒度」の関係

評価の頻度によって、評価のタイミングが決まり、その評価のタイミングから集計の粒度の時間分だけ遡って、loganalyticsのログが確認されます。

そのため、基本的には、「評価の頻度」と「集計の粒度」は同じ時間に合わせるのがよいと思います。

たとえば、「評価の頻度5分」、「集計の粒度10分」としたとしても(一応設定はできる)が、これが有用であるケースが思い浮かばない。。。(重複してログを確認することになるだけな気がする。。。)

補足

今回は時間に関するパラメータに焦点を当てて「評価の頻度」「集計の粒度」について説明しました。

しかし実際の設定は

「〇分間隔(評価の頻度)で、過去▲分間(集計の粒度)のログをチェックして、ログの状態が■の場合に、アラートを発出する」と設定します。

今回の説明は、■部分は、「heartbeatlogの有無」とざっくりにしましたが、実際には、「heartbeatlogが2つ以下だった場合」などログの状態についても細かな設定が可能になります。

詳細設定オプション(違反数、評価期間)

これはよりアラート設定がややこしくなるので、なるべく手を出さない方がよいと思います。

一応簡単に触れておきます。

本ページで説明した例ですと単純に

「5分間隔(評価の頻度)で、heartbeatlogの有無を確認して、過去5分間(集計の粒度)にheartbeatlogがなければアラートを発出する」という単純なことしか実現できません。

ただ、例えば要件で「5分間隔(評価の頻度)で、heartbeatlogの有無を確認して、過去5分間(集計の粒度)にheartbeatlogがなければ違反1とする。20分間の間に違反3になったらアラートを発出する」というようなものがあったとします。

この場合、「違反数、評価期間」を設定すれば実現できます。

上記例ですと

違反数=3

評価期間=20分

という設定になります。

ただ、こんなややこしい要件があるのか?と疑問があるので、基本的には、「違反数、評価期間」は使わなくてよいと思います。

Monitor

Posted by mitsuru