Azure VM作成時にAzure Monitorでアラート検知する方法

2020-07-26Azure,Monitor

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

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

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

今回は仮想マシン(Azure VM)の作成を例にAzure モニターでの監視設定をやってみました。

    • Administrative(アクテビティログ)で仮想マシンの作成が含まれる場合
    • カスタムログ検索で複数の仮想マシンが作成された場合
      • 15分に2台以上作成された場合

仮想マシン(Azure VM)起動時のアクティビティログやその監視についてはこちら。

スポンサーリンク

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

アラートルール(Administative)作成

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

アクティビティログはAzureプラットフォーム側で保管されています。
Administativeの監視にあたって診断設定は必要ありません。
開始、成功、失敗を検知出来ます。

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

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

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

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

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

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

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

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

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

アラート確認

仮想マシン(Azure VM)を作成してアラートを発生させてみます。
今回は

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

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

仮想マシン(Azure VM)作成時のアラートメール

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

アラートメール

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

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

Azure モニターのアラート通知はSMSも利用出来ます。

仮想マシン(Azure VM)の削除を検知

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

アラートルール作成

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

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

仮想マシン(Azure VM)削除時のアラートメール

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

アラートメール

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

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

カスタムログ検索を利用しても同様に監視が出来ます。
カスタムログ検索を使った場合は複数台生成された場合にアラートと言った設定も可能です。
今回は15分間に2台以上の仮想マシン(Azure VM)が作成された場合にアラートと言う設定にしています。

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

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

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

アクテビティログを見ると仮想マシン(Azure VM)の作成に関するアクテビティログが確認出来ます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

アラート確認

仮想マシン(Azure VM)を2台作成してアラートを発生させてみます。

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

アラートメール確認

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

アラートメール

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

削除も同様の設定が可能

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

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

最後に

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

仮想マシン(Azure VM)起動時のアクティビティログやその監視についてはこちら。

スポンサーリンク