Azure VMからLog Analyticsへのログ転送状況監視をしてみた(Custom log search)

 

Azure Virtual MachineからLog Analyticsへのログ転送は、Virtual MachineにインストールされたOMSエージェントで実施されます。その為、OMSエージェントが停止していた場合は、Virtual Machineが動作していてもログ転送が行われません。

今回は、Azure Virtual MachineからLog Analyticsへのログ転送状況監視をAzure Monitorを使って実施してみました。

OMSエージェントは死活監視のために、1分おきにLog AnalyticsへHeartBeatを送信します。このHeartBeatが取得出来ているかを監視することで、Virtual MachineからLog Analyticsへログ転送が行われているのか監視出来ます。

最終のHeartBeat取得時間が一定時間以上前の場合にアラートを上げる確認する事で監視を行います。

Azure MonitorのCustom log searchを使う方法と、メトリックを使う方法がありますが、今回はCustom log searchを使う方法で実施します。

メトリックを利用する方法も併せて参照頂ければ幸いです。

Azure Monitorを使ってLog Analytics(OMSエージェント)の死活監視を行う(Metricを使う)

1.OMSエージェントのHeartBeat時刻取得

最後にOMSエージェントからHeartBeatアクセスがあった時刻は、Log Analytics上で以下のクエリを実行すると確認できます。(下記サンプルはAzure VM指定での出力になります。)

Heartbeat | where Computer==“VM名” | summarize max(TimeGenerated) 

実際に取得される値

2019-08-21T11:23:06.600

この取得時刻を利用して、Azure Monitorの設定を行います。

2.Azure MonitorでのOMSエージェントHeartBeat最終取得時刻で監視を設定する

今回は、HeartBeatの最終取得時刻が5分以上前にAzure Monitorからアラート発出するように設定します。

1) Azure Portal上でモニターのメニューにアクセスします。アラートで[+ 新しいアラート ルール] をクリックします。

2)アラートルールの作成でリソースの選択をクリックします。

3)リソースの選択で VMが接続されているLog Analyticsのワークスペースを選択します。選択したら完了をクリックします。

4)次に監視条件の設定を行います。条件の選択をクリックします。

5)シグナルロジックの構成画面が表示されます。シグナル名でCustom log searchを選択します。

6)シグナルロジックの構成の画面で以下の通り設定ます。”検索クエリ”に以下の内容を設定します。

検索クエリには以下の内容を設定します。

Heartbeat
| summarize LastCall = max(TimeGenerated) by Computer
| where LastCall < ago(5m)

”アラート ロジック”には以下を設定します。
 しきい値 : Static
 演算子 : 次の値より大きい
 集計の種類 : 結果の数
 しきい値 : 0

“評価基準” にて以下を設定します。
 集約粒度 (期間) : 5 分
 評価の頻度 : 5 分

7)アクショングループにて電子メールの送信を行うアクションを設定します。

なお、アクショングループの作成についていは、こちらの記事を参照頂ければと。

ARMテンプレートを使ってAzure Monitorのアクショングループをデプロイしてみた

8)アラート ルール名や重要度をを入力します。入力が終わったら作成をクリックします。

これでアラートルールの作成は完了です。

3.実際のアラートメール

実際のアラートメールを確認する為にはAzure VM側でOMSエージェントを停止すると確認ができます。OMSエージェント停止後5分経過すると以下のメールが来ます。

Suject:We are notifying you because there are 1 counts of ”アラートルール名”



※Custom log searchを使うと、回復するまでメールが送信され続けます。