新規リリースされた “Azure Monitor” 機能を使って、利用中のリソースに影響しうる大規模障害が発生した場合にメール通知を受け取る


2017/10/19 更新

設定手順について、一部 UI が刷新されたため、最新のものに変更しました。
Blog 投稿時点の4月段階では、サービス名・リージョンが絞り込めなかったのですが、設定ができるようになっています。

 


こんにちは、Azure プラットフォーム サポート部の石井です。

先日、Azure Monitor という新機能が一般公開されました。
今回は、この機能についての簡単なご紹介から、"Azure の状態" ページ (別名: サービス正常性ダッシュボード) の障害をメール通知させる方法をご紹介します。

Azure の状態ページの更新が一律に受け取れるものではなく、ご自身のリソースが、"Azure の状態" ページに記載される障害の対象リージョンに存在することが条件となります。

Announcing the general availability of Azure Monitor
https://azure.microsoft.com/en-us/blog/announcing-the-general-availability-of-azure-monitor/

Azure Monitor の概要
https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-overview

 

Azure Monitor とは、これまで「アクティビティ ログ」 や、「メトリックのアラート ルール」 などで慣れ親しんだインターフェースを通じて、Azure 基盤の情報を統合し、簡単に監視や通知をできるようにしようというものです。
監視の仕組みの裏側には、リソース プロバイダーごとに異なる API や、ストレージ上のテーブルのデータをどう出すのか、などなど、一歩間違えれば管理者にとってとても煩雑になる要素が多数ありました。その部分を、「低価格」かつ「簡単に」提供するということがコンセプトとなっています。

Azure Monitor の価格 - 2017 年 6 月から適用
https://azure.microsoft.com/ja-jp/pricing/details/monitor/

-> 2017/4/18 追記: 価格について確認をとったところ、API Calls の数に応じた課金は、サードパーティ製監視ソリューションと連携し、Azure Monitor の API を外部から直接呼び出した場合のみ課金ということです。つまり、Azure ポータルから監視のグラフや、アラート ルールの設定をしたり、監視に活用するケースや、オートスケール (VMSS) での利用では、API Calls の課金は生じません。
メールも、1000通/月まで無料ですので、それを超える通知を行うようなケースのみ、ご注意ください。

 

さて、一般公開に際して、Azure 基盤側のイベント ログのような仕組みである、Activity Log や、パフォーマンス監視によるメトリック アラート、サービスの正常性 (Azure の状態にある障害情報) をメール通知設定が行えるようになっています。

VM などのパフォーマンス データに対して、「アラート ルール」 を作り、一定の負荷状況になった場合にメール通知する、という機能はこれまでも存在していましたが、Azure Monitor ではこの通知をアクティビティ ログ全般やサービスの正常性においても行えるようにした、と考えていただくとシンプルです。

今回は、 当該新機能をつかって、"Azure の状態" ページにて更新される通知を受信できるよう、設定を行う手順をご紹介します。

 

- (ステップ1/2)「誰に」通知するかの設定を行う

Azure Monitor では、「誰に」 「何を」 通知するかという 2 つのステップに分かれています。まずは、「誰に」 の部分を設定します。

1. Azure ポータルから、[モニター] – [アクション グループ] を選びます。

まだ [モニター] の登録がない場合、左メニューの一番下より「More services >」 (もしくは 「その他のサービス>」) をクリックし、一覧から「モニター」を選択します。☆マークをクリックし、お気に入りにセットしておくと、ポータルの画面左のリストにピン留めされます。

 

2. [アクション グループ] のメニューの画面上から、[アクション グループの追加] を選びます。

3. [アクション グループの追加] メニューにて、設定を入力します。

Action group name: アクショングループの名前を記載します
短い名前: テキスト メッセージ内で使われる、識別用の 12 文字以内の名前を入力します
サブスクリプション: 通知グループの格納先のサブスクリプションです
リソース グループ: 通知グループの設定の格納先のリソース グループです

受信者の項にて、受信者の名前、通知の種類 (Email、SMS、Webhook から選択 ※)、メール アドレスの 3 項目を設定します。
合計で 10 個まで、複数の登録が可能です。

※ SMS は、現時点では米国 (国番号 1) でのみのサービス提供となっています。日本ではご利用いただけない点に注意ください。また、Webhook とは、専用の Web アプリケーションをキックするための通知であり、お客様がそういった Web アプリケーションを作成いただいている場合にのみ、ご利用いただくものとなります。

 

 

→ 上記登録を保存すると、登録されたメール アカウントに対して、"Microsoft Azure Action Groups actiongroups-noreply@mail.microsoftazure.com" から、"You are now in the '短い名前' action group" という招待メールが届きます。(特にアクションは不要です。)

- (ステップ2/2) 「何を」 通知するかの設定を行う

Azure Monitor では、「誰に」 「何を」 通知するかという 2 つのステップに分かれています。ここでは「何を」 の部分にて、"Azure の状態" Web ページに掲載されるような、サービス正常性の情報を通知するように設定します。

1. Azure ポータル<https://portal.azure.com>を表示し、左メニューより「モニター」をクリックします。 (一覧に無い場合には、左メニューの一番下より「More services >」 (もしくは 「その他のサービス>」) をクリックし、一覧から「モニター」を選択します。)
2. 管理メニューの「アラート」をクリックします
3. 画面上部の「+アクティビティ ログ アラートの追加」をクリックします
4. 通知規則の追加画面が表示されますので、イベント カテゴリに「サービス正常性」、Type に「All」を選択し、通知手段、受信者などを適宜入力して「OK」をクリックします。

 

※ リソース グループとは、当アクティビティ ログ アラート ルールの設定が保存されるリソース グループです。監視対象のリソース グループではありませんのでご注意ください。

※ Service(s)、Region(s) にて、絞りこみたい場合には適宜チェックを変更してください。


※注意事項:
自分のサブスクリプションに無関係なインシデント (障害) は通知がされません。
何らかのリソースが存在する状態のサブスクリプションで設定をしていただくことが重要です。
また、当アラートでは、Azure の状態ページに表示されない、小規模な事象であっても通知がある場合もございます。

サンプルのメールは以下の通りです。
メールの仕分けルールを作る場合、"accounts-noreply@azureemail.microsoft.com" から受信したものやリージョン名といったキーワードがよいかと存じます。

 

samplemail

 

 

手順は以上となります。最後に、補足として、サポートに良くご相談をいただいている、「VM のダウンの通知」と、「お客様のサービスへの監視・通知」についても触れさせていただきます。興味がありましたら併せてご参照ください。

 

- 個別の仮想マシンのダウンは通知が出来るのか?

一部のお客様にてご期待いただいている、「Azure 基盤の要因で IaaS の仮想マシンが予期しない再起動をした場合、これで通知がされるの?」 という点について補足させていただきます。

結論から先にいうと、「個別の仮想マシンのダウンをメール通知に含める」という機能は、まだ開発段階にあります。
Azure Monitor では、アクティビティ ログに掲載されるイベントであれば、何でも通知の対象にできます。Azure 基盤側の開発者が、Azure の "リソース正常性" (Azure Resource Health) という、VM の予期しないシャットダウンの確認機能を、どのようにアクティビティ ログに載せるか、検討しているところですので、今後にご期待下さい。

- 「お客様のサービスへの監視の考え方」

Azure Monitor の強みは、これまでに仮想マシン用の拡張機能 (エージェント) で取れなかった、Azure 基盤側の情報が取れることにあります。例えば、「障害の情報」や、Azure 基盤の「ネットワーク セキュリティ グループに関しての通知」 のようにエージェントで監視が出来なかったものなどがあります。
私達サポートではよく、お客様のご質問として「Azure 基盤では VMの死活監視していないの?」「マイクロソフトは、Azure データセンターを持っている側なのだから、(お客様の) サービスがダウンしたことが分かっているはずだし、通知してほしい」といったご相談をいただきます。

監視と言っても、「何を」「どこから」という定義によって、様々です。
Azure プラットフォームからの答えとしては、「VM のアップ・ダウンは監視しています」 が、「お客様の通信内容については特に内容を見ていません」ということが答えになります。
以下のような、様々な固有の状況があって、「ユーザーにとってのソリューション」があり、「お客様のサービスとしてのダウンタイム」が定義されます。

・構築したアプリケーションが、どこと、どのようなプロトコルで通信するか。
・どの VM や PaaS と連携し、ソリューションが構成されているか。
・何をもってダウンとするのか。

具体的に例を挙げてみると、

・VM 上に Web サーバーを構成しており、ポート443 にて通信している。
・VM は Azure ロードバランサー配下にある。
・パブリック IP アドレスは解放しておらず、オンプレミスからの VPN 通信のみ許可している。
・Web サーバーは、バックエンドとして SQL Database と連携している。
・エンド ユーザー (クライアント) は、専用アプリケーションを使って Web サーバーに接続する。アプリケーションでは 1 分間応答が無いとエラーとなる。

といったケースの場合では、5 つ挙げたいずれの点も、お客様のサービスが稼働するために必要な要素となります。「Web サーバーの VM が起動できていたかどうか」 だけでは、サービスが継続するにあたって必要十分にはならず、各項目を監視し、何をもって異常とするのかを定義することが重要です。

このため、Azure の大原則として、上記のような定義に沿った監視はお客様側での実装が不可欠となる、ということです。

 

Azure Monitor のリリースが行われ、将来的には、VM 自体が Azure 基盤側の要因でダウンしてしまった場合には、通知が出来るようになるかもしれません。可能性は広がりますが、お客様のソリューションとしてきちんと動いているか、監視をしていただくことはお客様の責任範囲である、という点をご理解ください。

「Azure Monitor による基盤側や、VM 監視エージェントによる監視」、さらにオプションとして、Application Insights や OMS (Log Analytics) の監視など、強みを組み合わせて監視をしていただき、残る部分についてはお客様のソリューションに適した監視を実装いただくことをお願いいたします。

 


Comments (1)

  1. 河端善博 より:

    Azure 障害を、Azure モニターから通知できる機能、いいですね
    Azure Monitor のコミュニティフォーラムが、欲しくなります。
    通知を試験する機能がほしい、とか
    Webhook へ渡す JSON のサンプルがほしい、とか、投稿するために.

Skip to main content