0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Azure Log Analyticsで仮想マシンにおけるShellスクリプトの実行ログをイベントログとして収集・確認する

Last updated at Posted at 2022-01-25

はじめに

AzureでホストしているWindows VMに対してPowerShellのスクリプトを投げることはよくあります。その手段は以前こちらにまとめました。

その際、スクリプトの実行結果をログとしてAzureから収集・クエリ実行したい場合があるかと思います。この記事ではAzure Windows VMからイベントログとしてLog Analytics側にログを収集する方法をまとめます。

Log Analytics側の設定

「エージェント構成」→「Windowsイベントログ」→「イベントログの追加」を選択します。その際、"demo-script"などオリジナルのログ名を入力し、「適用」を選択します。これにより、demo-scriptという名前のイベントをVM側から吸い上げることが可能になります。
image.png

PowerShellのスクリプトを流す

再掲

上記のような手段を使ってスクリプトを流します。その際、ログファイルも生成しておくとよいかと思います。

Windowsのイベントログを作成する

下記のようなスクリプトでWindowsのイベントログを生成します。スクリプトを投げた時にどこにログファイルを生成するか確認が必要です。

# LogAnalyticsで収集設定したログの名前
$LogName = "demo-script"
# イベントソース生成(スクリプトファイル名など)
$EventSource = "TestScript01"
# イベントソースが存在するか確認(管理者としてでPowershell実行必要)
if(-not [System.Diagnostics.EventLog]::SourceExists($EventSource)) {
# イベントソースが存在しないので登録
  New-EventLog -LogName $LogName -Source $EventSource
}
# ログの内容
# EventSource内で作成したログファイルからデータをパースして$msgに代入する処理を記載
$msg = "<ログファイルの中身を記載>"
$EventID = 1001
$Category = 2
# イベントログへログの書き込み
Write-EventLog `
  -Message $msg `
  -LogName $LogName `
  -Source $EventSource `
  -EventID $EventID `
  -EntryType Error `
  -Category $Category

イベントビューワーにdemo-scriptという名前のログが追加されていることが確認できます。
image.png

このdemo-script内に格納されるログが随時Log Analytics側にSyncされます。

ログファイルの中身をイベントログに書き込むTips

Log Analytics側の確認

Log Analyticsからクエリをかけてみるとログの中身がきちんと取得できていることが確認できます。あとはこの内容をダッシュボード等に表示しておくことで状態の監視も可能になります。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?