Azure Monitorでのカスタムログ検索を使った監視設定(Heartbeatを使ったAzure VMの接続状況監視)
Log Analyticsワークスペースへ収集したログを利用した、Azure Monitorのアラートルール作成手順です。
仮想マシン(Azure VM)とLog Analyticsワークスペースへの接続時には定期的にHeartbeatログが送信されています。
このHeartbeatログを利用して、仮想マシンからLog Analyticsワークスペースへの接続状況を監視するアラートルールを作成しています。
仮想マシンを停止して、アラート検知も確認しています。
Log Analyticsワークスペースとの接続状況を確認する方法には、Azure Monitorのカスタムログ検索を使う方法とメトリックを使う方法があります。
Heartbeatのメトリックを利用して監視する方法についてはこちらで紹介しています。
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
Azure Monitor エージェントからのHeartbeatログをLog Analyticsワークスペースで確認
Log AnalyticsワークスペースでHeartbeatのログを確認
Log AnalyticsワークスペースでHeartbeatログを確認します。
アラートルールでは使用しませんが、Heartbeatには、Azure Monitorエージェントに関する項目以外にも、コンピューターのIPアドレスやOS名など、多くの情報が含まれています。
また、クエリのサンプルについてはこちらに記載があります。
レガシーエージェントについての記載ですが、クエリ自体は流用できます。
—広告—
Azure Monitorでカスタムログ検索を利用したアラートルールを作成
Heartbeatの最終受信時刻を監視するアラートルールを作成
Log Analyticsワークスペースと仮想マシンの接続状況を監視します。
これは、Heartbeatの最終受信時刻が一定時間を経過したことを検知することで実現できます。
過去5分間にHeartbeatを受信しなかった仮想マシンを検出するログクエリを設定しています。
検索範囲は15分(過去15分のログ)とし、1分間隔で検索して確認する設定にしています。
検索範囲は5分より長めに設定しています。
タブ名 | 項目名 | 設定値 |
スコープ | リソース | Log Analytics ワークスペース (log-test-01) |
条件 | シグナル名 | カスタムログ検索 |
クエリ内容 | 手順参照 | |
測定 | メジャー:テーブルの行 集計の種類:カウント 集計の頻度:15分 |
|
ディメンションで分割する | Computer (今後のすべての値を含める) |
|
アラートロジック |
演算子:次の値以上 |
|
アクション | アクショングループ名 | ag-mail-01 (メール送信用) |
詳細 | 重大度(重要度) | 1 – エラー |
アラート ルール名 | Azure Monitor Agent HeartBeat Error(Custom log) |
※設定時は重大度と表示されますが、設定後は重要度と表示されます。
※監視間隔は要件に応じて変更します。今回は検証目的なので短めの設定としています。
カスタムログ検索を利用したアラートルールを作成
カスタムログ検索を利用して、Heartbeatを受信状況を確認するアラートルールを作成します。
カスタムログ検索を利用したアラートルール作成手順 | ||
左側のメニューでアラートを選択します。 作成のアラートルールを選択します。 |
||
スコープはLog Analyticsワークスペースを指定します。 |
||
条件設定です。 シグナルはカスタムログ検索を選択します。 |
||
アラート発生条件となるログクエリを設定します。 Heartbeatを最後に受信した時間が5分以上前の場合に検知するように、ログクエリを設定します。
|
|
|
測定では、ログクエリの実行時間の範囲やカウント方法を設定します。15分間分のログを対象に、クエリ実行結果の行数をカウントしています。 ディメンションは、Computer単位としています。 アラートロジックでは、監視間隔やしきい値を設定します。 |
||
アクショングループでは、アラート通知方法を設定します。 |
||
詳細では、アラートルール名や重大度を設定します。
|
||
確認画面です。 |
||
—広告—
仮想マシンを停止してHeartbeatログのアラートの発生を確認
仮想マシンを停止して、Log Analyticsワークスペースとの接続断を発生させます。
仮想マシンを停止してHeartbeatログアラートの発生を確認
仮想マシンを停止して、アラートを発生させます。
-
- 実施した操作
- test-vm-01を停止
- test-vm-02を停止
- test-vm-01を起動
- test-vm-02を起動
- 実施した操作
発生したアラートを確認 | |
仮想マシンが停止した後にアラートが検知されていることが確認できます。 1分間隔でアラートルールが実行されるため、1分おきにアラートが検知されていることが確認できます。 発生したアラートを選択すると、アラートの詳細が表示されます。 |
|
Heartbeatログのアラートメールを確認
受信したアラートメールの内容を確認します。
Heartbeatログのアラートメール | |
受信したアラートメールには、アラートの詳細画面やLog Analyticsでのクエリ実行結果へのリンクが表示されています。 ディメンションの値を見ると、発生したComputer名がわかります。Metric Valueでは、発生したカウント数を確認できます。 いつから停止しているかは、リンク先の情報を確認する必要があります。 |
|
※アクショングループの共通アラート スキーマは無効にしています。有効にした場合にはアラートメールの表示内容が異なります。
※サンプルは、test-vm-01のエラーを受信したアラートメールです。
回復しましたという通知はされない
回復時にはアラート通知が停止します。
ただし、回復しましたという通知は送信されず、アラートの条件も起動済みのままとなります。
集計の粒度やクエリ設定によってはアラート通知がしばらく継続する場合がある
仮想マシンを停止した場合にも、アラートが発生し続けるため注意が必要です。
集計の粒度(ログクエリ実行時の時間の範囲)で指定した期間と、クエリ内で指定した時間に応じてアラートが発生し続けます。
今回の設定では、仮想マシンの割り当て解除時から約20分間アラート通知が継続しました。
—広告—
最後に
Azure Monitorでカスタムログ検索を利用したアラートルールの作成手順について確認しました。
Heartbeatログを利用したアラートルールを例に手順を確認しました。
Heartbeatログの最終受信時刻から、仮想マシンからLog Analyticsワークスペースへの接続状況を監視するアラートルールを作成できました。
カスタムログ検索を利用したアラートルールは、幅広く利用できるかと思いました。
引き続き、色々試してみたいと思います。
Azure Monitorエージェントを利用して、Windows ServerのイベントログをLog Analyticsワークスペースに収集し、監視する方法についてはこちらで紹介しています。
アクテビティログから仮想マシンの作成を検知する手順についてはこちらで紹介しています。