Heartbeatメトリックを使ったAzure VMとLog Analyticsの接続状況監視
Log Analyticsワークスペースと仮想マシン(Azure VM)の接続状況を、Azure Monitor使って監視する手順です。
Log AnalyticsワークスペースのHeartbeatメトリックを使用してアラートルールを作成しています。
Azure Monitorでのアラートルールの作成から、アラート通知まで確認しています。
Log Analyticsワークスペースとの接続状況を確認する方法には、Azure Monitorのカスタムログ検索を使う方法とメトリックを使う方法があります。
カスタムログ検索を使って、Heartbeatのログ監視する方法についてはこちらで紹介しています。
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
Azure MonitorでHeartbeatメトリックを監視するアラートルールを作成
仮想マシンのログやメトリック情報収集はAzure Monitor エージェント
仮想マシンでのログやメトリックの収集から、Log Analyticsワークスペースへの転送はAzure Monitorエージェント経由で行われます。
以前はLog Analyticsエージェントなどが存在しましたが、記事記載時点ではAzure Monitorエージェントに集約されています。
過去のエージェント情報が集約されたことについての詳細はこちらに記載されています。
Azure Monitor エージェントはHeartbeatログで正常性通知
定期的にAzure Monitor エージェントからLog Analyticsワークスペースへ正常性の通知を行います。
正常性の通知は、Heartbeatログを送信することで行われます。
通知は1分間隔で実施されます。このHeartbeatの受信状況を確認することで、Log Analyticsワークスペースと各リソースの接続状況を把握することができます。
Log AnalyticsワークスペースにはHeartbeatのメトリックがある
Log Analyticsワークスペースには、Heartbeatメトリックがあります。
仮想マシンはLog Analyticsワークスペースへ1分間に1度、このメトリックを送信します。
このメトリックを利用することで、Log Analyticsワークスペースと仮想マシンの接続状況を監視できます。
Log AnalyticsワークスペースのHeartbeatメトリックを使ったアラートルール設定
Log AnalyticsワークスペースのHeartbeatメトリックを利用して、Azure Monitorのアラートルールを作成します。
Heartbeatを5分間受信しなかった場合にアラートを発生させます。
監視間隔は1分としています。
タブ名 | 項目名 | 設定値 |
スコープ | リソース | Log Analytics ワークスペース (log-test-01) |
条件 | シグナル名 | Heartbeat (プラットフォーム メトリック) |
アラート ロジック | しきい値:Static 集計の種類:合計 演算子:合計 単位:カウント しきい値:0 |
|
ディメンションで分割する | Computer (今後のすべての値を含める) |
|
評価するタイミング |
確認する間隔:5分 |
|
アクション | アクショングループ名 | ag-mail-01 (メール送信用) |
詳細 | 重大度(重要度) | 1 – エラー |
アラート ルール名 | Azure Monitor Agent HeartBeat Error(metric) | |
アラートを自動的に解決する | チェック |
※設定時は重大度と表示されますが、設定後は重要度と表示されます。
※監視間隔は要件に応じて変更します。今回は検証目的なので短めの設定としています。
メトリックを使ったアラートルールを作成
Heartbeatのメトリックを使った、アラートルールを作成します。
–広告—
仮想マシンを起動・停止してHeartbeatメトリックアラートの発生を確認
仮想マシンを停止して、Log Analyticsワークスペースとの接続断を発生させます。
仮想マシンを停止してHeartbeatメトリックアラートの発生を確認
仮想マシンを停止して、アラートを発生させます。
2台の仮想マシンを停止しています。
-
- 実施した操作
- test-vm-01を停止
- test-vm-02を停止
- 実施した操作
Heartbeatメトリックアラートのメールを確認
受信したアラートメールの内容を確認します。
※アクショングループの共通アラート スキーマは無効にしています。有効にした場合にはアラートメールの表示内容が異なります。
仮想マシンを起動してアラートの回復を確認
仮想マシンを起動し、仮想マシンとLog Analyticsワークスペースの接続を回復させます。
アラートが解決済みになるか確認します。
-
- 実施した操作
- test-vm-01を起動
- test-vm-02を起動
- 実施した操作
アラートの条件を"すべて"に設定し、解決済みのアラートも表示されるようにします。
メトリックとカスタムログ検索での回復時のアクションの違い
Azure Monitorのカスタムログ検索を使う方法とメトリックを使う方法、どちらでもLog Analyticsワークスペースとの接続状況を監視できます。
同様に監視できますが、カスタムログ検索で設定した場合と、メトリックで設定した場合では、障害発生中や回復時のアラート通知に違いがあります。
カスタムログ検索 | メトリック | |
発生時 | 発生のアラートが通知される | 発生のアラートが通知される |
継続中 | アラート通知がしばらく継続 (集計の粒度で指定した期間) |
アラート通知されない |
回復時 | アラート通知が停止 (アラートの条件は起動済み) |
回復の通知がされる (アラートの条件が解決済み) |
—広告—
最後に
Log AnalyticsワークスペースのHeartbeatメトリックを使って、仮想マシンの接続状況を監視する設定手順を確認しました。
アラート発生時や回復時にアラート通知ができました。
仮想マシンの死活監視としても適用できそうです。
引き続き、色々試してみたいと思います。
Azure Monitor エージェントを利用して、Windows ServerのイベントログをLog Analyticsワークスペースに収集して監視する方法については、こちらで紹介しています。
Azure Monitorのシグナルの種類でアクテビティログを選択した場合の監視設定手順については、こちらで紹介しています。