この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Azure Virtual Machine(仮想マシン)などのリソース、Bicep
AzureのメトリックアラートをいちいちPortalで作るのが面倒くさい!
Azure上のリソースには、それが消費しているCPUやメモリ、ディスク、ネットワークなどの状態を常時監視/測定する機能「メトリック」が備わっている。その測定値が指定のしきい値を超えたときに警告する機能を「メトリックアラート」と呼ぶ。
例えば、CPU使用率が90%を超えたり、利用可能なメモリ容量が10%を切ったり、といった条件が満たされたら、即座に警告をメールやSMSなどで通知するように設定できる(こうした一連の設定をまとめたものを「アラートルール」と呼ぶ)。適切に設定しておくと、予期せぬトラブルが生じたときに警告の通知を受け取ることで、速やかに対処しやすくなる。
メトリックアラートはAzure PortalからGUIで手軽に生成できるため、一度は作ったことがあるという人も多いのではないだろうか。
ただ、複数のメトリックアラートを作らなければならない場合、GUIだとかなりの手間が掛かる。また、複数のリソースに対して、似たようなメトリックアラートを複数生成するような場合、GUIで間違えることなく正確にパラメーターの指定を繰り返すのは非常に面倒で困難な作業だ。
そのような場合は、コマンドラインで一括生成した方がはるかに効率的だ。本Tech TIPSでは、Azureのリソーステンプレートを使って複数のメトリックアラートを1回のデプロイで生成する基本的な手順について説明する。リソーステンプレートの記述にはBicepを利用する。説明を単純化するため、アラートルールのしきい値は静的(Static)のみとし、アラートルールごとの条件は1種類だけに限定する。
メトリックアラート自体の詳細については都度説明しないので、Microsoft Learnの「Azure Monitor の警告とは」から始まるセクションを参照していただきたい。
■執筆時の各種ツール/APIのバージョン
- Azure CLI: Ver. 2.52.0
- Bicep CLI: Ver. 0.21.1
- Bicepでのデプロイ時のAPIバージョン: 2023-01-01(アクショングループ)、2018-03-01(メトリックアラート)
通知先を設定する「アクショングループ」を作成する
まずは「アクショングループ」を作成する。メトリックアラートの警告の具体的な通知先は、このアクショングループで設定する必要があるからだ。
アクショングループでは、通知先として電子メールやSMS、スマートフォン向けに提供されている「Microsoft Azure」アプリのプッシュ通知の他、Azureの各種リソースも指定できる。ここでは電子メールとSMS、Azureアプリのプッシュ通知を例に挙げる。
param location string = 'Global' // 特別な理由がない限り「Global」とする
param actionGroupName string // アクショングループの名前
param actionGroupShortName string // Azure Portalでは「表示名」。SMSのメッセージ冒頭に挿入される
// 電子メールで通知
param emailReceivers array = [
{
name: 'emailToMyCorpAddr' // このメール通知に付ける名称。他の名称との重複は不可
emailAddress: 'hiromichi@example.jp' // 通知先のメールアドレス
useCommonAlertSchema: false
}
]
// スマートフォン向けの「Microsoft Azure」アプリにプッシュ通知
param azureAppPushReceivers array = [
{
name: 'azureAppToMyCorpAccount' // このアプリ通知に付ける名称
emailAddress: 'hiromichi@example.jp' // アプリにひも付けているAzureアカウント名
}
]
// SMSで通知
param smsReceivers array = [
{
name: 'smsToMyPrivateNumber' // このSMS通知に付ける名前
countryCode: '81' // SMS宛先の国別コード。日本なら「81」
phoneNumber: '09000000000' // SMS宛先の携帯電話番号
}
]
// リソース生成: アクショングループ(警告などの通知設定)
resource actionGroup 'Microsoft.insights/actionGroups@2023-01-01' = {
name: actionGroupName
location: location
properties: {
groupShortName: actionGroupShortName
enabled: true
emailReceivers: emailReceivers
smsReceivers: smsReceivers
azureAppPushReceivers: azureAppPushReceivers
voiceReceivers: [] // 音声通話による通知。日本(国別コード「81」)は未対応
armRoleReceivers: [] // 「所有者」などのロール所属ユーザーにメールで通知
webhookReceivers: [] // WebHookに伝達
automationRunbookReceivers: [] // Azure AutomationのRunbookに伝達
azureFunctionReceivers: [] // Azure Functionsに伝達
eventHubReceivers: [] // Azure Event Hubsに伝達
logicAppReceivers: [] // Azure Logic Appsに伝達
itsmReceivers: [] // Log AnalyticsのITSM Connectorに伝達
}
}
※Microsoftのレファレンス: Microsoft.Insights actionGroups
このリストで幾つか注意すべき点を以下で説明しよう。触れていない詳細については、Microsoft Learnの「アクション グループ」を参照していただきたい。
●アクショングループを配置するリージョンは原則「Global」
まず、アクショングループを配置するリージョンは、特別な理由がない限り「Global」となるだろう。この場合、2つ以上のリージョンをまたいだ冗長構成が自動的に作成される。
特定リージョンへの配置も可能なものの、執筆時点では日本リージョンには配置できないようだ。またリージョン間の冗長はなく、ゾーン冗長に限られる。
●メトリックアラートに合わせて通知先をグルーピングする
リソース定義の「properties.<通知先>Receivers」キーの値は配列であり、複数の通知先を指定できる。例えば同時に通知したいメールアドレスが複数あるなら、「properties.emailReceivers」キーの値には、その分のメールアドレスを列挙する必要がある。
その一方で、メトリックアラートの通知先は、アクショングループ単位で指定する点に注意したい。例えば、緊急のアラートは運用グループ用メールアドレス宛てにメールで知らせる一方で、そうでない通知は個人のメールだけにする場合は、メールアドレスごとに別々のアクショングループを用意して、各アラートへ別々に割り当てられるようにする必要がある。
●SMSを利用するなら「actionGroupShortName」に注意
パラメーター「actionGroupShortName」は、Azure Portalだと「表示名」に該当する短縮名で、以下のようにSMSで届くメッセージの冒頭に挿入される
- アラート発生時: <actionGroupShortName>:Fired:……
- アラート解消時: <actionGroupShortName>:Resolved:……
そのため、長い名称にすると、スマートウォッチのようにディスプレイが小さい端末でSMSを受信したとき、後続の文字列が省略されてアラートの実体が確認できないことがあるので注意しよう。
●音声通話による通知は実質的に使えない!?
アクショングループは、音声通話で通知する機能も備えている(リソース定義の「properties.voiceReceivers」キー)。ただし、執筆時点で「countryCode」キーすなわち国別コードに日本の「81」は指定できなかった。つまり、一般的な日本の電話番号には発信できないようだ。
「メトリックアラート」を作成する
ここからメトリックアラート自体の生成について説明する。
●メトリックアラートのパラメーターを配列にまとめる
まずは、メトリックアラートの種類や監視の間隔、しきい値などのパラメーターのセットをオブジェクトにまとめつつ、複数のそれを配列にまとめていく(以下のリストの変数「metricAlertParams」)。
Copyright© Digital Advantage Corp. All Rights Reserved.
September 13, 2023 at 03:00AM
https://ift.tt/IPGMrch
【Azure】大量のメトリックアラートを一発で作る方法(リソーステンプレート編) - @IT
https://ift.tt/Bu5z4m9
Mesir News Info
Israel News info
Taiwan News Info
Vietnam News and Info
Japan News and Info Update
Bagikan Berita Ini
0 Response to "【Azure】大量のメトリックアラートを一発で作る方法(リソーステンプレート編) - @IT"
Post a Comment