Log Analyticsで独自に作成したWindowsイベントログを収集する方法


やりたいこと

Log AnalyticsではWindows標準のイベントログについてはAzure Portalから設定することですぐに構成が可能です。標準のものではなく、WindowsのEvent Viewerで確認できる自前のイベントログを収集してみます。

手順

  • Log Analyticsのエージェント構成から自前のログ名を収集対象として設定する
  • 監視対象VMの上で自前のログを生成
  • Azure Portal上でログが収集されていることを確認する

Log Analytics側の設定

[エージェント構成]から"demo-log"という自前のログ名を追加します。

監視対象VM上でログ生成

#Powershellのサンプルコード

# ログの名前 これがLogAnalyticsで収集設定したログの名前
$LogName = "demo-log"

# イベントソース生成(スクリプトファイル名など)
$EventSource = "TestScript01"

# イベントソースが存在するか確認(管理者としてでPowershell実行必要)
if(-not [System.Diagnostics.EventLog]::SourceExists($EventSource)) {
    # イベントソースが存在しないので登録
    New-EventLog -LogName $LogName -Source $EventSource
}

# ログの内容
$errormsg = "これはログ出力サンプルです。"

# イベントログへログの書き込み
Write-EventLog `
    -Message $errormsg `
    -LogName $LogName `
    -Source $EventSource `
    -EventID 1001 `
    -EntryType Error `
    -Category 2

WindowsVM上でログが生成されていることを確認します。

Log Analytics側でクエリをかけて確認する

WindowsVM上でログを生成してからLog Analytics側へ送られるまで少しのタイムラグがあります。

参考