Azureでサービスの動作状態を監視するAzure ハイッ! ここ大事!(2/3 ページ)

» 2017年10月05日 05時00分 公開
[打越浩幸デジタルアドバンテージ]

 Azureのサービスの状態を監視する例として、まずはVM(仮想マシン)のCPUの使用率を監視する方法を見てみましょう。

仮想マシンのCPU使用率を監視する

 作成した仮想マシンのサイズ(CPUやメモリなどの構成の選択)が適切でないと、CPUが飽和したり(CPU使用率がずっと100%近くになっている)、メモリが不足したり(空きメモリサイズが常にほぼゼロになっている)、といった状態が発生します。またプログラムやシステムの設定の不具合などによって、CPUやメモリを使い切ってしまう、ということも考えられます。

 このような状況を速やかに検出して、適切な対応を行うためには、CPUやメモリの使用量をチェックする必要があります。Windows OSなら、例えばタスクマネージャを見ればこれらの状態が分かるのですが、さすがにずっと見ているわけにはいかないでしょう。

 そこで利用できるのが、Azureのアラート機能です。監視したい対象をアラートルールとして定義しておけば、条件に合致する状態になった場合に、メールで通知したり、特定の処理を起動したりできます。

仮想マシンVMのCPU使用率をアラートルールで監視する

 ここではCPUの使用率を監視して、80%以上になったらメールを送信させるというアラートルールを追加してみましょう。具体的には、連載第1回「Azureとは? まずは仮想マシンを作ってみる」で作成した仮想マシンに対して、CPUの使用率を監視するアラートを定義してみます。

 まずAzureのポータル画面で仮想マシンの管理画面を開き、左側のブレードから[監視]−[アラートルール]を選択します。

アラートルールでCPU使用率を検出 アラートルールでCPU使用率を検出
ここではCPUの使用率を監視してみます。ある一定時間以上CPUの使用率が高い状態が続いていたら、メールで通知を送るようにしてみましょう。

 アラートルールの管理画面が開いたら、上のメニューバーから[+Add metric alert]をクリックして、新しいアラートルールを追加します。

新しいアラートルールの追加 新しいアラートルールの追加
CPUの使用率を監視するアラートルールを新規追加してみます。

 追加するルールの設定画面が表示されるので、ルール名やアラートの条件、通知方法などを入力します。

 ここでは、次のように入力してみました。

 まずCPU使用率によってアラートを発動させるために、「Alert on」で「Metrics(メトリック)」を選択後、「Metric」で「Percentage CPU(CPU使用率)」という項目を選択します。そして「Condition(条件)」として「Greater Than(より大きい)」、「Threshold(しきい値)」として値「80」を指定します。

 さらに「Notify via(〜の方法で通知)」の下にある[Email 〜]のチェックボックスをオンにします。さらに、[Additional 〜]の欄には通知先のメールアドレスを入力してみました。

アラートルールの作成 アラートルールの作成
ここでは「過去5分以内のCPU使用率が80%以上になったことを検出して、それをメールで通知する」というアラートルールを定義しています。チェックボックスをオンにすると登録されている管理者にメールが届きますが、さらに別のユーザーにも通知したければ、[Additional 〜]にアドレスを追記します。

 画面下にある[OK]をクリックすればアラートルールが作成され、すぐに有効になります。

実際にCPUの負荷が高くなるとどうなる?

 ルールの作成が完了すれば、すでにルールが有効になっているので、CPU負荷が高くなればアラートルールがアクティブになって、メールが送信されるはずです。

 これを確認するために、仮想マシン内でCPU負荷を高くするような操作を行ってみましょう。操作内容は何でもよいのですが、例えばコマンドプロンプトを開いて、「dir /s c:\」というコマンドを(バッチなどで)無限に実行させるだけでも、CPU負荷を上げることができます。仮想マシンのCPU数が1コアだと、こんな処理でもすぐにCPUが飽和してしまいます。

 実際にCPU使用率が80%以上になって、その状態が5分以上続くと、アラートルールの管理画面の表示が次のように変わります。

ルールに一致するイベントが発生した状態 ルールに一致するイベントが発生した状態
アラートルールに一致するイベントが発生すると、このようにSTATUSがWarningなどに変わり、注意マークが表示されます。

 この状態でルール名をクリックすると、ルールの詳細やCPU使用率の履歴グラフなどを確認できます。

ルールの詳細とCPU使用率のグラフ ルールの詳細とCPU使用率のグラフ
CPU使用率は1分ごとに計測されていますが、80%を超えた状態が5分以上続くと、アラートが有効になります。

アラートルールで送信されるメールの例

 あらかじめ設定したCPU使用率を超えるとメールで通知するように設定しておいたので、この場合はSTATUSがWarningに変わると同時に、次のようなメールがサブスクリプションの管理者と、設定時に指定したメールアドレスの両方へ送られてきました。件名は「[ALERT ACTIVATED] - Percentage CPU GreaterThan 80 (Percent) in the last 5 minutes」となっています。

アラートルールによって送信されたメールの例 アラートルールによって送信されたメールの例
アラートルールがアクティブになると(指定された条件が満たされると)、件名が「[ALERT ACTIVATED]〜〜」というメールが送られてきます。本文には、アクティブになったアラート名や、その対象、発生時刻などが記載されています。多くのアラートメールが届いた場合は、概要や「SERVICE: 〜」から、どのサービスから送られてきたアラートかを判断できます。

 このようなメールが届いたら、管理者はAzureのポータル画面へアクセスして、仮想マシンの状態を確認するなどの対応を行うことになります。

 もちろん、処理内容が重ければCPU使用率はすぐに100%近くになりますが、それが5分以上も続いているとすると、それは、きっと正常な状態ではないでしょう。処理内容を見直したり、仮想マシンをスケールアップしたりする必要があるかもしれません。

 ちなみにこのアラートメールは、アラート対象にもよりますが、あらかじめ設定された条件が満たされなくなったときにも送信されます。例えばこの例では、CPU使用率が下がるとしばらくして「[ALERT RESOLVED] - Percentage CPU GreaterThan 80 (Percent) in the last 5 minutes」というメールが送られてきました。先頭の「[ALERT RESOLVED]〜〜」は、条件が解除された(合致しなくなった)ことを表しています。

【ハイッ! ここ大事!】

【ハイッ! ここ大事!】

 アラートの監視対象にもよりますが、デフォルトでは、条件に合致した場合だけでなく、条件を満たさなくなった場合(解除された場合)にもメールが送信されます。多過ぎる場合は、値や監視期間を適宜調整してください。


Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。