Azure Monitorで仮想マシンの作成・削除を監視してアラート通知

2020-07-26Azure,Log Analytics,Monitor,Virtual Machine

Azure上で操作ログを記録する機能として、アクティビティログがあります。
仮想マシン(Azure VM)の作成、削除、起動、停止などのリソース操作に関するログもアクティビティログに記録されます。

Azureアクティビティログ(公式サイト)

Azure Monitorでは、このアクティビティログを使って監視できます。
また、アクティビティログは診断設定を使ってLog Analyticsワークスペースにデータを収集することが可能です。
大量のリソースが短期間に作成されるなどの異常な動作についても、Azure MonitorでKQLクエリを使って監視できます。

仮想マシンの作成を例に、2つのパターンでAzure Monitorでの監視設定方法を確認しました。

    • 仮想マシンが作成が作成された場合を、アクテビティログのメトリックで監視
    • 同時に複数台の仮想マシンが作成された場合を、カスタムログ検索で監視
      • 15分に2台以上作成された場合

仮想マシン起動時のアクティビティログや監視設定手順についてはこちらで紹介しています。

※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。

スポンサーリンク

Azure Montiorで仮想マシンの作成を検知

仮想マシンの作成を検知するアラートルールを作成

リソースグループを対象にアラートルールを作成します。
アラートルール名は”仮想マシン(Azure VM)作成アラート”としています。

アクティビティログはAzureプラットフォーム側で保管されています。
アクテビティログのシグナルで監視する場合、診断設定をしてLog Analyticsワークスペースへログ転送する必要はありません。

アラートルール作成
モニターのアラートで作成にあるアラートルールを選択します。

スコープの選択です。
リソースグループを選択します。
スコープの絞り込みはリソースタイプでVirtual Machinesを選択します。

条件設定です。
シグナルを選択します。
仮想マシンの作成または更新(仮想マシン)を選択します。

シグナル名に仮想マシンの作成または更新(仮想マシン)が表示されています。
状態は成功を選択します。

※今回は作成が完了した事を検知する為成功を選択しています。
※イベント開始者で誰が作成したか等の指定もできます。

アクションの設定です。
アクショングループを選択します。
今回は事前に作成しておいたアクショングループ(Alert-Mail)を選択しています。

※メール送信するアクショングループを設定しています。

詳細設定です。
アラートルール名を等を設定します。

確認および作成、作成するとアラートルールが作成されます。

アラート確認

仮想マシンを作成して、アラートを発生させます。

発生したアラート
アラートが表示されている事が確認できます。

※アラート合計数が5になっているのは別アラートを含んでいる為です。
※1台の仮想マシン作成に対して3つのアラートが発生しています。アクティビティログも3行出力されており正しい挙動ですが3行になる理由は不明です。

仮想マシン作成時のアラートメール

アラートメールについて確認します。
作成した仮想マシンのリソースIDも表示されています。

アラートメール

受信したアラートメールです。
仮想マシンのリソースID、Callerとして作成者の名前が確認できます。

※Operation Nameはアクティビティログで操作内容を示すものです。Microsoft.Compute/virtualMachines/writeは仮想マシンの作成を示します。

Azure モニターのアラート通知はSMSも利用できます。
設定手順についてはこちらで紹介しています。

仮想マシンの削除を検知

仮想マシンの削除も検知できます。
仮想マシン作成の手順で、シグナルの選択とアラートルール名を変えるだけです。
シグナルの選択で仮想マシンの削除(仮想マシン)を選択します。

アラートルール作成

アラートルールのシグナル名を仮想マシンの削除(仮想マシン)を選択します。

※アラートルール名は"仮想マシン(Azure VM)削除アラート"としています。

仮想マシン削除時のアラートメール

仮想マシンを削除して確認します。
Operation Nameには削除を示すMicrosoft.Compute/virtualMachines/deleteが表示されます。

アラートメール

仮想マシン削除時のアラートメールです。
作成時と同様に削除された仮想マシンのリソースIDやCaller(実行アカウント名)が表示されます。

—広告—

カスタムログ検索(KQLクエリ)を使って仮想マシンの作成を検知

カスタムログ検索を利用しても、同様にアクテビティログを使って監視できます。
カスタムログ検索を使った場合は、複数台同時に生成された場合のみアラートと言った設定ができます。
動作確認用に、15分間に2台以上の仮想マシンが作成された場合にアラートとしています。

仮想マシン作成時のアクテビティログ

仮想マシン作成時のアクテビティログを確認します。
モニター(Azure Monitor)のアクテビティログで確認できます。

アクティビティログの確認

アクテビティログを見ると仮想マシンの作成に関するアクテビティログが確認できます。

※フィルターの追加でアクテビティログの絞り込みが出来ます。

アクテビティログを選択します。
JSONのタブでアクテビティログの詳細が確認できます。
Operation NameやリソースID等も確認できます。

アクテビティログをLog Analyticsワークスペースへ転送

カスタムログ検索を使いますので、Log Analyticsワークスペースへアクテビティログを転送する必要があります。
診断設定を使って転送します。転送手順についてはこちらに纏めています。

アラートルール(カスタムログ検索)作成

Log Analyticsワークスペースに収集したログ検索結果を使って監視する場合は、アラートルールのシグナルでカスタムログ検索を選択します。
KQLクエリを使ってログ検索します。
ログ検索の条件は、仮想マシン作成成功時のログとしています。

    • Operation Name
      • Microsoft.Compute/virtualMachines/write
    • ActivityStatusValue
      • Success

アラートルール名は"仮想マシン(Azure VM)が複数台作成されたよ"としています。

※Operation NameはアクティビティログのJSONやログ検索結果を確認し設定します。

アラートルール作成
モニターのアラートで作成にあるアラートルールを選択します。

スコープの選択です。
リソースグループを選択します。
スコープの絞り込みはリソースタイプでVirtual Machinesを選択します。

シグナルの選択です。
カスタムログ検索を選択します。

ログ検索のクエリ設定画面が表示されます。
仮想マシンの作成を検知するクエリを設定します。

※絞り込みはWhere句を利用して行っています。

※クエリ内でリソース名を抽出しています。これはこちらで作成したKQLクエリを利用している為です。アラートルール設定には必要ありません。

シグナル名にカスタムログ検索が表示されます。
検索クエリには先ほど設定した内容が表示されます。
検索クエリがエラーになっていない事を確認します。

測定でクエリの集計単位、ディメンションで分割内容、アラートロジックでしきい値や監視間隔を設定します。

集計の粒度(where Timestamp > ago()と同じ)は15分としています。
複数のリソースを纏めて検知する為ディメンションは分割していません。
しきい値は3より大きいとしています。
評価の頻度(監視間隔)は15分としています。

※今回1台の仮想マシン作成で3件のログが確認されたのでしきい値は3より大きいとしています。

アクションの設定です。
アクショングループを選択します。
今回は事前に作成しておいたアクショングループ(Alert-Mail)を選択しています。

※メール送信するアクショングループを設定しています。

詳細設定です。
アラートルール名を等を設定します。

確認および作成、作成するとアラートルールが作成されます。

アラート確認

同時に、仮想マシンを2台作成してアラートを発生させます。

発生したアラート
アラートが表示されている事が確認できます。
アラートを選択すると詳細内容が確認できます。
View query resultsを選択するとログ検索画面が表示されます。
ログ検索結果が表示され、アラート発生の原因となったログが確認できます。
Alert ruleを選択するとアラートルールの編集画面が表示されます。

アラートメール確認

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

アラートメール

アラートメール本文にもアラート詳細に表示された内容と同様の内容が記載されます。
Metric Alertに検知した件数が表示されます。
アラートメール内では作成されたリソース名自体は確認できません。View query resultsを選択してログ検索結果を確認する必要があります。

削除も同様の設定が可能

Operation Nameを変更する事で様々な操作に適用できます。

    • 仮想マシン削除の場合
      • where OperationNameValue contains “MICROSOFT.COMPUTE/VIRTUALMACHINES/DELETE"

—広告—

最後に

今回は仮想マシン作成を中心にAzure モニターを使った監視設定について纏めてみました。
Administrative(アクテビティログ)やカスタムログ検索を使って色々な方法で監視できる事が分かりました。
今後も色々試してみたいと思います。

仮想マシン起動時のアクティビティログやその監視についてはこちらで紹介しています。

Heartbeatログを利用して、Azure VMとLog Analyticsワークスペースの接続状況を監視する方法についてはこちらで紹介しています。

スポンサーリンク