Windows ServerのイベントログをAzure Monitorで監視

Azure,Log Analytics,Monitor,Others,Windows

Log Analyticsワークスペースに収集したWindows Serverのイベントログを監視する手順について説明します。
Windows ServerへのRDP(リモートデスクトップ)接続時のログインイベントログを例に、Azure Monitorを利用して監視する手順を確認しています。

    • Azure Monitorでイベントログの監視するアラートルール作成
    • アラート通知内容をAzure Portalやアラート通知メールで確認

※本手順では、Windows Server 2022 Datacenter Azure Editionを利用しています。
※事前に準備済みのLog Analyticsワークスペース(log-test-01)および仮想マシン(test-vm-01、test-vm-02)を利用しています。
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。

スポンサーリンク

Azure MonitorでWindows Serverのイベントログ監視

Log Analyticsワークスペースに取り込んだWindows Serverのイベントログは、Azure Monitorの監視にも利用できます。
今回は例として、Windows ServerへのRDP(リモートデスクトップ)接続時のログインに関するイベントを検知します。
イベントログを利用して、正常なログインやログインエラーを検出します。

イベントログをLog Analyticsワークスペースで収集

Windows ServerのイベントログをLog Analyticsワークスペースに収集する手順については、こちらで紹介しています。

ログインのイベントログについて

Windows Serverのログインに関するイベントログについては、こちらで紹介しています。。

Log Analyticsのログクエリ結果を使ってアラートルールを作成

Log Analyticsのログクエリ結果を利用して、Azure Monitorのアラートルールを作成できます。

チュートリアル:Azure リソースのログ クエリ アラートを作成する

ログクエリが特定の結果を返した場合に、アラートを発生させることができます。

※今回は、クエリを個別に設定する手順を確認しています。

アラートルール設定内容

2つのアラートルールを作成します。

    • RDP接続のログインエラーを検知
    • RDP接続の正常なログインを検知

共に監視間隔は15分間隔(ログクエリの期間、評価の間隔共に15分)としています。
対象のログを1件以上検知した場合にアラートとしています。
監視間隔や評価期間についてはこちらを参照ください。

集約粒度と評価の頻度って何?

ログインエラーを検知する場合のアラートルール設定値です。

2つのアラートルールを作成します。

    • RDP接続のログインエラーを検知
    • RDP接続の正常なログインを検知

いずれも監視間隔は15分間隔(ログクエリの期間、評価の間隔ともに15分)としています。
対象のログを1件以上検知した場合にアラートが発生するように設定します。
監視間隔や評価期間の詳細については、こちらを参照してください。

集約粒度と評価の頻度って何?

ログインエラーを検知する場合のアラートルール設定値です。

タブ名 項目名 設定値
スコープ リソース Log Analytics ワークスペース
(log-test-01)
条件 シグナル名 カスタムログ検索
クエリ内容 手順参照
測定 メジャー:テーブルの行
集計の種類:カウント
集計の頻度:15分
ディメンションで分割する Computer
(今後のすべての値を含める)
アラートロジック

演算子:次の値以上
しきい値:1
評価の頻度:15分

アクション アクショングループ名 ag-mail-01
(メール送信用)
詳細 重大度(重要度) 2-警告
アラート ルール名 Windowsログインエラー

正常なログインを通知する場合のアラートルール設定値です。

タブ名 項目名 設定値
条件 シグナル名 カスタムログ検索
クエリ内容 手順参照
詳細 重大度(重要度) 3-情報
アラート ルール名 Windowsログイン通知

※手順確認用の設定値です。環境や運用内容に合わせて適宜修正してください。
※アラートルール設定時には重大度と表示されますが、設定後は重要度として表示されます。

ログインエラーを検知するアラートルールを作成

RDP(リモートデスクトップ)接続時のログインエラーを検出する、アラートルールを作成します。
KQLを使用して、イベントID 4625のイベントログを抽出します。
1件以上の該当ログが検出された場合にアラートを発生させます。

アラートルール作成手順
モニターのメニューでアラートを選択します。
作成からアラートルールを選択します。

スコープにはLog Analyticsワークスペースを指定します。

※今回は、ログクエリの実行結果をもとにアラートを発生させます。そのためスコープはLog Analyticsワークスペースを選択します。仮想マシン(Virtual Machines)ではない点には注意が必要です。

アラートルールの条件設定です。
シグナルにはカスタムログ検索を選択します。

アラート発生条件となるログクエリを設定します。
イベントID 4625のログを抽出するクエリを指定します。
シグナルがカスタムログとして設定されます。

測定項目では、検知の対象期間や集計方法を設定します。
ログクエリの実行対象期間やカウント方法を指定できます。
15分間分のログを対象としてクエリを実行し、結果の行数をカウントする設定としています。

ディメンションはComputer単位としています。

アラートロジックでは、監視間隔やしきい値を設定します。
15分間隔でクエリを実行し、1件以上のログが検知された場合にアラートが発生する設定としています。

Event
| where EventLog == “Security"
| where EventID == 4625

アクショングループでは、アラート通知の方法を設定します。
今回は、事前に作成しておいたメール送信用のアクショングループを選択しています。

アクション グループ

詳細設定では、アラートルール名や重大度などを指定します。
内容を確認し、作成を実行してアラートルールを作成します。

正常なログインを検知するアラートルールを作成

正常なRDP(リモートデスクトップ)ログインを検知する、アラートルールを作成します。
正常なログインを対象とするため、イベントID 4624かつログオンタイプが10のイベントログを抽出します。
1件以上の該当ログが検出された場合にアラートを発生させる設定としています。

今回設定したログクエリについては、こちらで紹介しています。

アラートルール作成
ログクエリの設定画面で、イベントID 4624かつログオンタイプが10のイベントログを抽出します。

Event
| where EventID == 4624
| extend EventData_xml = parse_xml(EventData)
| extend Data = EventData_xml.DataItem.EventData.Data
| extend TargetUserName = Data[5][“#text"]
| extend LogonType = Data[8][“#text"]
| extend WorkstationName = Data[11][“#text"]
| extend IpAddress = Data[18][“#text"]
| where LogonType == 10
| project TimeGenerated, Computer, WorkstationName, TargetUserName, IpAddress, LogonType

15分間分のログを対象に、クエリ実行結果の行数をカウントしています。
ディメンションはComputer単位としています。
15分間隔でクエリを実行し、1件以上のログを検知した場合にアラートを発生させる設定としています。

アラートルール名はWindowsログイン通知としています。
重大度は3-情報に設定しています。

—広告—

Azure Monitorでイベントログのアラート検知を確認

アラートを発生させ、アラート通知内容を確認します。
test-vm-01、test-vm-02で正常なログインとログインエラーをそれぞれ1回発生させています。

ログイン操作によるアラート通知を確認

発生したアラート通知を確認します。

    • 仮想マシンで実施したログイン操作
      • test-vm-01でログイン
      • test-vm-02でログイン
      • test-vm-01でログインエラー
      • test-vm-02でログインエラー

それぞれ個別に4件のアラートが発生する想定です。

アラートを確認
4件のアラートが発生していることが確認できました。
発生したアラートを選択すると、アラートの詳細が表示されます。
このアラートが発生した理由で、Computer名やしきい値も確認できます。
“ログに結果を表示する"を選択すると、クエリの実行結果を確認できます。

受信したアラート通知メールを確認

通知されたアラート通知メールの内容を確認します。
test-vm-01へのログイン通知を確認してみます。

受信したアラート通知メールを確認

受信したアラートメールを見ると、アラートの詳細画面やLog Analyticsでのクエリ実行結果へのリンクが確認できます。

※アラートメール本文には、ディメンションの値や発生したカウント数が表示されています。
※メール本文には、ログクエリの実行結果自体は表示されません。

View the alert in Azure Monitorのリンクを選択すると、アラートの詳細画面が表示されます。
View query resultsのリンクを選択すると、ログクエリの実行結果を確認できます。

—広告—

最後に

今回は、Azure MonitorでWindows Serverのイベントログを監視する手順を、ログインイベントを例に確認しました。
Log Analytics ワークスペースに収集したログを利用して監視できることを確認できました。
将来的に追加されるサーバーも監視対象とすることができるため、アラートルールの設定を変更することなく自動的に監視を開始できます。

今回実施したログインイベントログの監視は、セキュリティ強化にも活用できます。
Azure Monitorでイベントを集約して一元的に監視できる点も便利です。

今後も、いろいろ試してみたいと思います。

仮想マシンとLog Analytics接続状況を監視する方法については、こちらで紹介しています。
ログを利用する方法、メトリックを利用する方法について紹介しています。

スポンサーリンク