はじめに
Azure Stackは、異常を検知するとアラートを生成します。Azure Stack OperatorはこのアラートをAdmin Portalで簡単に確認できます。
アラートのトリガーとなった事象が解決されると、これらのアラートは自動的にクローズされます。ただし、まれに自動的にクローズされない場合があります。その時はアラートを手動でクローズする必要があります。
にもかかわらず、直近でデプロイしたAzure Stack Development Kit 1807では、Admin Portalでアラートを手動クローズできません。困りました。そこで、PowerShellでアラートを操作してみました。
環境
- Azure Stack:ASDK 1.1807.0.76
- PowerShell: Azure Stack Admin 1.4.0
アラートを表示する
“Get-AzsAlert"を利用します。
Get-AzsAlert | Sort-Object { $_.CreatedTimestamp } -Descending
アラートを抽出する
“-Filter"オプションを使うと特定条件のアラートを抽出できます。当然、なじみのある"Where-Object"でも抽出できます。
Get-AzsAlert -Filter "Properties/State eq 'Active'" | Sort-Object { $_.CreatedTimestamp } -Descending
Get-AzsAlert | Where-Object { $_.State -eq "Active"} | Sort-Object { $_.CreatedTimestamp } -Descending
アラートをクローズする
“Close-AzsAlert"を利用します。"-Name"オプションにアラートのIDを渡します。
Close-AzsAlert -name ec7cbbb7-1581-41ad-bb75-37349abd4434 -Force -Verbose
クローズしたいアラートを抽出したうえでforeachでループさせれば、対象のアラートを一括でクローズできます。
$alerts = Get-AzsAlert | Where-Object { $_.State -eq "Active"}
$alerts | ForEach-Object {
Close-AzsAlert -Name $_.AlertId -Force -Verbose
}
終わりに
Azure StackのアラートをPowerShellで操作する方法をまとめました。複数のアラートをまとめてクローズしなければならないシーンや、アラートをトリガーとした自動化で活躍すると思います。