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を使う方法で実施します。
メトリックを利用する方法はこちらに記載しております。
OMSエージェントのHeartBeat時刻取得
最後にOMSエージェントからHeartBeatアクセスがあった時刻は、Log Analytics上で以下のクエリを実行すると確認できます。(下記サンプルはAzure VM指定での出力になります。)
Heartbeat | where Computer==“VM名" | summarize max(TimeGenerated) |
実際に取得される値
2019-08-21T11:23:06.600
この取得時刻を利用して、Azure Monitorの設定を行います。
Azure MonitorでのOMSエージェントHeartBeat最終取得時刻で監視を設定する
今回は、HeartBeatの最終取得時刻が5分以上前にAzure Monitorからアラート発出するように設定します。
1) Azure Portal上でモニターのメニューにアクセスします。アラートで[+ 新しいアラート ルール] をクリックします。
2)アラートルールの作成でリソースの選択をクリックします。
3)リソースの選択で VMが接続されているLog Analyticsのワークスペースを選択します。選択したら完了をクリックします。
4)次に監視条件の設定を行います。条件の選択をクリックします。
5)シグナルロジックの構成画面が表示されます。シグナル名でCustom log searchを選択します。
6)シグナルロジックの構成の画面で以下の通り設定ます。”検索クエリ”に以下の内容を設定します。
検索クエリには以下の内容を設定します。
Heartbeat |
”アラート ロジック”には以下を設定します。
しきい値 : Static
演算子 : 次の値より大きい
集計の種類 : 結果の数
しきい値 : 0
“評価基準" にて以下を設定します。
集約粒度 (期間) : 5 分
評価の頻度 : 5 分
7)アクショングループにて電子メールの送信を行うアクションを設定します。
なお、アクショングループの作成についていは、こちらの記事を参照頂ければと。
8)アラート ルール名や重要度をを入力します。入力が終わったら作成をクリックします。
これでアラートルールの作成は完了です。
3.実際のアラートメール
実際のアラートメールを確認する為にはAzure VM側でOMSエージェントを停止すると確認ができます。OMSエージェント停止後5分経過すると以下のメールが来ます。
Suject:We are notifying you because there are 1 counts of ”アラートルール名”
※Custom log searchを使うと、回復するまでメールが送信され続けます。