この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
はじめに
PowerShell でアクティビティログアラートを作成する方法に関する情報は意外と少ないです。
また、複数の仮想マシンに対してアラートを作成する場合、一つ一つの仮想マシンに対してアクティビティログアラートをそれぞれ作成する必要があり、作業量が多く繁雑になりますが、このような作業を PowerShell で行えると楽になります。
公式ドキュメントに記載してあったり検索して作成する方法が分かったりすれば勿論それで済みますが、要望そのものが載っていることは少ないでしょう。
今回もコマンドまでは分かりますが、実際のアクティビティやアクショングループをどう設定すべきかまでは載っていません。
参考URL:Set-AzActivityLogAlert
このブログでは、関連情報が少ない中でもポータルの情報を組み合わせることで、PowerShell にて作成する方法をお伝えできればと思います。
作成方法
まず、ポータルからアクティビティログアラートを作成して実際のアラートを発生させてみます。
ここでは、仮想マシンの起動時にメールを発報するアクティビティログアラートを作成します。
次に実際に仮想マシンを起動し、アクティビティとアラートを発生させます。
すると、アクティビティログには実際の「アクティビティ」がJSONで記録されています。
このJSONを見ていくと、ポータルのUIで設定した、カテゴリーやアクショングループ、操作情報が記載されていることが分かると思います。これらの情報を用いることで、PowerShell からアクティビティログを設定することができます。
以下は、上記のJSONを元に作成した PowerShell スクリプトです。
※$変数は適宜修正してください。
# 条件作成
# アクティビティログ
$condition1 = New-AzActivityLogAlertCondition -Field “category” -Equal “Administrative”
# 仮想マシンのリソースID
$condition2 = New-AzActivityLogAlertCondition -Field “resourceId” -Equal $vmResourceId
# 仮想マシン起動時イベント
$condition3 = New-AzActivityLogAlertCondition -Field “operationName” -Equal “Microsoft.Compute/virtualMachines/start/action”# アクショングループ取得
$actionGroup = Get-AzActionGroup -Name $actionGroupName -ResourceGroup $rg
if ($actionGroup -eq $null)
{
Write-Host “アクショングループ作成”
# アクショングループ作成※メールアドレス登録
$email = New-AzActionGroupReceiver -Name “Mail” -EmailReceiver -EmailAddress $Mail
Set-AzActionGroup -Name $actionGroupName -ResourceGroup $rg -ShortName $shortActionGroupName -Receiver $email
$actionGroup = Get-AzActionGroup -Name $actionGroupName -ResourceGroup $rg
}
# アクティビティログアラート作成
# アクショングループ、条件を設定
Set-AzActivityLogAlert -Location ‘Global’ `
-Name $alertName `
-ResourceGroupName $rg `
-Scope (“/subscriptions/” + $deploySubscriptionId + “/”) `
-Action (New-Object Microsoft.Azure.Management.Monitor.Models.ActivityLogAlertActionGroup $actionGroup.Id) `
-Condition $condition1, $condition2, $condition3
まとめ
ポータルの JSON データとあわせてみると、PowerShell の設定がすんなり入ると思います。
意外と見落としがちですが何を設定すべきかはポータル上にも存在しますので、関連する場所をチェックしてみるとよいでしょう。
※今回の例ですとアクティビティアラートはアクティビティログと関連します。