Heartbeatメトリックを使ったAzure VMとLog Analyticsの接続状況監視

2019-08-21Azure,Log Analytics,Monitor,Virtual Machine

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エージェント経由で行われます。

Azure Monitor エージェントの概要

以前はLog Analyticsエージェントなどが存在しましたが、記事記載時点ではAzure Monitorエージェントに集約されています。
過去のエージェント情報が集約されたことについての詳細はこちらに記載されています。

レガシ エージェントの統合

Azure Monitor エージェントはHeartbeatログで正常性通知

定期的にAzure Monitor エージェントからLog Analyticsワークスペースへ正常性の通知を行います。
正常性の通知は、Heartbeatログを送信することで行われます。

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分
ルックバック期間:5分
評価の頻度:1分

アクション アクショングループ名 ag-mail-01
(メール送信用)
詳細 重大度(重要度) 1 – エラー
アラート ルール名 Azure Monitor Agent HeartBeat Error(metric)
アラートを自動的に解決する チェック

※設定時は重大度と表示されますが、設定後は重要度と表示されます。
※監視間隔は要件に応じて変更します。今回は検証目的なので短めの設定としています。

メトリックを使ったアラートルールを作成

Heartbeatのメトリックを使った、アラートルールを作成します。

アラートルール作成手順
左側のメニューでアラートを選択します。
作成のアラートルールを選択します。

スコープはLog Analyticsワークスペースを指定します。

条件設定です。
シグナルはHeartbeat(プラットフォームメトリック)を選択します。

アラートロジックでは、監視の条件を設定します。
カウントの合計値が0になった場合にアラートを発するようにしています。

ディメンションはアラートロジックの適用単位であり、Computer単位としています。

評価するタイミングは、監視間隔や対象の期間に基づきます。
ルックバック期間は評価の期間を示し、確認する間隔は監視間隔に該当します。
今回は1分としています。

アクショングループでは、アラートの通知方法を設定します。
事前に作成しておいたメール送信用のアクショングループを選択します。

アクション グループ

詳細では、アラートルール名や重大度を設定します。

 

確認画面です。
設定値を確認します。
作成を選択します。
作成したアラートルールが表示されています。

–広告—

仮想マシンを起動・停止してHeartbeatメトリックアラートの発生を確認

仮想マシンを停止して、Log Analyticsワークスペースとの接続断を発生させます。

仮想マシンを停止してHeartbeatメトリックアラートの発生を確認

仮想マシンを停止して、アラートを発生させます。
2台の仮想マシンを停止しています。

    • 実施した操作
      • test-vm-01を停止
      • test-vm-02を停止
発生したアラートを確認

アラートを検知していることを確認できます。
Computer単位で検知しているため、2件のアラートが発生しています。

アラートの詳細は、発生したアラートを選択して確認できます。アラートの詳細で、Heartbeat(メトリック)の推移も確認できます。
ディメンションに設定したComputer名も確認できます。

履歴のタブでは、アラートの発生やアクションで設定したアクショングループの実行状況が確認できます。

Heartbeatメトリックアラートのメールを確認

受信したアラートメールの内容を確認します。

Heartbeatメトリックのアラートメール

受信したアラートメールから、MetricやDimensionsの値を確認できます。
Metricの値からHeartbeatであることが確認できます。
Dimensionsの値を見ると、対象のComputer名が分かります。

いつから仮想マシンが停止しているかを確認するには、リンク先の情報を確認する必要があります。

“See in the Azure Portal"のリンクを選択すると、アラートの詳細画面が表示されます。

※リソースID(Resource ID)は、Log AnalyticsワークスペースのリソースIDです。対象のComputerは、Dimensionsで確認します。

※アクショングループの共通アラート スキーマは無効にしています。有効にした場合にはアラートメールの表示内容が異なります。

仮想マシンを起動してアラートの回復を確認

仮想マシンを起動し、仮想マシンとLog Analyticsワークスペースの接続を回復させます。
アラートが解決済みになるか確認します。

    • 実施した操作
      • test-vm-01を起動
      • test-vm-02を起動

アラートの条件を"すべて"に設定し、解決済みのアラートも表示されるようにします。

アラートの回復を確認

アラートの条件が、解決済みとなっていることが確認できます。

アラートを選択して、詳細を確認します。
Heartbeat(メトリック)の推移が、回復していることが確認できます。

履歴タブには、"アラートが解決されました"というログが記録されます。
アラート解決時にアクションが実行されたことも確認できます。

アラートメールのタイトルが、"resolved"となっていることが確認できます。

メトリックとカスタムログ検索での回復時のアクションの違い

Azure Monitorのカスタムログ検索を使う方法とメトリックを使う方法、どちらでもLog Analyticsワークスペースとの接続状況を監視できます。
同様に監視できますが、カスタムログ検索で設定した場合と、メトリックで設定した場合では、障害発生中や回復時のアラート通知に違いがあります。

  カスタムログ検索 メトリック
発生時 発生のアラートが通知される 発生のアラートが通知される
継続中 アラート通知がしばらく継続
(集計の粒度で指定した期間)
アラート通知されない
回復時 アラート通知が停止
(アラートの条件は起動済み)
回復の通知がされる
(アラートの条件が解決済み)

—広告—

最後に

Log AnalyticsワークスペースのHeartbeatメトリックを使って、仮想マシンの接続状況を監視する設定手順を確認しました。
アラート発生時や回復時にアラート通知ができました。
仮想マシンの死活監視としても適用できそうです。

引き続き、色々試してみたいと思います。

Azure Monitor エージェントを利用して、Windows ServerのイベントログをLog Analyticsワークスペースに収集して監視する方法については、こちらで紹介しています。

Azure Monitorのシグナルの種類でアクテビティログを選択した場合の監視設定手順については、こちらで紹介しています。

スポンサーリンク