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